粒子群算法研究综述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
粒子群算法综述
控制理论与控制工程09104046 吕坤一、粒子群算法的研究背景
人工智能经过半个世纪的发展,经历了由传统人工智能、分布式人工智能到现场人工智能等阶段的发展。到二十世纪九十年代,一些学者开始从各种活动和现象的交互入手,综合地由个体的行为模型开始分析社会结构和群体规律,于是90年代开始, 就产生了模拟自然生物群体(swarm)行为的优化技术。Dorigo等从生物进化的机理中受到启发, 通过模拟蚂蚁的寻径行为, 提出了蚁群优化方法;Eberhart和Kennedy于1995年提出的粒子群优化算法是基于对鸟群、鱼群的模拟。这些研究可以称为群体智能(swarm-intelligence)。通常单个自然生物并不是智能的,但是整个生物群体却表现出处理复杂问题的能力,群体智能就是这些团体行为在人工智能问题中的应用。粒子群优化(Particle Swarm Optimization,PSO)最初是处理连续优化问题的, 目前其应用已扩展到组合优化问题。由于其简单、有效的特点, PSO已经得到了众多学者的重视和研究。
二、粒子群算法的研究现状及研究方向
粒子群算法(PSO)自提出以来,已经历了许多变形和改进,包括数学家、工程师、物理学家、生物学家以及心理学家在内的各类研究者对它进行了分析和实验,大量研究成果和经验为粒子群算法的发展提供了各许多合理的假设和可靠的基础,并为实际的工业应用指引了新的方向。目前,PSO的研究也得到了国内研究者的重视,并已取得一定成果。
十多年来,PSO的研究方向得到发散和扩展,已不局限于优化方面研究。PSO 算法按其研究方向分为四部分:算法的机制分析研究、算法性能改进研究、算法的应用研究及离散性PSO算法研究。算法的机制分析主要是研究PSO算法的收敛性、复杂性及参数设置。算法性能改进研究主要是对原始PSO算法的缺陷和不足进行改进,以提高原始PSO算法或标准PSO算法的一些方面的性能。目前技术与方法的改进主要是增加算法的多样性、加强局部搜索性及融合其它智能优化算法的技术;PSO算法的应用研究主要是关于如何利用PSO算法对工程技术、经济及社会等需要优化的问题求解,其中包括多目标问题、约束问题、动态问题和大量实际应用问题;离散PSO研究主要针对离散性的优化问题,PSO算法如何进行优化求解,原始PSO算法主要是解决连续性的优化问题,而离散性问题存在特殊性,因此离散性问题的求解,PSO算法需要一些特殊技术进行处理,其研究问题主要包括离散二进制问题和一般组合优化问题。
同时粒子群算法还存在很多的不足需要进一步研究,主要的研究及改进方向集中为以下几方面:
(1)粒子群算法的改进
与许多仿生算法一样,粒子群算法现在还只是刚刚起步,本身有很多的不足之处需要改进,尤其它作为一种仿生算法,是对生物群体行为的模拟而产生的,
那么如何对生物群体行为进行进一步研究,改善粒子群算法的性能,将是我们努力的一个方向。’
(2)PSO算法的理论基础的研究
虽然PSO算法已经在很多方面得到应用,但对其理论上的分析还非常薄弱,例如人们一直都没给出很完善的收敛性、收敛速度估计等方面的数学证明。如何利用有效数学工具对PSO算法的收敛性、计算复杂性以及对算法中的参数设置进行分析也是目前的研究热点之一。
(3)PSO算法与其他进化算法的比较和融合
粒子群算法作为一种新兴的算法,虽然在应用方面展现很好的发展前景,但与其它早期提出的算法,如遗传算法、蚁群算法相比,在各个方面都不太成熟,如何引进这些相对成熟的进化算法的优点来弥补粒子群算法目前的不足将是我们今后研究的一个方向。
(4)粒子群算法的应用
算法研究的目的是应用,而PSO算法已经在较广阔的领域崭露头角,并且由于其简单、易操作的特点,PSO算法在收敛速度和精度方面都有了很好的效果,但其中相当一部分仍处于仿真和试验阶段,离实际的问题还有很远的距离,需要作进一步的努力。同时考虑到PSO算法和遗传算法、蚁群算法等有很多相似地方,所以可以将PSO算法用到原来遗传和蚁群应用的工程问题中。如何将PSO算法用到更广阔的领域中去,同时研究应用中存在的问题都是值得关注的热点。
二、粒子群算法(PSO)的基本原理
粒子群优化算法是基于群体的演化算法,其思想来源于人工生命和演化计算理论。Reynolds对鸟群飞行的研究发现,鸟仅仅是追踪它有限数量的邻居,但最终的整体结果是整个鸟群好像在一个中心的控制之下,即复杂的全局行为是由简单规则的相互作用引起的。PSO即源于对鸟群捕食行为的研究,一群鸟在随机搜寻食物,如果这个区域里只有一块食物,那么找到食物的最简单有效的策略就是搜寻目前离食物最近的鸟的周围区域。PSO算法就是从这种模型中得到启示而产生的,并用于解决优化问题。另外,人们通常是以他们自己及他人的经验来作为决策的依据,这就构成了PSO的一个基本概念。
PSO求解优化问题时,问题的解对应于搜索空间中一只鸟的位置,称这些鸟
为“粒子”(particle)或“主体”(agent)。每个粒子都有自己的位置和速度(决定飞行的方向和距离),还有一个由被优化函数决定的适应值。各个粒子记忆、追随当前的最优粒子,在解空间中搜索。每次迭代的过程不是完全随机的,如果找到较好解,将会以此为依据来寻找下一个解。
令PSO初始化为一群随机粒子(随机解),在每一次迭代中,粒子通过跟踪两
个“极值”来更新自己:第一个就是粒子本身所找到的最好解, 叫做个体极值点(用pbest表示其位置), 全局版PSO中的另一个极值点是整个种群目前找到的最
好解, 称为全局极值点(用gbest表示其位置),而局部版PSO不用整个种群而是用其中一部分作为粒子的邻居,所有邻居中的最好解就是局部极值点(用lbest表示
其位置)。在找到这两个最好解后,粒子根据如下的式(1)和式(2)来更新自己的速
度和位置。粒子i 的信息可以用D 维向量表示,位置表示为T iD i i i x x x X ),...,,(21=,速度为T iD i i i v v v V ),...,,(21=,其他向量类似。则速度和位置更新方程为
)()(22111k id k d k k id k id k k id k id x gbest rand c x pbest rand c V V -+-+=+ (1)
11+++=k id k id k id v x x (2)
1+k id v 是粒子i 在第k 次迭代中第d 维的速度;21,c c 是加速度系数(或称学习因子),分别调节向全局最好粒子和个体最好粒子方向飞行的最大步长, 若太小, 则粒子可能远离目标区域, 若太大则会导致突然向目标区域飞去, 或飞过目标区域。合适的21,c c 可加快收敛且不易陷入局部最优, 通常令2
,121rand 0;==c c 是[0,1]之间的随机数;k id x 是粒子i 在第k 次迭代中第d 维的当前位置;id pbest 是
粒子i 在第d 维的个体极值点的位置(即坐标);id gbest 是整个群在第d 维的全局极值点的位置。为防止粒子远离搜索空间, 粒子的每一维速度d v 都会被钳位在
],[max max d d v v +-之间,max d v 太大粒子将飞离最好解,太小将会陷入局部最优。假设将搜索空间的第d 维定义为区间],[max max d d x x +-,则通常0.11.0,max max ≤≤=k kx v d d ,每一维都用相同的设置方法。
四、粒子群算法的基本流程
1、PSO 的具体实现步骤如下:
Stepl :参数初始化。
在初始范围内,随机初始化一群粒子,即设置种群规模N 、粒子的初始位置id x 、初始速度id v (其中N i ,...,2,1=),其中位置和速度通常是在允许的范围内随机产生的, 每个粒子的pbest 坐标设置为其当前位置, 且计算出其相应的个体极值(即个体极值点的适应度值) ,而全局极值(即全局极值点的适应度值) 就是个体极值中最好的,记录该最好值的粒子序号, 并将gbest 设置为该最好粒子的当前位置。
Step2:根据式(1)和式(2)对粒子的速度和位置进行更新;
Step3:计算每个粒子的适应值。
Step4:判断每个粒子的个体最优值。
对每个粒子,将其当前的适应值和上一次的个体最优值pbest ,进行比较,如果当前适应值优于pbest ,则令pbest 取当前适应值,否则,个体最优值