粒子群算法
题目:求
f
x
10
xi2
的最小值
i1
1粒子群简介
粒子群优化算法PSO也是起源对简单社会系统的模拟。最初设想是模拟鸟群觅食的过程。粒子群优化算法是由Ke
edy和Eberhart通过对鸟群、鱼群和人类社会某些行为的观察研究,于1995年提出的一种新颖的进化算法。
PSO算法属于进化算法的一种,和遗传算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”和“变异”操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。
2算法的原理
PSO从这种模型中得到启示并用于解决优化问题。PSO中,每个优化问题的潜在解都是搜索空间中的一只鸟,称之为粒子。所有的粒子都有一个由被优化的函数决定的适值fit
essvalue,每个粒子还有一个速度决定它们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索。
PSO初始化为一群随机粒子随机解,然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个极值来更新自己;第一个就是粒子本身所找到的最优解,这个解称为个体极值;另一个极值是整个种群目前找到的最优解,这个极值是全局极值。另外也可以不用整个种群而只是用其中一部分作为粒子的邻居,那么在所有邻居中的极值就是局部极值。
假设在一个D维的目标搜索空间中,有N个粒子组成一个群落,其中第i个
f粒子表示为一个D维的向量
Xixi1xi2xiD,i12N
第i个粒子的“飞行”速度也是一个D维的向量,记为
Vi(vi1vi2,viD,i123
第i个粒子迄今为止搜索到的最优位置称为个体极值,记为
pbestpi1pi2piD,i12N
整个粒子群迄今为止搜索到的最优位置为全局极值,记为
gbestpg1pg2pgD
在找到这两个最优值时,粒子根据如下的公式21和22来更新自己的速度和位置:
vidwvidc1r1pidxidc2r2pgdxid
xidxidvid
2122
其中:c1和c2为学习因子,也称加速常数,r1和r2为0,1范围内的均匀随机数。式21右边由三部分组成,第一部分为“惯性”或“动量”部分,反映了粒子的运动“习惯”,代表粒子有维持自己先前速度的趋势;第二部分为“认知”部分,反映了粒子对自身历史经验的记忆或回忆,代表粒子有向自身历史最佳位置逼近的趋势;第三部分为“社会”部分,反映了粒子间协同合作与知识共享的群体历史经验r