群体智能
出自 MBA智库百科(https://wiki.mbalib.com/)
目录 |
什么是群体智能[1]
群体智能这个概念来自对自然界中一些昆虫,如蚂蚁、蜜蜂等的观察。单只蚂蚁的智能并不高,它看起来不过是一段长着腿的神经节而已。几只蚂蚁凑到一起,就可以一起往蚁穴搬运路上遇到的食物。如果是一群蚂蚁,它们就能协同工作,建起坚固、漂亮的巢穴,一起抵御危险,抚养后代。这种群居性生物表现出来的智能行为被称为群体智能。
群体智能的基本原则[1]
MillonasMM在1994年提出群体智能应该遵循五条基本原则,分别为:
(1)邻近原则(Proximity Principle),群体能够进行简单的空间和时间计算;
(2)品质原则(Quality Principle),群体能够响应环境中的品质因子;
(3)多样性反应原则(Principleof Diverse Re-sponse),群体的行动范围不应该太窄;
(4)稳定性原则(Stability Principle),群体不应在每次环境变化时都改变自身的行为;
(5)适应性原则(Adaptability Principle),在所需代价不太高的情况下,群体能够在适当的时候改变自身的行为。
这些原则说明实现群体智能的智能主体必须能够在环境中表现出自主性、反应性、学习性和自适应性等智能特性。但是,这并不代表群体中的每个个体都相当复杂,事实恰恰与此相反。就像单只蚂蚁智能不高一样,组成群体的每个个体都只具有简单的智能,它们通过相互之间的合作表现出复杂的智能行为。可以这样说,群体智能的核心是由众多简单个体组成的群体能够通过相互之间的简单合作来实现某一功能,完成某一任务。
其中,“简单个体”是指单个个体只具有简单的能力或智能,而“简单合作”是指个体和与其邻近的个体进行某种简单的直接通信或通过改变环境间接与其它个体通信,从而可以相互影响、协同动作。
群体智能的特点[1]
(1)控制是分布式的,不存在中心控制。因而它更能够适应当前网络环境下的工作状态,并且具有较强的鲁棒性,即不会由于某一个或几个个体出现故障而影响群体对整个问题的求解。
(2)群体中的每个个体都能够改变环境,这是个体之间间接通信的一种方式,这种方式被称为“激发工作”(Stigmergy)。由于群体智能可以通过非直接通信的方式进行信息的传输与合作,因而随着个体数目的增加,通信开销的增幅较小,因此,它具有较好的可扩充性。
(3)群体中每个个体的能力或遵循的行为规则非常简单,因而群体智能的实现比较方便,具有简单性的特点。
(4)群体表现出来的复杂行为是通过简单个体的交互过程突现出来的智能(Emergent Intelli-gence),因此,群体具有自组织性。为了更进一步理解群体智能这个概念,本文分别从人工智能和复杂性科学的角度对这一概念进行说明。
蚁群算法[1]
蚁群算法是由MDorigo等人于1991年首先提出的,是受到自然界中蚂蚁群的社会性行为启发而产生的,它模拟了实际蚁群寻找食物的过程。
在自然界中,蚂蚁群总是能够找到从巢穴到食物源之间的一条最短路径。这是因为蚂蚁在运动过程中,能够在其所经过的路径上留下一种被称之为“外激素(pheromone)”的物质。该物质能够被后来的蚂蚁感知到,并且会随时间逐渐挥发。每个蚂蚁根据路径上外激素的强度来指导自己的运动方向,并且倾向于朝该物质强度高的方向移动。因此,如果在某一路径上走过的蚂蚁越多,则积累的外激素就越多,强度就越大,该路径在下一时间内被其它蚂蚁选中的概率就越大。由于在一定时间内,越短的路径会被越多的蚂蚁访问,所以随着上述过程的进行,整个蚁群最终会找到从蚁穴到食物之间的最短路径。
蚁群算法正是利用了生物蚁群的这一特性来对问题进行求解。由于蚂蚁寻食的过程与旅行商问题(Traveling Salesman Problem,简称TSP)的求解非常相似,所以蚁群算法最早的应用就是TSP问题的求解。
目前,蚁群算法已在组合优化问题求解,以及电力、通信、化工、交通、机器人、冶金等多个领域中得到应用,都表现出了令人满意的性能。
微粒群优化算法[1]
微粒群优化算法最早是由Kennedy和Eber-hart于1995年提出的,是一种基于种群寻优的启发式搜索算法。
其基本概念源于对鸟群群体运动行为的研究。在自然界中,尽管每只鸟的行为看起来似乎是随机的,但是它们之间却有着惊人的同步性,能够使得整个鸟群在空中的行动非常流畅优美。鸟群之所以具有这样的复杂行为,可能是因为每只鸟在飞行时都遵循一定的行为准则,并且能够了解其邻域内其它鸟的飞行信息。
微粒群优化算法的提出就是借鉴了这样的思想。在微粒群优化算法中,每个微粒代表待求解问题的一个潜在解,它相当于搜索空间中的一只鸟,其“飞行信息”包括位置和速度两个状态量。每个微粒都可获得其邻域内其它微粒个体的信息,并可根据该信息以及简单的位置和速度更新规则,改变自身的状态量,以便更好地适应环境。随着这一过程的进行,微粒群最终能够找到问题的近似最优解。
由于微粒群优化算法概念简单,易于实现,并且具有较好的寻优特性,因此它在短期内得到迅速发展,目前已在许多领域中得到应用,如电力系统优化、TSP问题求解、神经网络训练、交通事故探测、参数辨识、模型优化等。
人工鱼群算法[2]
在一片水域巾生活的鱼类一般都能找到食物丰富的地方并聚集成群,在这种群体活动中,没有统一的协调者,而是通过鱼类每个个体的自适应行为而达到目的。模拟鱼类生活觅食的特性,李晓磊等人于2002年提出人工鱼群算法(AFSA)。
在此算法中,人工鱼的活动被捕述为三种典型行为:
①觅食行为:这是鱼的基本行为,当发现附近有食物时,会向该方向游动;
②追尾行为:当某条鱼发现该处食物丰富时,其它鱼会快速尾随而至;
③聚群行为:它们往往能形成非常庞大的群。
该算法具有良好的求取全局极值能力,并具有对初值、参数选择不敏感、鲁棒性强、简单易实现等诸多优点,但是当问题规模过大时求解困难并且求解初期收敛较快,后期较慢。
人工鱼群算法目前已用于组合优化”、参数估计、PID控制器的参数整定”、神经网络优化等。
混合蛙跳算法[2]
在一片湿地中生活着一群青蛙,湿地内离散地分布着许多石头,青蛙通过寻找不同的石头进行跳跃去找到食物较多的地方,每个青蛙通过寻找不同的石头提高自己寻找食物的能力,而青蛙个体之间通过思想的交流实现信息的交换。模拟群体青蛙的觅食特性,于2003年提出混合蛙跳算法(SFLA)。每只青蛙都具有自己的文化,为了达到自己的目标努力,并被定义为问题的一个解。湿地的整个青蛙群体被分为不同的子群体,每个子群体有着自己文化,执行局部搜索策略。在子群体中的每个个体有着自己的文化,并且影响着其它个体.并随着子群体的进化而进化。当子群体进化到一定阶段以后,各个子群体之间再进行思想的交流实现子群体间的混合运算,一直到所设置的条件满足为止。
混合蛙跳算法具有全局优化与局部细致搜索的优点,可以用来优化连续问题和离散问题,并且具有较强的鲁棒性,可用于地下水管网优化设计、非线性函数优化、旅行商问题、下料问题、齿轮问题圳等。