1. 程式人生 > >粒子群演算法改進思路

粒子群演算法改進思路

粒子群演算法的發展過程。粒子群優化演算法(Partical Swarm Optimization PSO),粒子群中的每一個粒子都代表一個問題的可能解,通過粒子個體的簡單行為,群體內的資訊互動實現問題求解的智慧性.由於PSO操作簡單、收斂速度快,因此在函式優化、 影象處理、大地測量等眾多領域都得到了廣泛的應用. 隨著應用範圍的擴大,PSO演算法存在早熟收斂、維數災難、易於陷入區域性極值等問題需要解決,主要有以下幾種發展方向。

(1)調整PSO的引數來平衡演算法的全域性探測和區域性開採能力.如Shi和Eberhart對PSO演算法的速度項引入了慣性權重,並依據迭代程序及粒子飛行情況對慣性權重進行線性(或非線性)的動態調整,以平衡搜尋的全域性性和收斂速度.2009年張瑋等在對標準粒子群 演算法位置期望及方差進行穩定性分析的基礎上,研究了加速因子對位置期望及方差的影響,得出了一組較好的加速因子取值。

(2)設計不同型別的拓撲結構,改變粒子學習模式,從而提高種群的多樣性,Kennedy等人研究了不同的拓撲結構對SPSO效能的影響.針對SPSO存在易早熟收斂,尋優精度不高的缺點,於2003年提出了一種更為明晰的粒子群演算法的形式:骨幹粒子群演算法(Bare Bones PSO,BBPSO).

(3)將PSO和其他優化演算法(或策略)相結合,形成混合PSO演算法.如曾毅等將模式搜尋演算法嵌入到PSO演算法中,實現了模式搜尋演算法的區域性搜尋能力與PSO演算法的全域性尋優能力的優勢互補.

(4)採用小生境技術.小生境是模擬生態平衡的一種仿生技術,適用於多峰函式和多目標函式的優化問題.例如,在PSO演算法中,通過構造小生境拓撲,將種群分成若干個子種群,動態地形成相對獨立的搜尋空

間,實現對多個極值區域的同步搜尋,從而可以避免演算法在求解多峰函式優化問題時出現早熟收斂現象. Parsopoulos提出一種基於“分而治之”思想的多種群PSO演算法,其核心思想是將高維的目標函式分解成多個低維函式,然後每個低維的子函式由一個子粒子群進行優化,該演算法對高維問題的求解提供了一個較好的思路.

不同的發展方向代表不同的應用領域,有的需要不斷進行全域性探測,有的需要提高尋優精度,有的需要全域性搜尋和區域性搜尋相互之間的平衡,還有的需要對高維問題進行求解。這些方向沒有誰好誰壞的可比性,只有針對不同領域的不同問題求解時選擇最合適的方法的區別。

2   相關模型和思想

粒子群演算法( Particle Swarm Optimization, PSO)最早是由Eberhart和Kennedy於1995年提出,它的基本概念源於對鳥群覓食行為的研究。設想這樣一個場景:一群鳥在隨機搜尋食物,在這個區域裡只有一塊食物,所有的鳥都不知道食物在哪裡,但是它們知道當前的位置離食物還有多遠。最簡單有效的策略?尋找鳥群中離食物最近的個體來進行搜素。PSO演算法就從這種生物種群行為特性中得到啟發並用於求解優化問題。

用一種粒子來模擬上述的鳥類個體,每個粒子可視為N維搜尋空間中的一個搜尋個體,粒子的當前位置即為對應優化問題的一個候選解,粒子的飛行過程即為該個體的搜尋過程.粒子的飛行速度可根據粒子歷史最優位置和種群歷史最優位置進行動態調整.粒子僅具有兩個屬性:速度和位置,速度代表移動的快慢,位置代表移動的方向。每個粒子單獨搜尋的最優解叫做個體極值,粒子群中最優的個體極值作為當前全域性最優解。不斷迭代,更新速度和位置。最終得到滿足終止條件的最優解。