- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
粒子群优化算法(panicleswarmoptimization,PSO)是kennedy和Eberhart在研究鸟类和鱼类的群体行为根底上于1995年提出的一种群智能算法,其思想米源予人工生命和演化计算理论,模仿鸟群飞行觅食行为,通过鸟集体协作使群体到达最优。
1.粒子群算法的原理
PSO中,每个优化问题的解看作搜索空间中的一只鸟(即粒子),所有的粒子都有一个被优化的函数决定的适应值,并且有一个速度决定它们飞翔的方向和速率,粒子们追随当前的最优粒子在解空间中搜索。算法首先初始化一群随机粒子,然后通过迭代找到最优解。在每一次迭代中,粒子通过跟踪两个“极值”即个体极值和全局极值来更新自己的速度与位置。在D维目标搜索空间中,由种群数为m的粒子组成粒子群,其中第f个粒子在第d维的位置为Xid,其飞行速度为Vid,该粒子当前搜索到的最优位置为Pid(goodvalue)和整个粒子群当前的最优位置Pgd(bestvalue)。
每维的速度与位置更新公式如下
W为惯性权重,C1和C2为学习因子,rand〔〕——[0,1]范围内变化的随机数。
2.参数介绍与设置
〔1〕w
w是保持粒子运动惯性的参数,能使种群扩展搜索空间,获得较好的求解效果。较大的w有利于群体在更大的范围内进行搜索。而较小的w能够保证群体收敛到最优位置,所以w的选择及在迭代中的变化对搜索能力和跳出局优能力具有重要影响。一般将w设定为0.8左右。
〔1〕加速因子c1和c2
c1和c2用于调整粒子自身经验和社会经验在其运动中的作用,表示将每个粒子拉向pbest和gbest位置的随机加速项的权重,低的值允许粒子在被拉回前可以在目标区域外徘徊,而高的值那么导致粒子突然冲向或越过目标区域。如果c1=0,那么粒子没有认知能力。在粒子的相互作用下,能到达新的搜索空间,但容易陷入局部极值点;如果c2=0,粒子间没有社会信息共享,其算法变成一个多起点的随机搜索;如果c1=c2=0,粒子将一直以当前的速度飞行,直到到达边界。恰当地选择c1与c2能较好的得到最优解,一般都设定为2。
〔2〕最大速度vmax
vmax决定当前位置与最好位置之间的区域的分辨率〔或精度〕。如果vmax太高,微粒可能会飞跃最优解;如果vmax太小,那么微粒易陷入局部最优。引入惯性权重w可消除对vmax的需要,因为两者的作用都是维护全局和局部搜索能力的平衡。当vmax增加时,可通过减小w来平衡搜索,而w的减小可使得所需的迭代次数变小。但常常将设定一个最大的vmax。
较好地选择和调整参数能够加大搜索能力,防止PSO的早熟现象。
3.算法步骤及设计
PSO的算法框架如下所述,图1给出了PS0的算法流程。
(1)初始化所有的个体(粒子),初始化它们的速度和位置,并且将个体的历史最优goodvalue设为当前位置,而群体中最优的个体历史位置作为当前的全局最优bestvalue。
(2)在当代的进化中,计算各个粒子的适应度函数值。
(3)如果该粒子当前的适应度函数值比其历史最优值要好,那么历史最优将会被当前位置所替代。
〔4〕如果该粒子的历史最优比全局最优要好,那么全局最优将会被该粒子的历史最优所替代。
(5)对每个粒子按照公式(1)和公式(2)对速度和位置进行更新。
(6)进化代数增加1,如果还没有到达结束条件,转到(2)步,否那么输出全局最优bestvalue并结束。
开始
开始
初始化粒子群计算每个粒子新位置的适应值
初始化粒子群
计算每个粒子新位置的适应值
根据粒子适应值更新个体最优值和全局最优值
根据粒子适应值更新个体最优值和全局最优值
根据公式更新粒子速度和位置
根据公式更新粒子速度和位置
N是否满足终止条件
N
是否满足终止条件
Y
Y
输出最优解
输出最优解
结束
结束
图一PSO算法流程
4.程序设计与仿真
〔1〕程序设计说明
采用MATLAB软件编程,程序粒子种群个数设定为20个,搜索范围为全局版本,终止条件是粒子都到达最优点。
〔2〕函数,其图形如图2所示,其在x=0.5,y=3.处有最小值f=-7.25.运行程序大约迭代220步,就可以让所有的粒子到达最优点。图3中坐标图从左到右从上到下分别为初始化种群的位置、k=50的粒子位置、k=100的粒子位置及迭代结束粒子的位置.从图中可见能够搜索到最优点。
图2f1三维图形 图3仿真粒子位置图
〔2〕Rastrigin函数,当n=2时,为二维图形如图4所示,在x1=0,x2=0.处有最大值f=0;在程序中取相反数求其最小值,迭代k=670步左右将可以将所有的粒子推向一点——最优点。取前十个粒子的位置如图5,可知可以快速地得到满意的最优解,且能够跳出局优。
图4f2函数n=2三维图形 图5粒子位置
文档评论(0)