您当前所在位置: > 爆料站 > 有深度

AI基础:美女和野人过河问题

时间:2019-10-16 12:05:25  来源:  作者:网络

原标题:AI基础:美女和野人过河问题

AI是一个提升高级度的概念,真正的AI远远不是说说而已。笔者以AI算法的经典问题为例,阐释了问题的解决逻辑和办法,展示了算法的形成过程。

AI(Artificial Intelligence)人工智能,可以说是最近比较火热一个词。就像曾经的互联网概念一样,任何一个项目只要和AI搭上边,就似乎显得非常高大上。

AI是一个领域,是一门学科,里面涉及的知识非常多,仅我们大家能想到的AI应用,就能随口说出数几种,像NLP(NaturalLanguage Processing)自然语言处理,TTS(TextTo Speech)文本到语音,涉及的人机对话,语音合成;以及我们现在所用到的人脸识别,正在推广的刷脸支付,家里用的智能扫地机器人;情景感知智能家具、智能金融。

无处不在的AI技术,同我们的生活息息相关,也在不断影响着我们的生活。

AI概念本身不错,如区块链一样,本身是一个很好的理念,但由于部分人过度投机,使得这个领域也存在着参差不齐,鱼龙混杂的情况。

现实中存在这种情况:是个人,会写个逻辑语句,就敢叫什么人工智能工程师,什么算法工程师;是个项目加一点点逻辑判断,也敢叫人工智能项目。

现状比较浮躁,缺乏对科学基本的敬畏。

我们目前所见到的所谓的人工智能的项目,大多是把市面上已经有的人工智能服务,自己整合一下,包装一下,用用而已。但如果真要形成核心产品,要有相当长的路要走,要投入巨大的人力物力财力。

试想,你做的所有的服务,都是其他厂家所提供的,自己没有核心的技术,很容易受到其他厂商的控制,除非你将来做的产品可以被这些大厂收购。

但话说回来,做的产品没有核心竞争力,只是整合别人的功能,是没有什么技术壁垒的,就更不要说形成自己的护城河了,很容易被模仿、超越。

所以,个人认为,人工智能,最为基础的还是算法,要最最基础的研究,涉及大量的计算机、心理学、运筹学等各学科领域的知识。

以文字转语音为例,单纯的一个字转成语音,不是很难,但一长段话转成很流畅的语音,并可以跟据不同人的音色来采样和播放,这一个看似很小的功能,背后有着大量的研发人员。

人工智能的核心,就是算法,不同的算法结合起来,像一个个DNA一样,组成了人工智能的应用。所以,今天我们就从一个最简单的例子入手,从而开启人工智能最最基础的算法入门之旅。

一、问题场景

这个问题的确比较基础,网上搜索一下,会一有大堆这样的文章。我自己也在网上看了一些,但发现网上探索出来的内容还是不是很好,有些代码还存在一些问题。不是很严谨。

这个世界上,指责别人最容易,认清自己最难。与其去吐槽别人,不如自己写一个更好一点文章,分享给大家。

现在我们进入主题。

有3个美女和3个野人要过河,只有1条船,没有船夫,这6个人都会划船。但这条船1次只能载两个人,任何情况下,只要野人的数量大于美女的数量,美女就会被野人吃掉。也就是说,在河的两岸,即河的左岸上和右岸上,野人的数量任何时候都不能大于美女的数量。

如何6个人能全部过河,并且美女安全(即不被野人吃掉)?

如果我们从逻辑上理解,其实就是各种方案的探索,最终试出一条可行的方案。

现状,我们可以认为他们都在河的左岸,要到河的右岸:

美女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个野人,而终态是河的右岸有3个美女和3个野人。就是初始状态是【3,3】,表示左岸最开始,有3个美女和3个野人。而终态是【0,0】,表示左岸最终美女和野人的数量均为0。

而美女和野人,从左岸到右岸,右岸回左岸,是要靠船来运送的。所以,船的状态有两种(航行中就不考虑了),要么在左岸,要么在右岸。我们用1表示船在左岸,用0表示船在右岸。

那么结合美女和野人的状态,最初始状态就是【3,3,1】,表示最初船停靠在左岸,左岸有3个美女,3个野人。那么终态我们知道,是船在右岸,左岸美女和野人数量都为0,那么怎么用数学来表示呢?就是【0,0,0】。

现在问大家一个问题,如果从状态的视角来分析,会有几种状态?

很显显然,会有32种状态,怎么来的?

这就用到了数学基础中的排列组合。美女的状态有4种【0,1,2,3】,表示左岸没有美女,有1个美女,有2个美女,有3个美女;同样,野人的状态也有4种【0,1,2,3】,船的状态有2种【0,1】。

排列组合一下,我们整理初以下状态;同时,我们标记出不符合条件的状态:

  1. 野人人数大于美女人数的状态,用绿色标出,不符合条件,因为按照题目要求,河的左岸和右岸上,野人人数大于美女人数,美女会被吃掉,任务失败;这里不仅要考虑左岸的情况,也要考虑右岸的,例如:【2,0,1】,这就很明显,船在左岸的时候,右岸有1个(3减2)美女和3个(3减0)野人,也是不满足题目要求的。
  2. 不可能存在的状态,用黄色标出;例如:船不可能停在没有人的岸边【0,0,1】,以及美女不可能在野人占多数的情况下,划船到对岸【3,0,1】。

整理后的状态表,如下表所示。

表2-1 左岸美女与野人的状态表

我们根据以上的状态,画出状态空间图,如下图所示:

图2-2 美女与野人过河的状态空间图

很显然,所有从初态可以到达终态的路径,都是美女可以安全过河的方案。

三、算法实现

我们分析的思路有了,接下来就是如何通过算法,实现我们的思想。

其实这就用到了数据结构中,经典的图的搜索——图的遍历,一般有深度优先和广度优先遍历算法。如果从最小生成树的角度,可以使用普里姆算法和克鲁斯卡算法。

如果题目要求最优解,我们还会用到最短路径计算的概念。这里如果扩展的话,又可以写很多。因为同一个问题,解决问题的方法也肯定不止一种。

接下来,我们算法实现的基本思路就是:

找出船上的载人状态,比如:船上可以有1个美女,1个野人,也可以有2个美女,也可以有2个野人;也就是船上的承载人数,受到船的承载量限制,本文题目要求是船上最多为2个。

我们根据船上的运送人员的数量,根据船的运送满足题目要求的结果,来去寻找满足条件的运送方案,之后我们存在动态数组中。

同时,为了防止重复计算,我们还要判断生成的方法是不是已经存在历史结果中。

当然,历史结果的存储我们用的也是动态数组;如果历史中已经有了这条信息,我们就不再计算,再去寻找新的方法。直到找出所有的结果。

实现的算法如下图3-1所示,已经经过实验检验,并可以保证正确运行。

图3-1 算法实现

代码执行结果,我们可以看到,安全过河的方法有好几种。如下图3-2所示:

图3-2 算法执行结果

四、结论

本文中,我们从美女与野人过河这个经典的问题出发,展开分析,阐述了解决此类问题的基本逻辑与解决方法,并对美女与野人的算法进行了扩展。

美女人数和野人数量,以及船的承载人数进行参数修改后,此算法仍然可以根据要求进行计算,算法的灵活性较强。如下图4-1所示:

图4-1 人数与船承载量参数修改后执行的结果

本文也有不足之处,就是程序的算法仍然有优化的空间。

根据测算,当船最大承载量为2,美女和野人数量各为8人的情况下,找到第一种方案程序需要执行约40万次,如下图4-2所示。算法的时间复杂度和空间复杂度较高,仍然有进一步的优化空间。

图4-2 美女和野人数量各为8人的情况

从这个实验中,我们也可以发现,仅这么一个简单问题,用到的理论知识已经相当多了,数据结构与算法、数值计算。而且还并不是十分完美,离理想中的优美的算法,还有较大的差距。

仅从这一个小问题出发,要做到算法的极限,仍然需要付出很多努力。而这仅仅只是人工智能中,非常非常非常基础的,非常非常非常微小的一个知识点而已,真要做到极致,博士也不是那么容易。

所以,有时候就不明白,有时仅仅本科毕业一两年的人也敢叫什么算法工程师,真不知道哪里来的自信。

真正的科学研究是枯燥的,是要沉下心来踏踏实实做研究的,也是要耐得住寂寞的。不走心的走秀最多只能是昙花一现,唯有踏实与真诚才可以基业长青。

最后,希望本文能给大家带来帮助。

共勉!

作者:王佳亮,中国计算机学会(CCF)会员。微信公众号:佳佳原创

本文由 @佳佳原创 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自Unspalsh, 基于CC0协议游戏网

责任编辑:

相关下载

玩家评论

《权游》野人王都感染了!网友入戏太深:赶紧喝巨人奶啊!_隔离

原标题:《权游》野人王都感染了!网友入戏太深:赶紧喝巨人奶啊! 又有男星“中招”了! 《权力的游戏》中“巨人克星托蒙德”的扮演者、挪威男星克里斯托详情>>

阅读: 0
日期: 2020-03-17
魔兽世界怀旧服:掉线也分全G?野人质疑就被喷,公会金团风险大

玩游戏找热点,点击关注不迷路 魔兽世界怀旧服的小伙伴们,在打了这么多年的魔兽后,是不是都被魔兽百态给磨没了脾气,养成了得过且过,不争不抢的习惯呢。详情>>

阅读: 15
日期: 2020-03-09
魔兽世界怀旧服:双治疗中途被踢被黑G,野人打个金团咋就这么难

玩游戏找热点,点击关注不迷路 魔兽世界怀旧服的小伙伴们,最近很多小伙伴有比较多的时间打团了,所以魔兽界随处可见大家热火朝天地讨论。不过呢,事情都详情>>

阅读: 7
日期: 2020-03-06
野性伙伴的自然守护《第五人格》求生者野人攻略

野人是一个救人位,与前锋的定位相似。 但野人的自保能力较前锋更强,因为橄榄球是有限的,而野人的猪是可以反复使用的。野人骑上猪后只要猪不被击中,则持续时详情>>

阅读: 10
日期: 2019-11-14
魔兽世界怀旧服野人海岸在哪里-魔兽世界怀旧服野人海岸坐标

《魔兽世界怀旧服》野人海岸在哪里?在魔兽世界中,玩家如果要学习大师级的钓鱼需要完成钓鱼大师“纳特·帕格”的任务,其中玩家需要掉到四条特别的鱼,其中需要玩家在野人海岸钓详情>>

阅读: 170
日期: 2019-10-30
魔兽世界(wow)怀旧服野人装甲怎么做-魔兽世界(wow)怀旧服野人装甲任务攻略

《魔兽世界怀旧服》野人装甲怎么做?魔兽世界中,除了职业外还有专业技能,每个职业只可以学习两个专业技能,想必很多玩家都会学习锻造作为专业,这里小编给大家详情>>

阅读: 207
日期: 2019-09-03
老戴在此《战争前线》爆破解说 隐秘工厂 野人部落

详情>>

阅读: 18
日期: 2019-08-21
老戴《孤岛惊魂 原始杀戮【最高难度】》02 正式开始野人的生活

详情>>

阅读: 31
日期: 2019-08-20
老戴在此《森林》05 野人兄弟,我们做朋友吧

详情>>

阅读: 37
日期: 2019-08-19
【逍遥小枫】这些像素小野人都好污啊 | 远古战争(Ancient War)

详情>>

阅读: 145
日期: 2019-08-17
第五人格新角色野人介绍

  第五人格新角色野人怎么样?第五人格5月9日之后发布了正式更新,游戏新增加了角色——野人。那么第五人格新角色野人怎么样?今天,小编就给大家带来关于第五人格野详情>>

阅读: 9
日期: 2019-07-01
第五人格野人怎么玩?野人新手攻略[视频][多图]

第五人格野人是目前游戏中最新的一个求生者,而且已经登陆测试服了,有不少玩家实战后发现野人的特点了,我们这里就根据野人的特点来给大家说说野人该怎么玩,让各位新手野人玩家快详情>>

阅读: 16
日期: 2019-06-23
从野人到蛮王 《远古传说》野蛮人炫炸套装

导 读 刀枪剑戟,陨石岩浆,给我一把战斧,让我来力压八荒! 在《远古传说》中,野蛮人是元老级的职业了,强壮的身躯,宽广详情>>

阅读: 11
日期: 2019-06-10
迷你世界:自制超闪玻璃灯,夜晚放在屋内,野人都不敢靠近!_玩家

原标题:迷你世界:自制超闪玻璃灯,夜晚放在屋内,野人都不敢靠近! 大家好,欢迎收看迷你世界造物小课堂!在迷你世界中每天都有大量的玩家测试组建有趣的道具和物品!由于道详情>>

阅读: 14
日期: 2019-06-10
第五人格野人天赋加点搭配攻略分享

第五人格野人天赋怎么加点?野人是游戏中曝光上线二段全新辅助求生者,他可以为团队中的队友增加buff和抵挡伤害。下面是小编分享的加点攻略,还不了解怎么玩的可以来看下! 第五详情>>

阅读: 12
日期: 2019-05-07
哪位大侠告诉我伏魔英雄传2.25山顶野人全部称号,...

Game234问答中心有网友提出了一个比较有代表性的问题【哪位大侠告诉我伏魔英雄传2.25山顶野人全部称号,...】,小编觉得可能对其他网友也有帮助,所以将此问答整理出来了,希望对您有帮助。小编为您搜详情>>

阅读: 2
日期: 2019-04-14
完美世界国际版本入魔 他叫我去靠近野人村的 那个...

Game234问答中心有网友提出了一个比较有代表性的问题【完美世界国际版本入魔他叫我去靠近野人村的那个...】,小编觉得可能对其他网友也有帮助,所以将此问答整理出来了,希望对您有帮助。小编为您搜罗详情>>

阅读: 0
日期: 2019-04-14
《森林》野人刷新机制详解

《森林》是一个比较独立的开放世界游戏,基本上都是玩家一个人玩,在广袤的森林里利用你所看到的一切来安营扎寨,同时要避免自己被野人给吃掉。很多小伙伴可能玩这个游戏的时候摸清详情>>

阅读: 7
日期: 2019-04-11
《森林》开局物资收集与野人打法攻略

  《森林》是一款生存向游戏,玩家需要靠自己的双手制作各式各样的武器道具,在野人横行的孤岛上存活下去。很多人不知道开局怎么玩,所以今天小编带来了《森林》开局物资收集详情>>

阅读: 19
日期: 2019-04-10
《孤岛惊魂4》v1.9.0升级档+野人谷DLC+3DM未加密补丁游戏辅助下载

中文名称:孤岛惊魂4发布日期:2015-03-11更新日期:--文件大小:9.6G游戏语言:英文英文名称:FarCry4游戏制作:Ubisoft游戏发行:Ubisoft上市时间详情>>

阅读: 7
日期: 2019-03-27
森林12:我来到一个新的野人部落,这里的野人争相对我行跪拜之礼

详情>>

阅读: 7
日期: 2019-02-28
《孤岛惊魂4》"野人谷"DLC下月上市 视频放出

在几个月的等待后,玩家终于要在3月10日迎来《孤岛惊魂4》的最终头DLC《野人谷》了。不久前育碧还为玩家带来了全新的《野人谷》宣传视频,一起来看看吧。 在《... 详情>>

阅读: 12
日期: 2019-01-09
辐射76野人套装介绍 野人套装获取方式一览

 《辐射76》中玩家可以通过在地图上进行搜刮找到许多特殊的服装,下面就为大家带来辐射76野人套装的获取方式介绍 野人套装 野人破裤+详情>>

阅读: 22
日期: 2019-01-08
海岛奇兵野人偷家技巧分析 野人怎么偷家

海岛奇兵 中没有破不了的阵,只有不努力的小兵。一...足够的话也可以选择用震爆震住火箭、震爆火箭炮。... 详情>>

阅读: 2
日期: 2019-01-01
《孤岛惊魂5》野人装免费获得方法视频 野人装怎么获得?

远哭5野人装怎么获得?游戏中很家不知道这个怎么免费拿,有玩家发现了一个方法,下面一起来看下孤岛惊魂5野人装免费获得方法视频吧。 孤岛惊 详情>>

阅读: 10
日期: 2018-12-20
野人岛生存好玩吗 野人岛生存玩法简介

期待已久的手游野人岛生存即将登陆Game234,这款手机游戏吸引了大批玩家的关注,有很多粉丝都在问Game234小编野人岛生存好玩吗?野人岛详情>>

阅读: 5
日期: 2018-12-15
《双点医院》野人DLC新增内容一览

原标题:《双点医院》野人DLC新增内容一览《双点医院》在12月5日迎来了新DLC“bigfoot”,同时也添加了中文配音,对于国内玩家来说是一个好消息。在新DLC详情>>

阅读: 2
日期: 2018-12-06
迷你世界玩法大作战之野人来了主题上

X病毒的肆虐打破了迷你世界的平静与祥和,野人开始在人群中出现,他们的身体能力远超常人,能将人类感染变成野人。在这场战争中,人类将节节败退,还是守护住最后的希望?详情>>

阅读: 1
日期: 2018-11-20
《迷你世界》野人来了怎么玩

在迷你世界手游中野人来了究竟该怎么玩呢?最近在迷你世界手游中即将推出新的玩法那就是野人来了,那么不清楚该怎么玩的小伙伴们下面就来看一下吧!迷你世界野人大作战玩法规则介绍关于野人模式“野人来了”是迷详情>>

阅读: 2
日期: 2018-11-20
迷你世界野人大作战玩法解析

迷你世界野人大作战是这个游戏中最近刚推出的一个玩法,很多小伙伴都在问这个迷你世界野人大作战是怎么玩的?小编今天就为大家带来了迷你世界野人大作战玩法解析!迷你世界野人大作战玩法攻略开赛时间:2018年1详情>>

阅读: 4
日期: 2018-11-19
迷你世界野人面具合成表详情 野人面具怎么获得

迷你世界野人面具合成表详情,迷你世界野人面具怎么得?野人面具怎么拿?野人面具怎么弄?野人面具,一个很酷的道... 详情>>

阅读: 8
日期: 2018-11-14
《怪物猎人:世界》速刷绚辉最简易攻略 30分钟领奖野人必看

原标题:《怪物猎人:世界》速刷绚辉最简易攻略30分钟领奖野人必看说30分钟,其实是很保守了,一方面是PC端新人较多,水平参差不齐,一方面是装备技能无法与PS4端比详情>>

阅读: 10
日期: 2018-11-13
孤岛惊魂4 DLC野人谷武器及皮毛获取方法

今天小编给大家带来的是玩家通关《孤岛惊魂4》DLC野人谷武器及皮毛获取方法,跟小编一起来看看能不能帮助到你吧! 详情>>

阅读: 6
日期: 2018-10-15
方舟生存进化:野人比巨兽还强大?老外被野人肆虐的体无完肤

其实在《方舟:生存进化》中虽然有着很多提高这款生存游戏难度的怪物存在,但是当steam玩家们在合理的位于详情>>

阅读: 3
日期: 2018-10-05
DNF团长为了打团不要脸了, 这样鸽子野人真的好吗

DNF团长为了打团不要脸了, 这样鸽子野人真的好吗来源:贝塔电竞家 0 今天打团组了一个野团去打团,然后团长给我安排到了晴天,三保一上晴天,然后我问团长给酱油... 详情>>

阅读: 8
日期: 2018-09-26
野人2:邪灵单机游戏下载

标签:魔幻刺激冒险挑战野人2:邪灵魔幻风格的RPG游戏类型:角色扮演语言:英文更新:2014/12/1709:55:06大小:775.4MB系统:WinXP/Win7/Win8/Vista游详情>>

阅读: 5
日期: 2018-09-17
精彩推荐