粒子群优化(ParticleSwarm Optimization,PSO)算法 [1] ,简称粒子群算法,最早是由美国社会心理学家J. Kennedy和电器工程师R. Eberhart于1995年共同提出的。它起源于对简单社会系统的模拟,也是一种基于迭代的优化工具。与遗传算法类似,它通过个体间的协作和竞争实现全局搜索,相比较而言,它的概念简单,算法中需要调整的参数少,也便于计算机编程实现,并且算法中粒子在解空间中追随最优的粒子进行搜索,而不需要像遗传算法那样使用交叉以及变异操作。因此,它既保持了传统进化算法的群体智慧背景,同时又有许多独有的良好的优化性能。目前,对粒子群优化算法机制研究、算法的改进、算法的应用已引起进化计算领域学者们的广泛关注,短短数十年便获得快速发展,成为学术界的研究热点。
PSO算法的理论基础是人工生命和人工生命计算。人工生命的主要研究领域之一就是探索自然界生物的群体行为,从而在计算机上构建其群体模型。与其他基于群体的进化算法相比,它们均初始化为一组随机解,通过迭代搜寻最优解。进化计算遵循适者生存原则,而PSO算法源于对简单社会系统的模拟。
PSO算法的基本思想受到许多对鸟类的群体行为进行建模与仿真研究结果的启发,最初设想是模拟鸟群觅食的过程,想象这样一个场景:一群鸟随机的分布在一个区域,在这个区域只有一块食物,但是所有的鸟都不知道这块食物的具体方位,只知道自己当前的位置距离食物还有多远。找到食物最简单有效的方式就是搜索目前离食物最近的鸟的周围区域。如果把食物当作最优点,而把鸟离食物的距离当作函数的适应度,那么鸟寻觅食物的过程就可以当作函数寻优的过程。由此受到启发,经过简化提出了PSO算法。
在PSO算法中,把种群中的每个个体称为“粒子”(Particle),由 d 维搜索空间中的一个点表示,代表着每个优化问题的一个潜在解。所有的粒子都有一个用来评价当前位置好坏的属性值叫作适应度值(fitness value),由一个针对具体优化问题抽象出的目标函数决定。每个粒子还有另外一个属性值叫作速度,用来决定粒子飞翔的方向和距离,粒子们将追随当前的最优粒子在解空间中搜索。
粒子群优化算法通过模拟鸟类群体的竞争和合作实现了对优化问题的搜索。该算法仅仅是粒子在解空间上做追寻当前最优粒子的搜索,所以其操作更加简单,同时还具有运算复杂度低、参数少等特点。
PSO算法被提出来以后,吸引了越来越多的研究者和工程人员的注意,也建立了较多的对其理论和应用进行多方面探索的研究机构。到目前位置,国内外相关的国际会议都将粒子群优化算法作为了一项重要的主题,因此,此算法的各种研究成果也逐年在增加,越来越多的文章发表在了高水平的学术刊物上。1998年,进化计算领域的著名会议IEEE Congress on Evolutionary Computation将PSO算法设置为专题讨论。进而,与计算智能相关的重要会议Parallel Problem Solving from Nature和Ggenetic and Evolutionary Computation Conference都将粒子群优化算法列为会议的专题之一,并设置了对其最新成果的研究报道。2001,第一本与粒子群优化相关的专著 Swarm Intelligence 问世。2003年,第一届群智能研讨会IEEE Swarm Intelligence Symposium于美国的Indianapolis召开,作为群智能算法中的典型代表算法,PSO算法被会议设置为重要的讨论内容。2004年,进化计算领域的顶级学术刊物 IEEE Transactions on Evolutionary Computation 将PSO算法作为特刊出版。由于具有一定的优越性,PSO算法成为计算智能领域的重要课题。
PSO算法作为一种仿生算法,目前还没有完备的数学理论作为基础,但是作为一种新兴的智能优化算法,已经在诸多领域展现了良好的应用前景,这更值得我们在其理论基础和应用实践上进行更深入的探讨。