美文网首页@IT·互联网程序员数据科学家
你还以为程序算法很复杂吗,看看蜂群思维的妙用

你还以为程序算法很复杂吗,看看蜂群思维的妙用

作者: 贝克曼 | 来源:发表于2016-12-27 10:25 被阅读418次

【五、六只无名工蜂在前方侦察,核查可能安置蜂巢的树洞和墙洞。他们回来后,用约定的舞蹈向休息的蜂群报告。在报告中,侦察员的舞蹈越夸张,说明她主张使用的地点越好。接着,一些头目们根据舞蹈的强烈程度核查几个备选地点,并以加入侦察员旋转舞蹈的方式表示同意。这就引导更多跟风者前往占上风的候选地点视察,回来之后再加入看法一致的侦察员的喧闹舞蹈,表达自己的选择。

除去侦查员外,极少有蜜蜂会去探查多个地点。蜜蜂看到一条信息:「去那儿,那是个好地方。」它们去看过之后回来舞蹈说,「是的,真是个好地方。」 通过这种重复强调,所属意的地点吸引了更多的探访者,由此又有更多的探访者加入进来。按照收益递增的法则,得票越多,反对越少。渐渐地,以滚雪球的方式形成一个大的群舞,成为舞曲终章的主宰,最大的蜂群获胜】

这是摘录自凯文.凯利《失控》中的片段,它描述了蜂群是如何选择定居点的,它的神奇在于由一群低智商甚至白痴组成的选举行为,居然总是能得到了最优结果,这不能不说是对我们人类社会的民主选举的莫大讽刺。


那么,蜂群思维的选举决策过程到底有何决窍了,我们再仔细阅读一下会发现,其过程其实蛮简单的:

1.多只工蜂前往探路-------------调研过程

2.带回信息传达给其他成员-------反馈过程

3.更多工蜂加入验证反馈---------验证过程

4.按验证得票多少进行决策-------投票机制

始终遵循这一最简单的原则,然后通过收益递增的法则,最终找到了最优的方案


这个蜂群思维在现实中有哪些应用呢,我们不妨来看一个案例

问题:假设需要你开车从深圳到北京, 想一下,如果利用蜂群的选举决策的思维, 如何能找到一条最短路径?

照搬蜂群思维,你发现其实是这么干的:

1.同时派出N多台车从深圳出发,去往北京;

2.每台车到达目的地后反馈所用里程;

3.分类合并所反馈的结果;

4.对比各结果,挑出最短路经。

这其实就是一个程序算法里面最常见的遍历算法,可是如果你再仔细看看深圳到北京的地图,两地相距2275公里,连接两地各种道路不计其数,仅以国内范围的连接路径,穷尽的话可能有几十万条之多,那显然,这种遍历试错的成本是何其高啊。


那么我们应该如何优化,我们目前的地图导航软件又是怎么做的呢;

其实也还蛮简单的,类似下图,我们划一条深圳到北京的直线,然后再横切分段,就这样把一个远距离路径寻找变成多个短距离的路径寻找

然后这个算法就变成每个小段里面使用遍历办法来找到最短路径,最后再把每段最短路径组合起来,就成为了深圳到北京的最短路径

这样做最大的好处就是算法的计算量相比不分段大大下降了。


从这个简单的例子我们可以看到,自然界很多生物的简单的生存法则,实质上蕴含着高智慧的东西,我们学习过来并适度优化就能对我们人类有莫帮助。

同时,我们也看到,其实很多程序的算法并没有多复杂,多向自然界学习,留心观察生活,你才能具备化繁为简的能力。

相关文章

  • 你还以为程序算法很复杂吗,看看蜂群思维的妙用

    【五、六只无名工蜂在前方侦察,核查可能安置蜂巢的树洞和墙洞。他们回来后,用约定的舞蹈向休息的蜂群报告。在报告中,侦...

  • 蜂群思维

    蜂群思维 蜂群系统:分布式管理(distributed governance) 蜂群是现在所熟知的复杂系统之一,单...

  • 还在以为“算法”是程序猿专属吗?亲,你OUT了!

    标题:还在以为“算法”是程序猿专属吗?亲,你OUT了! 正文: 如往常一样,通勤路上打开得到,听逻辑思维。今日主题...

  • 蜂群思维

    我的今日关注:20171210第282天 蜂群思维 一、概念 什么是蜂群思维呢?你可能会脱口而...

  • 优化算法笔记(八)人工蜂群算法

    1. 人工蜂群算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读)工蜂群算法(Artificial Bee ...

  • 时间复杂度和空间复杂度笔记

    复杂度分析笔记 复杂度主要分为时间和空间复杂度 时间复杂度:算法(程序)执行的时间变化趋势 空间复杂度:算法(程序...

  • 八大内部排序总结

    程序 = 数据结构 + 算法 程序好坏 = 时间复杂度 + 空间复杂度 + 应用场景 如何选择算法应用的场景:根据...

  • 蜂群思维

    读凯文凯利的失控,看到这个词忽然想要应用一下 至于怎么应用呢 我想可以用到我的小说创作上面 我可以把我的思维都发到...

  • 程序设计与算法(一) 第十一周

    二分查找 程序或算法的时间复杂度 一个程序或算法的时间效率,也称“时间复杂度”,有时简称“复杂度” 复杂度常用大的...

  • 1.1.1算法的基本概念(二)习题

    1.考察算法 算法是解题方案的准确完整描述。算法≠程序≠计算方法 程序可作为算法的一种描述 A× 算法复杂度...

网友评论

    本文标题:你还以为程序算法很复杂吗,看看蜂群思维的妙用

    本文链接:https://www.haomeiwen.com/subject/pspsvttx.html