您好,欢迎访问三七文档
PSO粒子群算法(particleswarmoptimization,PSO)由Kennedy和Eberhart在1995年提出,该算法模拟鸟集群飞行觅食的行为,鸟之间通过集体的协作使群体达到最优目的,是一种基于SwarmIntelligence的优化方法。PSO粒子群优化算法源于1987年Reynolds对鸟群社会系统boids的仿真研究,boids是一个CAS。在boids中,一群鸟在空中飞行,每个鸟遵守以下三条规则:1)避免与相邻的鸟发生碰撞冲突;2)尽量与自己周围的鸟在速度上保持协调和一致;3)尽量试图向自己所认为的群体中靠近。PSOKennedy和Eberhart在中加入了一个特定点,定义为食物,鸟根据周围鸟的觅食行为来寻找食物。他们的初衷是希望通过这种模型来模拟鸟群寻找食源的现象,然而实验结果却揭示这个仿真模型中蕴涵着很强的优化能力,尤其是在多维空间寻优中。PSOPSO中,每个优化问题的解都是搜索空间中的一只鸟。称之为“粒子(Particle)”。所有的粒子都有一个由被优化的函数决定的适应值,每个粒子还有一个速度决定他们飞翔的方向和距离。然后粒子们就追随当前的最优粒子在解空间中搜索.PSOPSO初始化为一群随机粒子。然后通过叠代找到最优解。在每一次叠代中,粒子通过跟踪两个极值来更新自己。第一个就是粒子本身所找到的最优解。这个解叫做个体极值pBest.另一个极值是整个种群目前找到的最优解。这个极值是全局极值gBest。PSOPSO算法数学表示如下:设搜索空间为D维,总粒子数为n。第i个粒子位置表示为向量Xi=(xi1,xi2,…,xiD);第i个粒子“飞行”历史中的过去最优位置(即该位置对应解最优)为Pi=(pi1,pi2,…,piD),其中第g个粒子的过去最优位置Pg为所有Pi(i=1,…,n)中的最优;第i个粒子的位置变化率(速度)为向量Vi=(vi1,vi2,…,viD)。每个粒子的位置按如下公式进行变化(“飞行”):PSO其中,C1,C2为正常数,称为加速因子;rand()为[0,1]之间的随机数;w称惯性因子,w较大适于对解空间进行大范围探查(exploration),w较小适于进行小范围开挖(exploitation)。第d(1≤d≤D)维的位置变化范围为[-XMAXd,XMAXd],速度变化范围为[-VMAXd,VMAXd],迭代中若位置和速度超过边界范围则取边界值。12(1)()()[()()]()[()()]ididididgdidvtwvtcrandptxtcrandptxt(1)()(1)11idididxtxtvtindDPSO粒子群初始位置和速度随机产生,然后按公式(1)(2)进行迭代,直至找到满意的解。PSOPSOPSO
本文标题:PSO
链接地址:https://www.777doc.com/doc-5269277 .html