粒子群優化演算法 PSO

2021-08-28 02:46:01 字數 2932 閱讀 4460

粒子群優化演算法(pso:particle swarm optimization) 是一種進化計算技術(evolutionary computation)。

源於對鳥群捕食的行為研究。粒子群優化演算法的基本思想:是通過群體中個體之間的協作和資訊共享來尋找最優解.

pso的優勢:在於簡單容易實現並且沒有許多引數的調節。目前已被廣泛應用於函式優化、神經網路訓練、模糊系統控制以及其他遺傳演算法的應用領域。 

鳥被抽象為沒有質量和體積的微粒(點),並延伸到n維空間,粒子i在n維空間的位置表示為向量xi=(x1,x2,…,xn),飛行速度表示為向量vi=(v1,v2,…,vn)。每個粒子都有乙個由目標函式決定的適應值(fitness value),並且知道自己到目前為止發現的最好位置(pbest)和現在的位置xi。這個可以看作是粒子自己的飛行經驗。除此之外,每個粒子還知道到目前為止整個群體中所有粒子發現的最好位置(gbest)(gbest是pbest中的最好值),這個可以看作是粒子同伴的經驗。粒子就是通過自己的經驗和同伴中最好的經驗來決定下一步的運動。 

pso初始化為一群隨機粒子(隨機解)。然後通過迭代找到最優解。在每一次的迭代中,粒子通過跟蹤兩個「極值」(pbest,gbest)來更新自己。在找到這兩個最優值後,粒子通過下面的公式來更新自己的速度和位置。

公式(1)的第一部分稱為【記憶項】,表示上次速度大小和方向的影響;公式(1)的第二部分稱為【自身認知項】,是從當前點指向粒子自身最好點的乙個向量,表示粒子的動作**於自己經驗的部分;公式(1)的第三部分稱為【群體認知項】,是乙個從當前點指向種群最好點的向量,反映了粒子間的協同合作和知識共享。粒子就是通過自己的經驗和同伴中最好的經驗來決定下一步的運動。

以上面兩個公式為基礎,形成了pso的標準形式。

公式(2)和 公式(3)被視為標準pso演算法。

標準pso演算法的流程:

1)初始化一群微粒(群體規模為n),包括隨機位置和速度;

2)評價每個微粒的適應度;

3)對每個微粒,將其適應值與其經過的最好位置pbest作比較,如果較好,則將其作為當前的最好位置pbest;

4)對每個微粒,將其適應值與其經過的最好位置gbest作比較,如果較好,則將其作為當前的最好位置gbest;

5)根據公式(2)、(3)調整微粒速度和位置;

6)未達到結束條件則轉第2)步。

迭代終止條件根據具體問題一般選為最大迭代次數gk或(和)微粒群迄今為止搜尋到的最優位置滿足預定最小適應閾值。

公式(2)和(3)中pbest和gbest分別表示微粒群的區域性和全域性最優位置。

當c1=0時,則粒子沒有了認知能力,變為只有社會的模型(social-only):

被稱為全域性pso演算法。粒子有擴充套件搜尋空間的能力,具有較快的收斂速度,但由於缺少區域性搜尋,對於複雜問題

比標準pso 更易陷入區域性最優。

當c2=0時,則粒子之間沒有社會資訊,模型變為只有認知(cognition-only)模型:

被稱為區域性pso演算法。由於個體之間沒有資訊的交流,整個群體相當於多個粒子進行盲目的隨機搜尋,收斂速度慢,因而得到最優解的可能性小。

引數:群體規模n,慣性因子

群體規模n:一般取20~40,對較難或特定類別的問題可以取到100~200。

最大速度vmax:決定當前位置與最好位置之間的區域的解析度(或精度)。如果太快,則粒子有可能越過極小點;如果太慢,則粒子不能在區域性極小點之外進行足夠的探索,會陷入到區域性極值區域內。這種限制可以達到防止計算溢位、決定問題空間搜尋的粒度的目的。

權重因子:包括慣性因子

引數設定

1) 如果令c1=c2=0,粒子將一直以當前速度的飛行,直到邊界。很難找到最優解。

2) 如果

3) 通常設c1=c2=2。suganthan的實驗表明:c1和c2為常數時可以得到較好的解,但不一定必須等於2。clerc引入收斂因子(constriction factor) k來保證收斂性。

通常取例。恰當的選取演算法的引數值可以改善演算法的效能。

1)共性:

(1) 都屬於仿生演算法。

(2) 都屬於全域性優化方法。

(3) 都屬於隨機搜尋演算法。

(4) 都隱含並行性。

(5) 根據個體的適配資訊進行搜尋,因此不受函式約束條件的限制,如連續性、可導性等。

(6) 對高維複雜問題,往往會遇到早熟收斂和收斂 效能差的缺點,都無法保證收斂到最優點。  

2)差異:

(1) pso有記憶,好的解的知識所有粒子都保 存,而ga(genetic algorithm),以前的知識隨著種群的改變被改變。

(2) pso中的粒子僅僅通過當前搜尋到最優點進行共享資訊,所以很大程度上這是一種單共享項資訊機制。而ga中,染色體之間相互共享資訊,使得整個種群都向最優區域移動。

(3) ga的編碼技術和遺傳操作比較簡單,而pso相對於ga,沒有交叉和變異操作,粒子只是通過內部速度進行更新,因此原理更簡單、引數更少、實現更容易。

(4) 應用於人工神經網路(ann)

ga可以用來研究nn的三個方面:網路連線權重、網路結構、學習演算法。優勢在於可處理傳統方法不能處理的問題,例如不可導的節點傳遞函式或沒有梯度資訊。

ga缺點:在某些問題上效能不是特別好;網路權重的編碼和遺傳運算元的選擇有時較麻煩。

已有利用pso來進行神經網路訓練。研究表明pso是一種很有潛力的神經網路演算法。速度較快且有較好的結果。且沒有遺傳演算法碰到的問題。

粒子群優化演算法 PSO

粒子群優化演算法 pso particle swarm optimization 是一種進化計算技術 evolutionary computation 源於對鳥群捕食的行為研究。粒子群優化演算法的基本思想 是通過群體中個體之間的協作和資訊共享來尋找最優解 pso的優勢 在於簡單容易實現並且沒有許多引...

粒子群優化演算法 PSO

粒子群優化演算法 pso particle swarm optimization 是一種進化計算技術 evolutionary computation 源於對鳥群捕食的行為研究。粒子群優化演算法的基本思想 是通過群體中個體之間的協作和資訊共享來尋找最優解 pso的優勢 在於簡單容易實現並且沒有許多引...

粒子群優化演算法(PSO)

粒子演算法通過一些無質量的粒子來模擬鳥群種的鳥,粒子具有兩個屬性 速度和位置。速度代表粒子移動速度的快慢,位置代表當前的位置。每個粒子在搜尋空間中單獨的尋找搜尋最優解,並記為當前粒子的最優解,即下面符號說明中的1。每個粒子的最優解與整個粒子群中的其他粒子進行粒子共享,找到最優的那個個體最優解作為整個...