粒子群(PSO)算法简介
一、簡介
粒子群算法是由Kennedy和 Eberhart于1995年提出的,算法模擬鳥群飛行覓食的行為,通過鳥之間的集體協(xié)作使群體達到最優(yōu)與遺傳算法類似,它也是基于群體迭代,但無交叉變異算子,群體在解空間中追隨最優(yōu)粒子進行搜索。粒子群算法初始化為一群隨機粒子,然后通過迭代找到最優(yōu)解。每次迭代 ,粒子通過跟蹤2個“極值”:粒子本身所找到的最優(yōu)解 PBest 和群體找到的最優(yōu)解 GBest 以更新自己。PSA算法數(shù)學表示如下:設搜索空間為D維 ,總粒子數(shù)N0,第i個粒子位置表示為向量Xi=(xi1,xi2 ,…,xid);第i個粒子的歷史最優(yōu)位置為Pi=(pi1,pi2 ,…,pid) ,其中Pg為所有Pi(i=1,…,n)中的最優(yōu);第i個粒子的位置變化率為向量Vi=(vi1,vi2,…,vid)。每個粒子的位置按如下公式變化:
vid(t+1)=w×vid(t)+c1×rand()×[pid(t)-xid(t)]+c2×rand()×[pgd(t)-xid(t)] (1)
xid(t+1)=xid(t)+vid(t+1) (2)
式c1,c2為正的常數(shù),稱為加速因子;rand()產生[0,1]間的均勻分布的隨機數(shù);W為慣性因子,W 較大時適于大范圍探查,W較小時適于小范圍開發(fā)。迭代中位置 xi和速度vi超過邊界則取邊界值。粒子群初始位置和速度隨機產生 ,然后按式(1)和(2)進行迭代 ,直至找到滿意的解。
二、粒子群算法的優(yōu)化
因為在搜索過程中的全局搜索能力與局部搜索能力之間的平衡關系對算法是否成功起著重要的作用, 適當?shù)馗淖儜T性權值會有很好的效果,當慣性權值較大時, 有利于搜索跳出局部極小點,當慣性權值較小時,有利于算法的收斂,所以一般在優(yōu)化初期設置較大的慣性權值,這樣可以具有較強的全局搜索能力,而在優(yōu)化的后期設置較小的慣性權值,使得局部搜索能力提高。
為此,我們采取慣性因子w線性變化的方式:
w=wmax–k×(wmax–wmin)/kmax
總結
以上是生活随笔為你收集整理的粒子群(PSO)算法简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 交叉验证(Cross Validatio
- 下一篇: KMPLAYER无法播放rmvb格式的解