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