1. 程式人生 > >【PSO】離散粒子群演算法(DPSO)和離散二進位制粒子群演算法(BPSO )

【PSO】離散粒子群演算法(DPSO)和離散二進位制粒子群演算法(BPSO )

1. 什麼是離散粒子群演算法?

普通粒子群演算法(Particle Swarm Optimization Algorithm,PSO)的粒子初始位置、更新速度都是連續函式,與之對應,位置和速度更新均為離散值的演算法是離散PSO演算法(Discrete Particle Swarm Optimization Algorithm, DPSO);

一般就是在跟新粒子位置後,對粒子進行離散點處理;

比如:你的粒子的離散點是0到9的整數。那麼對每個粒子更新位置後,比如是在(0,1)範圍內的隨機數。那麼就(0,0.1)範圍令其值為0;(0.1,0.2)範圍令其值為1;............(0.9.1)範圍令其值為9。當然初始位置值也需要這樣處理。

參考

2. 什麼是離散二進位制粒子群演算法?

離散二進位制粒子群演算法(Discrete Binary Particle Swarm Optimization Algorithm, BPSO)最初由J.Kennedy和R.C.Eberhart在1997年設計;

PSO主要優化連續實值問題,BPSO主要優化離散空間約束問題;

BPSO是在離散粒子群演算法基礎上,約定位置向量、速度向量均由0、1值構成;

BPSO有很強全域性搜尋能力,但不能收斂於全域性最優值,且隨著演算法迭代搜尋隨機性越來越強,缺乏後期的區域性搜尋能力;

3. 離散二進位制粒子群演算法步驟

初始化粒子位置:按一定策略,生成二進位制編碼;

速度更新公式

:速度 x 慣性權重 + (個體最優位置 - 當前位置)x 學習因子1 x 隨機數 + (全域性最優位置 - 當前位置)x 學習因子2 x 隨機數


位置更新公式:概率對映方式,採用sigmoid函式將速度對映到 [0, 1] 區間作為概率,這個概率就是粒子下一步取值為1的概率;


位置變化的絕對概率:當前位置為0變化為1,當前為1變化為0,這二者被稱為絕對變化;概率表示為:


其中S(Vid)表示粒子軌跡當前為0的概率,則1- S(Vid) 表示當前為1的概率;如果當前為0,則改變的概率為1- S(Vid) ,如果當前為1,則改變概率為 S(Vid)。結合(2)式可以得到如下方程:


圖形表示為



其中,最大改變概率不超過0.25;

隨後更嚴謹的分析加入了前後時間的影響,位置改變概率變為:


公式(8)也就是第8代位置改變的概率,與兩代的速度有關;


即,最大改變概率不超過0.5

4. 實驗步驟

第一步:確定測試的基準函式;

第二步:測試某個粒子的平均速度迭代變化,某個粒子取1的平均概率迭代變化;某個粒子改變概率迭代變化;某個粒子到最優粒子距離的迭代變化;

第三步:提出改進的粒子群演算法,改進點為概率函式;按照第二步進行實驗;

第四步:提出改進的基於遺傳演算法的二進位制PSO演算法;進行顯著性分析,測試最小平均適應度值和標準方差;

參考文獻

劉建華, 楊榮華, 孫水華. 離散二進位制粒子群演算法分析[J]. 南京大學學報(自然科學), 2011, 47(5):504-514.