如何优雅的追到女神夕小瑶

如果,你不小心迷恋上了小夕…


路人某:“没有如果”

捕获小夕的游戏

如果现实世界中,迷恋上小夕以后,你想捕获小夕。那么发现从上帝视角来看的话,你有下面好多条路几条路达成目标( ̄∇ ̄)

然而你并不是上帝。在开始的时候,你站在蓝色的圈里,然后你想了想,如果要捕获小夕的话,目前来看,应该有四种选择可以帮助你达成目标:

1、 陪A逛街

2、 陪B逛街

3、 陪C逛街

4、 陪D打LOL

但是你并不知道做完这四件事情之后有什么后果,此时你只能看到做这四件事情的成本:

1、成本为20块

2、成本为300块

3、成本为5块

4、成本为50块

于是,你准备用什么策略来达成目标呢?然后你想了想,算了,你的姐姐最近比较无聊,还是让你的姐姐替你完成这件事情吧。

于是姐姐出发了,去寻找并捕获小夕。

DFS

DFS即深度优先算法。

姐姐心里只想着赶紧完成任务,于是,她也懒得纠结啦。直接迈出第一步:花最少的钱迈出第一步!也就是5元钱,陪C逛街!

姐姐陪C逛街后,就一门心思的想走到底,看看能不能捕获小夕。于是又花5元陪C看电影!

然后又花1块钱买了瓶康师傅与C成为了朋友!

然后成为朋友后,C竟然告诉姐姐,她根本就不认识小夕!!!

姐姐非常绝望,于是从头再来!找第二便宜的路径!

(小夕贴心的把图复制粘贴了过来…

于是姐姐陪A逛街去了。。。

然后姐姐陪A看了场电影。。。

然后姐姐在电影院里没有理B,因为要花10块钱给B买个爆米花才能搭讪,太贵了,不如花5块钱买个面包与A成为朋友。

然后A说“我也不认识小夕呀~~”

姐姐非常疲惫,按下了“时光倒流按钮”

时光回退了一步。这一次,姐姐在电影院的时候选择了花10块钱给B买爆米花!!!

然后又花20块钱请B喝了杯咖啡!!!

终于!B说“我认识小夕呀~来,一毛钱丢给你了”

小夕:(。 ́︿ ̀。)

姐姐非常开心的完成了任务,然而身心疲惫。。。

有一天。。。小夕趁姐姐不注意。。。溜!走!啦!

BFS

BFS即广度优先算法。

你的哥哥发现小夕溜走后,非常生气!抄起一把钞票来就出门寻找小夕了,并且发誓一定会捕获小夕的(BFS策略一定可以找到解)。

于是,哥哥开始行动了。(小夕再次贴心的将图粘贴了过来

哥哥是个信息搜集狂+并行生物,于是毫不犹豫的同时勾搭了ABCD!也就是完成了陪A逛街、陪B逛街、陪C逛街、陪D打LOL。(下了血本阿…

然后!哥哥在第二步再次毫不犹豫的完成全部路线的任务,即完成陪A看电影、陪B看电影、陪C看电影、与D成为朋友!

第三步!哥哥再次下血本与A成为朋友、搭讪B、与B成为朋友(从陪B看电影的那条路径过来的)、与C成为朋友、捕获小夕。诶?等等!捕获小夕完成啦!!

并行的哥哥只用了三步就捕获了小夕!但是也是下了血本了。。。

A*

A*即A* ╮( ̄▽ ̄"")╭

这时,你看了看哥哥和姐姐的表现,非常失望。你为了证明自己是学人工智能的,或者证明自己是算法大牛,你故意将小夕放走了!

╮(╯▽╰)╭哎,毕竟哥哥和姐姐太笨了,让人无法直视。

于是,机智的你出发了。

首先,你并不急着迈出第一步。而是跟ABCD瞎扯,打探信息。在你伶牙俐齿的攻势下,辅以敏捷思维,你发现:

B非常拜金,但是B张口小夕闭口小夕,肯定认识小夕(小夕一点也不拜金啊喂!)

A透漏出来她不认识小夕,但是她的人脉很广~说不定能帮助找到小夕呢。

C完全就是个女屌,也不知道小夕是谁,就想让你请她吃碗面。

D透露出来认识小夕,但是打LOL上瘾,让你陪她打一晚上LOL。

于是你开始仔细计算。。。假如迈出的这一步是B,那么肯定能够捕获小夕(找到最优点)。但是B的第一步的代价太高了啊,哪怕后续步数代价不高,那总的来说也肯定不是最优的!所以,估计了一下B的总代价=300+100=400元(那个300元是确定值,100元是你估计的值

计算A的总代价,你发现A还可以,应该能帮你捕获小夕,代价不高也不低。于是估计了一下,总代价=20+40=60元(20元为确定值,40元为估计值)

计算C的总代价,你发现虽然C的后续步数完全就不靠谱,若真能通过C捕获小夕,那肯定也得付出非常大的代价,甚至根本无法捕获小夕。于是C的总代价=5+1000=1005元(5元为确定值,1000元为估计值)

计算D的总代价,你发现D挺好说话的,总代价也好计算,得到D总代价=50+10=60元(50元为确定值,10元为估计值)

于是,你发现第一步走A和第一步走D的代价一样高,都是60元。那么直接舍弃比60元高的路,你随机选了一条,走A。

走了A之后,你发现下一步要再花50元,于是A的总代价被修正为20+50+30=100元(20元和50元为确定值,30元为估计值)

此时,你发现总代价最小的路径变了,不能再继续走A了!!!D的总代价更小!于是转而走D。

于是你走出D的第一步后,D的总代价被你修正为50+1+5=56元。依然是D最小!于是继续走D!!

走完D的第二步后!你直接看到小夕了!但你还是计算了一下!此时D的总代价为50+1+0.1=51.1元(50、1、0.1均为确定值),依然是最小代价的路径!

于是你成功捕获了小夕!

没有对比就没有伤害

我们来对比一下DFS(姐姐走的路)、BFS(哥哥走的路)、A*(你走的路),直观的感受一下三种搜索策略/算法的轨迹。

姐姐的DFS:

哥哥的BFS:

你的A*:

有没有对A*的搜索策略赞不绝口呢~究其根本原因,DFS和BFS为无信息图搜索策略,也就是闷头走,只顾眼前,不管更远的未来

而A*则是启发式图搜索策略,利用启发式信息(就是可以用来估计后续路径花费代价的信息,在不同领域的搜索任务中,由该领域的专家制定启发式信息),用这个启发式信息来估计后续路径的代价,加上前面已知路径的代价,可以得到估计的总路径的代价。有了估算的总代价,你就可以每次都选择总代价最少的路径啦。也就是花最少的钱,去走最靠谱的路。

路人某:“看来捕获小夕并不亏啊!”

更多精彩的文章见微信订阅号【夕小瑶的卖萌屋】

编辑于 2017-03-17