粒子群算法(一):粒子群算法概述


0?前言

??本系列文章主要針對粒子群算法進行介紹和運用,并給出粒子群算法的經(jīng)典案例,從而進一步加深對粒子群算法的了解與運用(預計在一周內(nèi)完成本系列文章)。主要包括四個部分:


1?概述

??粒子群算法也稱粒子群優(yōu)化算法(Particle Swarm Optimization, PSO),屬于群體智能優(yōu)化算法,是近年來發(fā)展起來的一種新的進化算法(Evolutionary Algorithm, EA)。群體智能優(yōu)化算法主要模擬了昆蟲、獸群、鳥群和魚群的群集行為,這些群體按照一種合作的方式尋找食物,群體中的每個成員通過學習它自身的經(jīng)驗和其他成員的經(jīng)驗來不斷地改變搜索的方向。群體智能優(yōu)化算法的突出特點就是利用了種群的群體智慧進行協(xié)同搜索,從而在解空間內(nèi)找到最優(yōu)解。
??PSO 算法和模擬退火算法相比,也是 從隨機解出發(fā),通過迭代尋找最優(yōu)解。它是通過適應度來評價解的品質(zhì),但比遺傳算法規(guī)則更為簡單,沒有遺傳算法的“交叉”和“變異”,它通過追隨當前搜索到的最大適應度來尋找全局最優(yōu)。這種算法以其 容易實現(xiàn)、精度高、收斂快 等優(yōu)點引起了學術(shù)界的重視,并在解決實際問題中展示了其優(yōu)越性。


2?粒子群算法的基本原理

??在粒子群算法中,每個優(yōu)化問題的解被看作搜索空間的一只鳥,即“粒子”。算法開始時首先生成初始解,即在可行解空間中隨機初始化m粒子組成的種群Z=\{Z_1,Z_2,\cdots,Z_m\},其中每個粒子所處的位置Z_i=\{z_{i1},z_{i2},\cdots,z_{in} \},都表示問題的一個解,并依據(jù)目標函數(shù)計算搜索新解。在每次迭代時,粒子將跟蹤兩個“極值”來更新自己, 一個是粒子本身搜索到的最好解Pbest_i,另一個是整個種群目前搜索到的最優(yōu)解Gbest。此外每個粒子都有一個速度V_i=\{v_{i1},v_{i2},\cdots,v_{in} \},當兩個最優(yōu)解都找到后,每個粒子根據(jù)如下迭代式更新:

  • 速度向量迭代公式:V_i = \omega V_i + c_1r_1(Pbest_i - Z_i)+c_2r_2(Gbest-Z_i)
  • 位置向量迭代公式:X_i = X_i+V_i

??其中參數(shù)\omega稱為是 PSO 的 慣性權(quán)重(inertia weight),它的取值介于[0,1]區(qū)間;參數(shù)c_1c_2稱為是 學習因子(learn factor);而r_1r_2為介于[0,1]之間的隨機概率值。
??實踐證明沒有絕對最優(yōu)的參數(shù),針對不同的問題選取合適的參數(shù)才能獲得更好的收斂速度和魯棒性,一般情況下c_1,c_21.4961,而\omega采用自適應的取值方法,即一開始令\omega=0.9使得 PSO 全局優(yōu)化能力較強;隨著迭代的深入,遞減至\omega=0.1,從而使得PSO具有較強的局部優(yōu)化能力


3?粒子群算法的基本流程

  • Step 1 種群初始化:可以進行隨機初始化或者根據(jù)被優(yōu)化的問題設計特定的初始化方法,然后計算個體的適應值,從而選擇出個體的局部最優(yōu)位置向量Pbest_i和種群的全局最優(yōu)位置向量Gbest。

  • Step 2 迭代設置:設置迭代次數(shù)Tmax,并令當前迭代次數(shù)T=1;

  • Step 3 速度更新:更新每個個體的速度向量;

  • Step 4 位置更新:更新每個個體的位置向量;

  • Step 5 局部位置向量和全局位置向量更新:更新個體的Pbest_i和種群的Gbest

  • Step 6 終止條件判斷:判斷迭代次數(shù)時都達到Tmax,如果滿足,輸出Gbest;否則繼續(xù)進行迭代,跳轉(zhuǎn)至Step 3。

對于粒子群優(yōu)化算法的運用,主要是對速度和位置向量迭代算子的設計。迭代算子是否有效將決定整個PSO算法性能的優(yōu)劣,所以如何設計PSO的迭代算子是PSO算法應用的研究重點和難點。


4?對于權(quán)重慣量的理解

??參數(shù)\omega之所以被稱之為慣性權(quán)重,是因為\omega實際反映了粒子過去的運動狀態(tài)對當前行為的影響,就像是我們物理中提到的慣性。如果\omega<<1,從前的運動狀態(tài)很少能影響當前的行為,粒子的速度會很快的改變;相反,\omega較大,雖然會有很大的搜索空間,但是粒子很難改變其運動方向,很難向較優(yōu)位置收斂,由于算法速度的因素,在實際運用中很少這樣設置。也就是說,較高的\omega設置促進全局搜索,較低的\omega設置促進快速的局部搜索。

常用權(quán)重慣量選擇方式有:

  • 自適應權(quán)重法
  • 隨機權(quán)重法
  • 線性遞減權(quán)重法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容