【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. 離散二進位制粒子群演算法步驟
初始化粒子位置:按一定策略,生成二進位制編碼;
速度更新公式
位置更新公式:概率對映方式,採用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.