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

路人某:“没有如果”

捕获小夕的游戏

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

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

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

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

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

如何优雅的追到女神夕小瑶相关推荐

  1. 震惊!丧心病狂的夕小瑶推出新一轮写作计划!

    时至今日,距离小夕发布的第一篇正式文章已经过去整三个月啦.今天又回头看了一下自己写的第一篇文章,不禁有点感慨"文风"变了这么多,甚至有点受不了第一篇文章中的萌气了\(//∇//)\ ...

  2. 如果你跟夕小瑶恋爱了...(上)

    如果... 如果...有一天...你追到了女神夕小瑶...并且与她恋爱了... (想说"没有如果"的路人请自觉狗带( ̄∇ ̄)) 小夕的生活很规律的哦,小夕每天都会依次经历且仅仅经历 ...

  3. 如果你跟夕小瑶恋爱了...(下)

    AB派 在上一篇文章中,你成功的将"挽回夕小瑶"的任务卡进了隐马尔可夫模型(HMM)中.那么我们来规范化的整理一下已经有的信息和需要计算得到的信息. 还记得这两个图嘛?这就是我们建 ...

  4. 【分享】夕小瑶和大家谈谈几种算法岗的区别和体验

    点击上方,选择星标或置顶,每天给你送干货! 阅读大概需要12分钟 跟随小博主,每天进步一丢丢 来自:夕小瑶的卖萌屋 这是一份小夕写给[准]算法工程师的手册和建议 图片 大概是因为马上要开始秋招提前批了 ...

  5. step-by-step: 夕小瑶版神经网络调参指南(上)

    距离上一篇文章已经过去好久好久好久啦.闭关几个月后,其实早有继续码文章的打算,先后写了一下核函数与神经网络的一些思考.文本预处理tricks.不均衡文本分类问题.多标签分类问题.tensorflow常 ...

  6. 别再喊我调参侠!夕小瑶“科学炼丹”手册了解一下

    这是一篇写给萌新的"科学炼丹"手册 前言 近期在订阅号后台和文章评论区review了一下大家的问题,发现很多小伙伴现在已经把机器学习.深度学习的理论基础打好了,但是真正要解决一个现 ...

  7. 与服务器交互 【转载】 夕小瑶https://www.jiqizhixin.com/articles/2018-07-02-15

    ssh免密快速登录 首先,将你的登录命令写入你的pc端的bash启动脚本中.Mac系统为 ~/.bash_profile ,linux系统为 ~/.bashrc .例如你的服务器用户名为dlnlp,i ...

  8. 追到女神我只用了三句话

    好白菜都让猪给拱了 我们要坚信最终的结果必然是成功的,没有这种自信,就不要去追女神.我们总以为女神是高不可攀,神圣不可侵犯的.其实这只不过使我们内心的不自信导致的,女神又怎么样,一样要吃喝拉撒,一样的 ...

  9. 手把手教程序员如何追到女神(附详细教程)

    商科班的男生女友都已经换了好几发,而你还只能孤独地在寝室里打Dota?认识了一个不错的妹子,加了微信,但是不知道聊啥?代码敲的很厉害,电脑也会修,但是追妹子这个技能还没get 到?哈哈~作为程序员的你 ...

最新文章

  1. 重磅!计算机主题征稿,【EI/SCI检索】ICCBD 2021诚邀您投稿参会!
  2. ICMP 隧道——将流量封装进 IMCP 的 ping 数据包中,旨在利用 ping 穿透防火墙的检测...
  3. java.lang.NoSuchMethodError
  4. UNIX再学习 -- 发送信号
  5. 第13/24周 统计信息
  6. 15.5 匿名内部类
  7. IT人经常围观精品站点推荐
  8. aspen二元体系共沸组分_超详细 | 手把手教你组分结构预测
  9. linux grpc,grpc linux下的编译使用-Go语言中文社区
  10. django-动态的读取静态目录路径
  11. 微信小程序Server端环境配置
  12. 现在小餐厅的推广视频
  13. POJ1061 青蛙的约会(拓展欧几里德)
  14. 刷新输出缓冲区(C++)
  15. java游戏开发教程_JAVA快速开发游戏代码实现 aide教程
  16. 四大行的CIO们如何看待大数据
  17. 10.16作业 如鹏
  18. java-net-php-python-jspm毕业就业管理系统演示录像2019计算机毕业设计程序
  19. centos6.5 大于16T硬盘 分区和格式化挂载
  20. (转)Builder模式的误区:将复杂对象的构建进行封装,就是Builder模式了吗?

热门文章

  1. 新浪微博数据网络舆情分析客户端软件
  2. select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
  3. fopen、fwrite使用
  4. 求2个数的最大公约数
  5. 排序算法之快速排序(Java)
  6. Android aidl在Framework的使用
  7. 每日一题(12)—— .h头文件中ifndef/define/endif的作用
  8. cursor用法java,Cursor的基本使用方法
  9. LeetCode 2011. 执行操作后的变量值
  10. LintCode 1816. 使结果不超过阈值的最小除数(二分查找)