1.2 群智能算法

群智能指的是“无智能的主体通过合作表现出智能行为的特性”,是一种基于生物群体行为规律的计算技术。它受社会昆虫(如蚂蚁、蜜蜂)和群居脊椎动物(如鸟群、鱼群和兽群)的启发,用来解决分布式问题。它在没有集中控制并且不提供全局模型的前提下,为寻找复杂的分布式问题的解决方案提供了一种新的思路。

群智能方法易于实现,其算法中仅涉及各种基本的数学操作,其数据处理过程对CPU和内存的要求也不高。而且,这种方法只需要目标函数的输出值,而不需要其梯度信息。已完成的群智能理论和应用方法研究证明:群智能方法是一种能够有效解决大多数全局优化问题的新方法。近年来,群智能理论研究领域出现了众多算法,如:蚁群算法、粒子群算法、鱼群算法、蜂群算法、猫群算法、狼群算法、鸡群算法、雁群算法、文化算法、杂草算法、蝙蝠算法、布谷鸟算法、果蝇算法、蛙跳算法、细菌觅食算法、萤火虫算法、烟花算法和头脑风暴算法,等等。其中蚁群算法和粒子群算法是最主要的两种群智能算法。前者是对蚂蚁群体食物采集过程的模拟,已成功应用于许多离散优化问题;后者起源于对简单社会系统的模拟,最初是模拟鸟群觅食的过程,但后来发现它是一种很好的优化算法。

蚁群算法

蚂蚁在寻找食物时,能在其走过的路径上释放一种特殊的分泌物——信息素。随着时间的推移,该物质会逐渐挥发,后来的蚂蚁选择该路径的概率与当时这条路径上信息素的强度成正比。当一条路径上通过的蚂蚁越来越多时,其留下的信息素也越来越多,后来的蚂蚁选择该路径的概率也就越高,从而更增加了该路径上的信息素强度。而强度大的信息素会吸引更多的蚂蚁,从而形成一种正反馈机制。通过这种正反馈机制,蚂蚁最终可以发现最短路径。

蚁群算法(Ant Colony Optimization,ACO)就是通过模拟自然界中蚂蚁集体寻径行为而提出的一种基于种群的启发式随机搜索算法,是群智能理论研究领域的一种重要算法[6]

蚁群算法具有分布式计算、无中心控制和分布式个体之间间接通信等特征,易于与其他优化算法相结合,已经广泛应用于优化问题的求解。

粒子群算法

粒子群算法(Particle Swarm Optimization,PSO)是Kennedy和Eberhart受人工生命研究结果的启发,通过模拟鸟群觅食过程中的迁徙和群聚行为而提出的一种基于群体智能的全局随机搜索算法[7];1995年IEEE国际神经网络学术会议上发表了题为“Particle Swarm Optimization”的论文,标志着粒子群算法的正式诞生。粒子群算法因其算法简单、容易实现而成为研究热点之一。

与其他进化算法一样,粒子群算法也基于“种群”和“进化”的概念,通过个体间的协作与竞争,实现复杂空间最优解的搜索。但是,它对个体不进行交叉、变异、选择等进化算子操作,而是将群体中的个体看成是在D维搜索空间中没有质量和体积的粒子,每个粒子以一定的速度在解空间运动,并向自身历史最佳位置pbest和群体历史最佳位置gbest聚集,实现对候选解的进化。

粒子群算法因具有很好的生物社会背景而易于理解,由于参数少而容易实现,对非线性、多峰问题均具有较强的全局搜索能力,在科学研究与工程实践中得到了广泛关注。