龙空技术网

蚂蚁的算法天赋

虎行记 167

前言:

如今咱们对“蚁群算法code”可能比较关注,各位老铁们都需要知道一些“蚁群算法code”的相关知识。那么小编也在网络上搜集了一些有关“蚁群算法code””的相关内容,希望小伙伴们能喜欢,我们快快来学习一下吧!

意大利米兰的一组研究员提出了一些新的进化和学习方法。他们的方法填补了艾克利所提到的“所有可能的计算空间”中的一些空白。这些研究员们把自己的搜索方法称为“蚁群算法”,是因为他们受到了蚁群集体行为的启迪。

蚂蚁把分布式并行系统摸了个门儿清。蚂蚁既代表了社会组织的历史,也代表了计算机的未来。一个蚁群也许包含百万只工蚁和数百只蚁后,它们能建起一座城市,尽管每个个体只是模模糊糊地感觉到其他个体的存在。蚂蚁能成群结队地穿过田野找到上佳食物,仿佛它们就是一只巨大的复眼。它们排成协调的并行行列,穿行在草木之间,并共同使其巢穴保持恒温,尽管世上从未有任何一只蚂蚁知道如何调节温度。 

一个蚂蚁军团,智愚而不知测量,视短而不及远望,却能迅速找到穿越崎岖地面的最短路径。这种计算正是对进化搜索的完美映射:一群无知而短视的个体们在数学意义上崎岖不平的地形上同时作业,试图找出一条最优路径。蚁群就是一个并行处理机。

真正的蚂蚁通过名为信息素的化学系统来彼此交流。蚂蚁在彼此之间以及自己的环境中散发信息素。这些芳香的气味随着时间的推移而消散。它还能通过一连串的蚂蚁来接力传播:它们嗅到某种气味,复制它并传给其他蚂蚁。信息素可以被看做是在蚂蚁系统内部传播或交流的信息。【人类资讯的传播不也是这么?俗话说坏事传千里,一件事情一传十,十传百,飞快传播开来,并且人类在传播的时候会添油加醋,把事件扩大化了。也就有众口铄金一成语,这种传播力量确实让人害怕。这种传播方式现在叫做裂变,也可以把它叫做荷花定律!】

人类开始模拟蚂蚁研究计算机并行,前途是光明的,道路是曲折的,直到直到1990年,并行计算机还遭到专家们的嘲笑,认为它尚有很多地方值得商榷,过于专业,属于狂热派的玩物。它们结构混乱,难以编程。但狂热派却不这么看。 1989年,丹尼·希利斯与一个知名计算机专家公开打赌,预测到1995年,并行机每月处理的数据量将超过串行机。看来他是对的。当串行计算机由于其狭窄的冯·诺依曼通道不堪复杂任务的重负而痛苦呻吟时,专家的看法一夜之间就发生了变化,并迅速席卷了整个计算机产业。彼得·丹宁[注释]在《科学》杂志上撰文(《高度并行的计算》[注释],1990年11月30日)称:“解决高级科学问题所需的计算速度,只能通过高度并行的计算架构来获得。”斯坦福大学计算机科学系的约翰·柯扎[注释]更直截了当:“并行计算机是计算的未来。”

然而,并行计算机还是很难掌控。并行软件是水平的、并发的、错综复杂的因果网络。你无法从这样的非线性特性中找出缺陷所在,它们都隐藏了起来。没有清晰的步骤可循,代码无从分解,事件此起彼伏。制造并行计算机很容易,但要为其编程却很难。

并行计算机所面对的挑战是所有分布式群系统都会面对的——包括电话网络、军事系统、全球24小时金融网络,以及庞大的计算机网络。它们的复杂性考验着我们掌控它们的能力。

然而并行的愚昧的小东西(蚂蚁)能够“写”出比人类更好的软件,这让雷想到了一个能得到我们想要的并行软件的办法。“你看,”他说,“生态的相互作用就是并行的最优化技术。多细胞生物本质上就是在宇宙尺度上运行大规模的并行代码。进化能够‘想出’我们穷尽一生也无法想清楚的并行编程。如果我们能够‘进化’软件,那我们就能大大往前迈进一步。”对于分布式网络这类事物,雷说,“进化是最自然的编程方式。”

自然的编程方式!这听起来真让人有些泄气。人类就应该只做自己最擅长的工作:那些小而灵的、快而精的系统。让(人工注入的)自然进化去做那些杂乱无章的大事吧。 

【设计并行计算的硬件很容易实现,即多处理器群,但是如何让多处理器水平的,并发的执行,即如何来调度这些处理器呢?这是一个错综复杂的因果网络,如何来对其编码?这是未来的事情,也是分布式系统要面对的问题!然而看到自然界的“蚁群、蜂群”,这些并行的小东西,却能够写出比人类更好的分布式系统,这又说明什么?】

[注释]

彼得·丹宁(Peter J. Denning):美国计算机科学家,多产的作家。他最有名的发明是提出了工作集模型(Working-Set Model),该模型成为所有内存管理策略的参考标准。

《高度并行的计算》:Highly Parallel Computation

约翰·柯扎(John Koza):美国计算机科学家,斯坦福大学顾问教授,以利用遗传算法对复杂问题进行优化的开拓性工作而著称。他是科学游戏公司的创始人之一,该公司开发了美国博彩业的计算机系统。

标签: #蚁群算法code #蚂蚁 算法