粒子群算法講解


一、基於粒子群算法的尋優

數學物理中的很多問題歸結為解非線性方程。

解決方程求根的傳統方法:

牛頓法弦割法拋物線法牛頓下山法

傳統方法的缺點:收斂性和結果與初始值的選取有較大關係,依賴於背景知識,算法缺少通用性。

歷史: 1995年,Kennedy等以鳥類群體行為進行建模仿真的思想啟發,提出了粒子群優化(Particle Swarm Optimization,PSO)算法。

算法優點:

群體智能內在並行性迭代格式簡單可快速收斂到最優解所在區域

應用:

函數優化神經網絡訓練模糊控制系統

1.1基本粒子群算法

PSO基於群體的隨機優化,通過一組隨機解初始化,通過迭代搜尋最優解。PSO模擬社會。每個可能產生的解表述成群裡的一個微粒,每個微粒有自己的位置向量和速度向量,以及一個由目標函數決定的適應度。所有微粒在搜索空間中以一定速度飛行,通過追隨當前搜索到的最優值來尋找全局最優值。

PSO模擬社會採用以下三條簡單規則對粒子個體:

1. 飛離最近的個體,以免碰撞2. 飛向目標3. 飛向群體的中心

反應群體行為:鳥類被吸引飛向棲息地。在仿真開始,每隻鳥均無特定的目標進行飛行,直到有一隻鳥飛到棲息地,當設置的期望棲息比期望留在鳥群中具有較大的適應性時,每隻鳥都離開群體而飛向棲息地,隨後就自然形成了鳥群。

數學模型:設在S維目標搜索空間,有m個粒子組成一個群體,其中第i個粒子表示為一個S維向量

將Xi代入目標函數就可以算出其適應度。根據適應度大小衡量解的優劣。第i個粒子的飛翔速度是S維向量,記為


記第i個粒子至今搜索到的最優位置為

整個粒子群至今搜索到的最優位置為

f(x)是最小化的目標函數,則微粒i的當前最好位置由下式確定:

Kennedy用下列公式對粒子進行操作

其中:

   

學習因子 和 為非負常數。 和 為相互獨立的偽隨機數,服從 上的均勻分佈。 為常數

從以上進化方程可見,c1調節粒子向自身最好位置方向的步長,c2調節粒子向全局最好位置方向的步長。Vis用來降低進化過程中粒子離開搜索空間的可能,一般設定

 

Y.Shi對上式修改:

式中,動力常數w為非負數,控制前一速度對當速度的影響。w大時,前一速度影響大,全局搜索能力較強;w較小時,前一速度影響較小,局部搜索能力較強。通過調整w大小跳出局部極小值。

終止條件根據具體問題取最大迭代次數或粒子群搜索到的最優位置滿足的預定最小閾值。

初始化過程:

1. 設定群體規模m。2. 對任意i、s,在[-Xmax,Xmax]內服從均勻分佈產生Xis;3. 對任意的i、s,在[-Vmax,Vmax]內服從均勻分佈產生Vis;4. 對任意的i,設Yi=Xi。

PSO算法步驟如下:

1. 初始化一個規模為m的粒子群,設計初始位置和速度。2. 計算每個粒子的適應度。3. 對每個粒子將其適應度和其經歷的最好位置Pis的適應值進行比較,若較好,則將其作為當前最好

位置。4. 對每個粒子將其適應值和全局經歷過的最好位置Pgs的適應度進行比較,若較好,則將其作為當前

的全局最好位置。5. 根據方程對粒子的速度和位置進行更新。6. 如果滿足終止條件,則輸出解;否則返回第二步。


粒子群算法講解


分享到:


相關文章: