普通短链
活码系统
随机短链
跳转微信小程序
更多
AI基础:美女和野人过河问题
更新时间:2024-12-11 01:47:36 作者:爱短链
AI真的是提升高级的概念AI远不仅仅是说说而已。
作者以为。
AI以算法的经典问题为例,解释了解决问题的逻辑和方法,展示了算法的形成过程。
AI(Artificial Intelligence)人工智能可以说是最近流行的一个词。
就像以前的互联网概念一样,任何项目只需要和谐AI它看起来很高。
AI它是一个领域,一门学科,涉及到很多知识,只有我们都能想到AI应用程序可以随便说几个,比如NLP(NaturalLanguage Processing)自然语言处理,TTS(TextTo Speech)文本到语音,涉及人机对话,语音合成;以及我们现在使用的人脸识别,正在推广刷脸支付,家用智能扫地机器人;情景感知智能家具,智能金融。
无处不在的AI技术与我们的生活息息相关,不断影响我们的生活。
AI概念本身就很好,就像区块链一样,它本身就是一个很好的概念,但由于一些人的过度投机,这个领域也不均衡,好坏参半。
现实中有这样一种情况:如果你是个人,会写逻辑句子,就敢叫人工智能工程师和算法工程师;是一个项目,有一点逻辑判断,敢叫人工智能项目。
现状浮躁,对科学缺乏基本的敬畏。
我们目前看到的所谓人工智能项目大多是整合、包装和使用市场上现有的人工智能服务。
然而,如果我们真的想形成核心产品,我们必须有很长的路要走,并投入巨大的人力、物力和财力。
想象一下,你所做的所有服务都是由其他制造商提供的,没有核心技术,很容易被其他制造商控制,除非你未来的产品可以被这些大型制造商购买。
但话说回来,产品没有核心竞争力,只是整合他人的功能,没有技术障碍,更不用说形成自己的护城河了,很容易被模仿和超越。
因此,我我看来,人工智能最基本的是算法,最基本的研究涉及到计算机、心理学、运筹学等学科的大量知识。
以单词到语音为例,简单的单词到语音,不难,但长段到非常流畅的语音,可以根据不同人的音色采样和播放,这个看似小的功能,背后有大量的研发人员。
人工智能的核心是算法,结合不同的算法,就像一个接一个DNA同样,它构成了人工智能的应用。
因此,今天我们将从最简单的例子开始,开始人工智能最基本的算法入门之旅。
一、问题场景 这个问题真的很基础。
如果你在网上搜索,会有很多这样的文章。
我自己也在网上看了一些,但是发现网上探索的内容还是不是很好,有些代码还是有问题的。
不是很严格。
在这个世界上,指责别人最容易,认清自己最难。
与其吐槽别人,不如写一篇更好的文章和大家分享。
现在让我们进入主题。
有三个美女和三个野人想过河,只有一艘船,没有船夫,这六个人会划船。
但这艘船一次只能携带两个人,在任何情况下,只要野生人数大于美,美就会被野生人吃掉。
也就是说,在河的两岸,即河的左岸和右岸,野生人数不能大于任何时候的美。
六个人怎么能全部过河,美女安全(即不被野人吃掉)? 如果我们从逻辑上理解,那实际上是对各种方案的探索,最终尝试一个可行的方案。
现状,我们可以认为它们都在河的左岸,到河的右岸: 美女1 美女2 美女3 ||河|| 野人1 野人2 野人3 ||河|| 第一步,两个野人先到河的右岸,然后一个野人回来: 美女1 美女2 美女3 ||河|| 野人2 野人3||河|| 野人1 第二步,两个野人一起到河的右岸,然后一个野人回来: 美女1 美女2 美女3 ||河|| 野人3 ||河|| 野人1 野人2 第三步,两个美女去,然后一个美女和一个野人回来: 美女2 美女3||河|| 美女1 野人2 野人3 ||河|| 野人1 第四步,两个美女去,一个野人回去: ||河|| 美女1 美女2 美女3 野人1 野人2 野人3 ||河|| 第五步,两个野人去,一个野人回去: ||河|| 美女1美女2 美女3 野人2 野人3||河|| 野人1 第六步,两个野人回来: ||河|| 美女1 美女2 美女3 ||河|| 野人1 野人2 野人3 以上问题可以理解为决策问题,实际上是人工智能学科中一个非常基本的经典问题。
虽然我们分析的想法和答案似乎解决了问题。
但问题是,除了上述方法外,还有其他方法可以解决这个问题吗?哪个是最快的?以上问题只涉及6人,我们也可以通过人工分析来列出结果。
如果是60人,600人?我们还是用这种方法来分析吗?人工计算是非常复杂和耗时的。
那么如何实现它呢?这需要我们通过计算机编制一套搜索算法来帮助我们计算。
二、问题分析 从初态和终态来看,我们可以知道初态是河的左岸有三个美女和三个野人,而终态是河的右岸有三个美女和三个野人。
初始状态是3,3,这意味着在左岸的开始,有三个美女和三个野人。
最终状态是0,0,这意味着左岸最终美女和野人的数量为0。
而美女和野人,从左岸到右岸,从右岸到左岸,都是靠船运来的。
因此,船的状态有两种(航行中不考虑),要么在左岸,要么在右岸。
我们用1表示船在左岸,用0表示船在右岸。
然后,结合美女和野人的状态,最初的状态是3、3、1,这意味着船最初停在左岸,左岸有三个美女和三个野人。
所以我们知道最终的状态是船在右岸,左岸的美女和野人数量是0,那么如何用数学来表达呢?是0,0,0。
现在问你一个问题,如果从状态的角度来分析,会有多少种状态? 显然,会有32种状态,怎么来? 这使用了数学基础中的排列组合。
美的状态有四种0,1,2,3,这意味着左岸没有美,有一个美,两个美,三个美;同样,野人有四种0,1,2,3,船有两种0,1。
安排组合,我们整理以下状态;同时,我们标记不合格状态: 野生人数大于美女人数的状态,用绿色标记,不符合条件,因为根据主题要求,在河的左岸和右岸,野生人数大于美女人数,美女会被吃掉,任务失败;这里不仅要考虑左岸,还要考虑右岸,如:2,0,1,这很明显,船在左岸,右岸有1(3减2)美女和3(3减0)野生人,也不符合主题的要求。
不可能的状态,用黄色标记;比如船不能停在没人的岸边0、0、1,美女不能在野人占多数的情况下划船到对岸3、0、1。
整理后的状态表如下表所示。
表2-1 左岸美女和野人的状态表明 根据上述状态,我们绘制状态空间图,如下图所示: 图2-2 美女与野人过河的状态空间图 显然,所有从初态到终态的路径都是美女安全过河的方案。
三、算法实现 有了我们分析的想法,下一步就是如何通过算法实现我们的想法。
事实上,这用于数据结构。
经典地图的搜索-地图的遍历通常包括深度优先和广度优先的遍历算法。
普里姆算法和克鲁斯卡算法可成树。
如果主题需要最佳解决方案,我们也将使用最短路径计算的概念。
如果你在这里扩展,你可以写很多。
因为同样的问题,必须有不止一种解决方案。
接下来,算法实现的基本思路是: 找出船上的载人状态。
例如,船上可以有一个美女、一个野人、两个美女或两个野人;也就是说,船上的承载人数受船上承载人数的限制。
本文的主题要求是船上最多有两个。
我们根据船上运输人员的数量和船上运输满足主题要求的结果,寻找合格的运输方案,然后在动态数组中存在。
同时,为了防止重复计算,我们还需要判断生成的方法是否存在于历史结果中。
当然,我们也使用动态数组来存储历史结果;如果这些信息已经存在于历史中,我们将不再计算和寻找新的方法。
直到你找到所有的结果。
实现的算法如下图3-1所示,已经进行了实验检验,并能保证正确运行。
图3-1 算法实现 从代码执行结果可以看出,安全过河的方法有几种。
如下图3-2所示: 图3-2 算法执行结果 四、结论 本文分析了美女与野人过河的经典问题,阐述了解决此类问题的基本逻辑和解决方案,扩展了美女与野人的算法。
修改美容人数、野生人数和船舶承载人数后,该算法仍可按要求计算,算法灵活性强。
如下图4-1所示: 图4-1 修改人数和船载参数后执行的结果 本文还有一些缺点,即程序算法仍有优化的空间。
根据计算,当船舶最大承载能力为2、美女和野人数量为8时,第一个方案程序需要执行约40万次,如下图4-2所示。
算法具有较高的时间复杂性和空间复杂性,仍有进一步的优化空间。
图4-2 美女和野人的数量是8人 从这个实验中,我们也可以发现,仅仅这样一个简单的问题就使用了相当多的理论知识,包括数据结构、算法和数值计算。
而且不是很完美,离理想的优美算法还有很大的差距。
仅仅从这个小问题出发,实现算法的极限仍然需要付出很多努力。
这只是人工智能中一个非常、非常基本、非常非常小的知识点。
医生要达到极致并不容易。
所以,有时候不明白,有时候只毕业一两年的人敢叫算法工程师,真的不知道自信从何而来。
真正的科学研究是无聊的。
我们应该冷静下来,脚踏实地地地做研究,忍受孤独。
不小心的走秀最多只能是昙花一现。
只有脚踏实地和真诚,我们才能永远成长。
最后,我希望这篇文章能给你带来帮助。
共勉! 特别说明:本网站的主要目的是收集与互联网运营相关的干货知识,为运营伙伴提供便利。
本网站收集的公共内容来自互联网或用户的贡献,这并不意味着本网站同意其观点,也不对网站内容的真实性负责。
如有侵权行为,请联系网站管理员删除,。
作者以为。
AI以算法的经典问题为例,解释了解决问题的逻辑和方法,展示了算法的形成过程。
AI(Artificial Intelligence)人工智能可以说是最近流行的一个词。
就像以前的互联网概念一样,任何项目只需要和谐AI它看起来很高。
AI它是一个领域,一门学科,涉及到很多知识,只有我们都能想到AI应用程序可以随便说几个,比如NLP(NaturalLanguage Processing)自然语言处理,TTS(TextTo Speech)文本到语音,涉及人机对话,语音合成;以及我们现在使用的人脸识别,正在推广刷脸支付,家用智能扫地机器人;情景感知智能家具,智能金融。
无处不在的AI技术与我们的生活息息相关,不断影响我们的生活。
AI概念本身就很好,就像区块链一样,它本身就是一个很好的概念,但由于一些人的过度投机,这个领域也不均衡,好坏参半。
现实中有这样一种情况:如果你是个人,会写逻辑句子,就敢叫人工智能工程师和算法工程师;是一个项目,有一点逻辑判断,敢叫人工智能项目。
现状浮躁,对科学缺乏基本的敬畏。
我们目前看到的所谓人工智能项目大多是整合、包装和使用市场上现有的人工智能服务。
然而,如果我们真的想形成核心产品,我们必须有很长的路要走,并投入巨大的人力、物力和财力。
想象一下,你所做的所有服务都是由其他制造商提供的,没有核心技术,很容易被其他制造商控制,除非你未来的产品可以被这些大型制造商购买。
但话说回来,产品没有核心竞争力,只是整合他人的功能,没有技术障碍,更不用说形成自己的护城河了,很容易被模仿和超越。
因此,我我看来,人工智能最基本的是算法,最基本的研究涉及到计算机、心理学、运筹学等学科的大量知识。
以单词到语音为例,简单的单词到语音,不难,但长段到非常流畅的语音,可以根据不同人的音色采样和播放,这个看似小的功能,背后有大量的研发人员。
人工智能的核心是算法,结合不同的算法,就像一个接一个DNA同样,它构成了人工智能的应用。
因此,今天我们将从最简单的例子开始,开始人工智能最基本的算法入门之旅。
一、问题场景 这个问题真的很基础。
如果你在网上搜索,会有很多这样的文章。
我自己也在网上看了一些,但是发现网上探索的内容还是不是很好,有些代码还是有问题的。
不是很严格。
在这个世界上,指责别人最容易,认清自己最难。
与其吐槽别人,不如写一篇更好的文章和大家分享。
现在让我们进入主题。
有三个美女和三个野人想过河,只有一艘船,没有船夫,这六个人会划船。
但这艘船一次只能携带两个人,在任何情况下,只要野生人数大于美,美就会被野生人吃掉。
也就是说,在河的两岸,即河的左岸和右岸,野生人数不能大于任何时候的美。
六个人怎么能全部过河,美女安全(即不被野人吃掉)? 如果我们从逻辑上理解,那实际上是对各种方案的探索,最终尝试一个可行的方案。
现状,我们可以认为它们都在河的左岸,到河的右岸: 美女1 美女2 美女3 ||河|| 野人1 野人2 野人3 ||河|| 第一步,两个野人先到河的右岸,然后一个野人回来: 美女1 美女2 美女3 ||河|| 野人2 野人3||河|| 野人1 第二步,两个野人一起到河的右岸,然后一个野人回来: 美女1 美女2 美女3 ||河|| 野人3 ||河|| 野人1 野人2 第三步,两个美女去,然后一个美女和一个野人回来: 美女2 美女3||河|| 美女1 野人2 野人3 ||河|| 野人1 第四步,两个美女去,一个野人回去: ||河|| 美女1 美女2 美女3 野人1 野人2 野人3 ||河|| 第五步,两个野人去,一个野人回去: ||河|| 美女1美女2 美女3 野人2 野人3||河|| 野人1 第六步,两个野人回来: ||河|| 美女1 美女2 美女3 ||河|| 野人1 野人2 野人3 以上问题可以理解为决策问题,实际上是人工智能学科中一个非常基本的经典问题。
虽然我们分析的想法和答案似乎解决了问题。
但问题是,除了上述方法外,还有其他方法可以解决这个问题吗?哪个是最快的?以上问题只涉及6人,我们也可以通过人工分析来列出结果。
如果是60人,600人?我们还是用这种方法来分析吗?人工计算是非常复杂和耗时的。
那么如何实现它呢?这需要我们通过计算机编制一套搜索算法来帮助我们计算。
二、问题分析 从初态和终态来看,我们可以知道初态是河的左岸有三个美女和三个野人,而终态是河的右岸有三个美女和三个野人。
初始状态是3,3,这意味着在左岸的开始,有三个美女和三个野人。
最终状态是0,0,这意味着左岸最终美女和野人的数量为0。
而美女和野人,从左岸到右岸,从右岸到左岸,都是靠船运来的。
因此,船的状态有两种(航行中不考虑),要么在左岸,要么在右岸。
我们用1表示船在左岸,用0表示船在右岸。
然后,结合美女和野人的状态,最初的状态是3、3、1,这意味着船最初停在左岸,左岸有三个美女和三个野人。
所以我们知道最终的状态是船在右岸,左岸的美女和野人数量是0,那么如何用数学来表达呢?是0,0,0。
现在问你一个问题,如果从状态的角度来分析,会有多少种状态? 显然,会有32种状态,怎么来? 这使用了数学基础中的排列组合。
美的状态有四种0,1,2,3,这意味着左岸没有美,有一个美,两个美,三个美;同样,野人有四种0,1,2,3,船有两种0,1。
安排组合,我们整理以下状态;同时,我们标记不合格状态: 野生人数大于美女人数的状态,用绿色标记,不符合条件,因为根据主题要求,在河的左岸和右岸,野生人数大于美女人数,美女会被吃掉,任务失败;这里不仅要考虑左岸,还要考虑右岸,如:2,0,1,这很明显,船在左岸,右岸有1(3减2)美女和3(3减0)野生人,也不符合主题的要求。
不可能的状态,用黄色标记;比如船不能停在没人的岸边0、0、1,美女不能在野人占多数的情况下划船到对岸3、0、1。
整理后的状态表如下表所示。
表2-1 左岸美女和野人的状态表明 根据上述状态,我们绘制状态空间图,如下图所示: 图2-2 美女与野人过河的状态空间图 显然,所有从初态到终态的路径都是美女安全过河的方案。
三、算法实现 有了我们分析的想法,下一步就是如何通过算法实现我们的想法。
事实上,这用于数据结构。
经典地图的搜索-地图的遍历通常包括深度优先和广度优先的遍历算法。
普里姆算法和克鲁斯卡算法可成树。
如果主题需要最佳解决方案,我们也将使用最短路径计算的概念。
如果你在这里扩展,你可以写很多。
因为同样的问题,必须有不止一种解决方案。
接下来,算法实现的基本思路是: 找出船上的载人状态。
例如,船上可以有一个美女、一个野人、两个美女或两个野人;也就是说,船上的承载人数受船上承载人数的限制。
本文的主题要求是船上最多有两个。
我们根据船上运输人员的数量和船上运输满足主题要求的结果,寻找合格的运输方案,然后在动态数组中存在。
同时,为了防止重复计算,我们还需要判断生成的方法是否存在于历史结果中。
当然,我们也使用动态数组来存储历史结果;如果这些信息已经存在于历史中,我们将不再计算和寻找新的方法。
直到你找到所有的结果。
实现的算法如下图3-1所示,已经进行了实验检验,并能保证正确运行。
图3-1 算法实现 从代码执行结果可以看出,安全过河的方法有几种。
如下图3-2所示: 图3-2 算法执行结果 四、结论 本文分析了美女与野人过河的经典问题,阐述了解决此类问题的基本逻辑和解决方案,扩展了美女与野人的算法。
修改美容人数、野生人数和船舶承载人数后,该算法仍可按要求计算,算法灵活性强。
如下图4-1所示: 图4-1 修改人数和船载参数后执行的结果 本文还有一些缺点,即程序算法仍有优化的空间。
根据计算,当船舶最大承载能力为2、美女和野人数量为8时,第一个方案程序需要执行约40万次,如下图4-2所示。
算法具有较高的时间复杂性和空间复杂性,仍有进一步的优化空间。
图4-2 美女和野人的数量是8人 从这个实验中,我们也可以发现,仅仅这样一个简单的问题就使用了相当多的理论知识,包括数据结构、算法和数值计算。
而且不是很完美,离理想的优美算法还有很大的差距。
仅仅从这个小问题出发,实现算法的极限仍然需要付出很多努力。
这只是人工智能中一个非常、非常基本、非常非常小的知识点。
医生要达到极致并不容易。
所以,有时候不明白,有时候只毕业一两年的人敢叫算法工程师,真的不知道自信从何而来。
真正的科学研究是无聊的。
我们应该冷静下来,脚踏实地地地做研究,忍受孤独。
不小心的走秀最多只能是昙花一现。
只有脚踏实地和真诚,我们才能永远成长。
最后,我希望这篇文章能给你带来帮助。
共勉! 特别说明:本网站的主要目的是收集与互联网运营相关的干货知识,为运营伙伴提供便利。
本网站收集的公共内容来自互联网或用户的贡献,这并不意味着本网站同意其观点,也不对网站内容的真实性负责。
如有侵权行为,请联系网站管理员删除,。
相关搜索