欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

全面概述粒子群优化算法的研究及其实际应用

最编程 2024-02-11 17:31:34
...

学号:22021110314   姓名:李诗瑶

【嵌牛导读】:粒子群优化(PSO)算法是一种新兴的优化技术,其思想来源于人工生命和进化计算理论。粒子群优化通过粒子追随自己找到的最好解和整个群的最好解来完成优化。该算法简单易实现,可调参数少,已得到广泛研究和应用。本文简单介绍粒子群优化算法的基本原理及应用,并对其未来发展提出了见解。

【嵌牛鼻子】:粒子群优化 演化计算 群体智能

【嵌牛提问】:什么是群体智能优化算法?粒子群是什么?

【嵌牛正文】:

一、粒子群优化算法

粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为PSO,是由J. Kennedy和R. C. Eberhart等开发的一种新的进化算法(Evolutionary

Algorithm -EA)。PSO算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover)和“变异”(Mutation)操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。

粒子群优化算法思想

粒子群优化算法是基于群体的演化算法,其思想来源于人工生命和演化计算理论。Reynolds对鸟群飞行的研究发现,鸟仅仅是追踪它有限数量的邻居,但最终的整体结果是整个鸟群好像在一个中心的控制之下,即复杂的全局行为是由简单规则的相互作用引起的。

PSO即源于对鸟群捕食行为的研究,一群鸟在随机搜寻食物,如果这个区域里只有一块食物,那么找到食物的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO算法就是从这种模型中得到启示而产生的,并用于解决优化问题。另外,人们通常是以他们自己及他人的经验来作为决策的依据,这就构成了PSO的一个基本概念[2]。

初始化种群设定

PSO中,每个优化问题的解看作搜索空间中的一只鸟(即粒子),所有的粒子都有一个被优化的函数决定的当前位置的适应值x,并且有一个速度v决定它们飞翔的方向和速率,粒子们追随当前的最优粒子在解空间中搜索。

算法更新

算法首先初始化一群随机粒子,然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值”即个体极值和全局极值来更新自己的速度与位置。在D维目标搜索空间中,由种群数为m的粒子组成粒子群,其中,第i个粒子在第d维的位置为xid,其飞行速度为vid,该粒子当前搜索到的最优位置为pid(pBest) ,整个粒子群当前的最优位置为pgd(gBest)。速度与位置更新公式如下:


式中:rand()为[0,1]范围内变化的随机数,c1和c2为加速系数,是可以自定义的参数。PSO的算法框架如下所述,图1给出了PSO的算法流程。


图1 PSO算法流程

(1)初始化所有的个体(粒子),初始化它们的速度和位置,并且将个体的历史最优设为当前位置,而群体中最优的个体作为当前的。

(2)在当代的进化中,计算各个粒子的适应度函数值。

(3) 如果该粒子当前的适应度函数值比其历史最优值要好,那么历史最优将        会被当前位置所替代。

(4)如果该粒子的历史最优比全局最优要好,那么全局最优将会被该粒子的历史最优所替代。

(5)对每个粒子按照公式(1)和公式(2)对速度和位置进行更新。

(6)进化代数增加 1,如果还没有到达结束条件,转到(2),否则输出并结束。[3]

二、粒子群优化算法的发展

2.1 粒子群算法的起源

从20世纪90年代初,就产生了模拟自然生物群体(swarm)行为的优化技术。先是蚁群算法被提出,1995年基于对鸟群鱼群的模拟,Ebarhart和Kennedy提出了粒子群优化算法。这类研究都被称为群体智能(Swarm Intelligence)。通常单个自然生物并不是智能的,但是整个生物群体却表现出处理复杂问题的能力,群体智能就是这些团体行为在人工智能问题中的应用。群体智能优化算法主要模拟了昆虫、兽群、鸟群和鱼群的群集行为,这些群体按照一种合作的方式寻找食物,群体中的每个成员通过学习它自身的经验和其他成员的经验来不断地改变搜索的方向。群体智能优化算法的突出特点就是利用了种群的群体智慧进行协同搜索,从而在解空间内找到最优解。粒子群优化最初是处理连续优化问题的,由于其简单、有效的特点,目前其应用已扩展到组合优化问题,得到了众多学者的重视和研究[1]。

2.2 粒子群优化算法的发展

粒子群算法一经提出就吸引了各国学者的注意,经历了许多变形和改进,为实际的工业应用指引了新的方向。从2003年IEEE第一届国际群智能研讨会在美国召开后,关于PSO算法的研究和应用成果的论文逐年增加,ISI数据库收录有关PSO论文数量在一段时间内成指数增长趋势,这体现了对PSO的研究成了智能算法领域的一大热点。

PSO算法的研究主要集中在理论研究应用研究两个方面。在应用研究方面,则有很多根据具体情况,对算法进行改进,以满足应用要求。在理论研究方面,目前PSO算法还没有成熟的理论分析,部分研究者对算法的收敛性进行了分析,而部分研究者在算法的结构和性能改善方面进行研究,包括参数分析,拓扑结构,粒子多样性保持,算法融合和性能比较等。

PSO算法收敛性分析一直是研究的难点,由于算法引入了随机变量,使得很多常规数学方法对其无效。2001年Van通过采用集合论的方法研究得出:只有改进的PSO算法才可以保证算法的局部或全局收敛性。在此理论前提下,提出一种在时间无限下保证收敛到局部最优的改进算法,算法虽然保证了收敛性,但其优化效果并不理想。2002年Clerc等对PSO进化方程进行了分析,利用状态转移矩阵的策略研究单个粒子在进化中的运动轨迹,进而得到使单个粒子收敛的条件,但该分析方法忽略了粒子间作用和随机变量的作用。

2003年Trelea运用动态系统理论对粒子群算法进行了分析,并给出了参数选取的指导规则。2004年Cui通过在基本粒子群算法基础上,引入一种随机算法保证算法收敛到全局最优解。2004 年曾建潮等提出了一种能保证以概率 1 收敛于全局最优解的 PSO 算法(随机 PSO 算法),该算法对其全局收敛性进行了理论分析,并提出了两种停止进化粒子的重新产生方法。

2007年Jiang等对PSO算法的收敛性进行了分析,给出了算法的收敛条件。2008 年 Chen通过引入可控制的随机探索向量,来控制算法的收敛。2009 年 Latif通过引入分布因子,分析了算法的收敛性条件。2009 年高雷阜等通过分析算法的收敛性,提出了基于混沌改进的粒子群算法。Rapaic 等对算法的参数选取和收敛性进行分析,给出算法收敛条件下参数选取的准则。众多研究者对算法收敛性的分析,并在一定程度上给出了算法的收敛条件,但都是在简化条件下的结论,这使得对收敛性的分析缺乏一般性。

三、粒子群优化算法相关技术

3.1 粒子群优化算法的改进

粒子群算法本身也存在如下缺点。

(1)寻找到的最优解可能是局部最优解而不是全局最优解。

(2)算法搜索初期收敛速度快而搜索后期收敛速度变慢。

(3)参数选择的随机性。

为此,研究者们针对这些缺点对粒子群算法做了不同方面的改进。

添加压缩因子

Clerc M 等[4]将压缩因子引入粒子群算法中,改进了算法的速度更新方式,具体如下:


其中,

一般情况下,取4.1。

压缩因子的引入可以控制粒子群算法的收敛,使得粒子有机会搜索空间中不同的区域,并获得高质量的粒子。实验结果表明,它大大提高了粒子群算法的收敛速度和收敛精度。

协同粒子群算法

Vanden B F 等人[5]提出了一种协同粒子群算法。该方法的具体步骤为:假设粒子的维数为 n ,将整个粒子分为 n 个小部分,然后算法分别对粒子的每个小部分(1 维)分别进行优化,评价适应度值后合并成一个完整的粒子。结果表明了算法在很多问题上有更快的收敛速度,取得了很好的结果。

粒子群混合算法

粒子群混合算法是在粒子群算法中引入其它算法的一些比较好的思想,以提高粒子群算法的性能。这些算法包括:磷虾群算法、遗传算法、蝙蝠算法、萤火虫算法、差分进化算法等。由于这些算法有自身的优点,因此研究者们已经将它们的思想与粒子群算法结合来提高粒子群算法的性能。

基于自然选择机制的粒子群算法

Angeline P J[6]将自然界中的自然选择机制引入粒子群算法中,形成基于自然选择的粒子群算法。其核心思想为,当算法更新完所有的粒子后,计算粒子的适应度值并对粒子进行适应度值排序。然后根据排序结果,用粒子群体中最好的一半粒子替换粒子群体中最差的一半粒子,但是保留原来粒子的个体最优位置信息。实验结果表明,自然选择机制的引入增强了粒子的全局寻优能力,提高了解的精度。[7]


四、粒子群优化算法应用的发展现状

PSO算法由于具有简单、易于实现、设置参数少、无需梯度信息等特点,其在连续非线性优化问题和组合优化问题中都表现出良好的效果,因此被应用到很多的领域。PSO 最早应用于神经元网络的训练,Kennedy 和 Eberhart 成功地将其应用于分类XOR 问题的神经网络训练;1999 年 Eberhart用 PSO 来分析人类的帕金森综合症等颤抖类疾病;1999 年 Yoshida 等用 PSO 优化各种离散个连续变量,控制核电机组输出稳定电压;2002 年 Abido 等用 PSO 解决最优功率通量问题。现在,PSO 算法已经应用于非线性规划,同步发电机辩识,车辆路径,约束布局优化,新产品组合投入,广告优化,多目标优化等众多问题中,也表现出了良好的效果。

2007 年 Poli对 PSO 算法的应用做了一个相对比较全面综述,他把 PSO 算法的应用领域分为 26 个不同类别,根据 Xplore 中搜索到的 1100 篇有关 PSO 算法的文献作数据统计,其中有 700 篇是有关 PSO 算法应用的。他把这些应用文献归纳出以下应用领域:图像与视频分析;电子网络分布;控制工程应用;电子应用;天线设计;电力系统:调度;设计;通讯设计与优化;生物医药;数据挖掘;模糊系统与控制;信号处理;神经网络:组合优化;机器人;预测与预报;模型;故障诊断与恢复;传感器网络;计算机图形与可视化;发机动设计或优化;治金;音乐制作与游戏;安全与军事应用;财经与金融。

总之,由于简洁易操作的特点,PSO 算法一提出就引起了各方面的关注,关于 PSO 算法的应用不断出现,现已广泛应用于函数优化、神经网络训练、工业系统控制、模式识别及其他遗传算法的应用领域。PSO 最早应用时将其应用于神经网络训练。文献[8]将 PSO 算法用于神经网络集成,加强了神经网络的泛化能力。文献[9] 将 PSO 算法用于解决优化网页内容描述的问题中。文献[10]将离散 PSO 算法用于求解 TSP 问题;文献[11]则将 PSO 算法用于软件结构测试数据自动生成也取得了良好的效果。在解决复杂问题时,PSO 算法被证明是一种有效的方法,已被应用于各个研究领域。

PSO 是一种新兴的有潜力的基于群智能的演化计算技术。自从 2002 年 PSO 算法被引进国内,已经有很多学者对 PSO 进行了研究。虽然已经取得了一些研究成果,但是仍然有许多问题值得关注。PSO 算法虽然是一种有效的优化工具,但同样有其不足,如迭代后期搜索能力不够,早熟收敛等。所以,如何将其他算法引进 PSO 算法,以弥补其不足是一个重要方向。科学与工程实践中的许多问题都可以归结为优化问题。所以如何将 PSO 算法与实际问题结合,将会有力的推动 PSO 算法的发展。[12]

五、总结

我国对粒子群算法的研究起步较晚,现在深入的研究和应用还相对有限,已发表的论文也不是很多,PSO算法的研究还有大量的工作要做,国际上前人走过的路我们也需要借鉴,根据前人的经验快速跟进。作为一个研究起步晚的国家,我们的研究也是理论与应用同时进行,主要研究方向有以下几个方面:

粒子群算法的改进:标准粒子群算法主要适用于连续空间函数的优化问题,如何将粒子群算法应用于离散空间优化问题,特别是一类非数值优化问题,将是粒子群算法的主要研究方向。另外,充分吸引其他进化类算法的优势,以改进 PSO 算法存在的不足也是值得研究的问题。

粒子群算法的理论分析:到目前为止,PSO算法的分析方法还很不成熟,存在许多不完善之处。如何利用有效的数学工具对PSO算法的运行行为、收敛性以及计算复杂性进行分析也是目前的研究热点之一。

粒子群算法与其他进化算法的比较研究:目前,进化算法的研究在理论和应用两方面都得到迅速发展,效果显著。其中研究的比较成熟的有遗传算法、蚁群算法等,而粒子群算法是一个新兴的群体智能算法,目前己成为进化算法的一个重要分支,如何从多方面比较各种算法从而得到各自的特长和不足,如何吸引其他进化类算法的优势来弥补PSO算法的不足也是当前研究的热点之一。

通过对粒子群优化算法的基本概念、改进和应用的了解,我们应该充分领悟其中的奥义,即群体智能和进化计算。人类通过对自然界的观察可以总结出更好更多的算法来分析自然界的奥秘。就对于粒子群优化算法而言,由于单个算法总有其优势、也有其缺陷,因此,人们希望通过多个算法的混合,以发挥各自的优势,克服单个算法的不足,从而提出各种混合算法。科学与工程实践中的许多问题都可以归结为优化问题。所以如何将PSO算法与实际问题结合,将会有力的推动PSO算法的发展。在众多研究者的不断努力下,我们相信PSO将会越来越完善,发展和应用前景会更加光明。

粒子群算法是在仿真生物群体社会活动的基础上,通过模拟群体生物的相互协同寻优能力,从而构造出一种基于群体智能的优化算法。从提出至今,虽然只有短短20年的时间,但引起了世界各国研究人员的注意,从收敛性、权重因子选择、拓扑结构、多样性、算法融合等诸多理论方面和实际工业应用方面都投入了大量的精力,也取得了一定的成果。

但是,由于粒子群算法本身来源于生物群体现象,目前所得到的理论基础尚不完备,现有的标准算法形式也存在性能的缺陷。因此,在接下来的研究中,研究人员对粒子群算法的理论应该有更深入的研究,使得粒子群算法具有更普遍的应用规律,切实解决生活实际中遇到的问题。



参考文献

[1]Fukuyama Y. Fundamentals of particle swarm techniques [A]. Lee K Y , El2Sharkawi

M A. Modern Heuristic Optimization Techniques With Applications to Power

Systems [M]. IEEE Power Engineering Society , 2002. 45~51

[2]杨维,李歧强.粒子群优化算法综述[J].中国工程科学,2004,6(5):87-94.

[3]黄少荣.粒子群优化算法综述[J].计算机工程与设计,2009,30(8):1977-1980.

[4]Clerc M,Kennedy,Télécom F. The particle swarm-explosion,stability,and convergence in a multidimensional complex space[J].EvolutionaryComput ation,IEEE,2002,6(1):58-73.

[5]Vanden B F,Engelbrecht A P.Using cooperative particle swarmoptimization to train product unit neural Networks[C]. IEEE International JointConference on Neural Networks, Washington D C,USA, 2001.

[6]Angeline P J.Evolutionary optimization versus particle swarmoptimization: Philosophy and performance differences[J]. Lecture Notes inComputer Science,1998:601-610.

[7]赵乃刚,邓景顺.粒子群优化算法综述[J].科技创新导报,2015,12(26):216-217.

[8]刘宇,覃征,卢江,等 .多模态粒子群集成神经网络[J].计算机研究与发展,2005,42(

9):15191526.

[9]Alfredo Milani,Valentino Santucci. Optimizing Web Content Presentation: a online PSO approach [ C ] . 2009 IEEE/WIC/ACM International

Conference on Web Intelligence and Intelligent Agent Technology, 2009: 2629.

[10]Niasar N. Salmani,Perdam M. M,Shanbezade,Mohajeri. Discrete fuzzy particle swarm optimization for solving

traveling salesman problem[C].International

Conference on Information and Financial Engineering,ICIFE 2009, 2009:162165.

[11]李爱国,张艳丽.基于PSO的软件结构测试数据自动生成方法[J].计算机工程,2008,34(6):93-94

[12]杨伟新,张晓森.粒子群优化算法综述[J].甘肃科技,2012,28(5):88-92.

注:文章转自本人博客园博客,博客园账号小艾shea