關於粒子群優化演算法(pso)的解釋: (等網上各種參考資料)
用pso找函式極值。
function [ f ] =fun( x, y )構造了乙個二元函式,很明顯,有極小值,在(50, 50)。%untitled2 此處顯示有關此函式的摘要
%此處顯示詳細說明
a = 50
;b = 50
;f = (x-a)^2 + (y-b)^2
;end
用五個粒子去找。每個點對應的函式輸出值即視為粒子的適應度。
1執行結果:[50.0030796073836,50.0004541255463]clear all;
2clc;
3 %initialize
4 n = 5
;5 p = rand(5, 2) * 100
;6 p = cell(5, 1);7
for i = 1
: n8 p(i, 1) = ;
9end
10 v = rand(5, 2) * 0.5
;11 vmax = 0.5
;12 pbest =p;
13 gbest = cell(1
);14 fit_v = zeros(5, 1
);15 key = 1;16
for i = 1
: n17 fit_v(i, 1) = fun(p(1), p(2
));18
if( fit_v(i, 1) < fit_v(key, 1
) )19 key =i;
20end
21end
22 gbest(1) = pbest(key, 1
);23 %loop
24 t = 1;25
while(t < 300)26
for i = 1
: n27
for j = 1: 2
28 v(i, j) = v(i, j) + 2*rand()*(pbest(j)-p(j)) + 2*rand()*(gbest(j)-p(j));
29if( abs(v(i, j)) >vmax )
30 v(i, j) = abs(v(i, j)) / v(i, j) *vmax;
31end
32 p(j) = p(j) +v(i, j);
33end
34 fit_v_temp = fun(p(1), p(2
));35
if( fit_v_temp
36 fit_v(i, t+1) =fit_v_temp;
37 pbest(i, t+1) =p(i);
38else
39 fit_v(i, t+1) =fit_v(i, t);
40 pbest(i, t+1) =pbest(i, t);
41end
42end
43 t = t + 1
;44 key = 1;45
for i = 1
: n46
if( fit_v(i, t)
47 key =i;
48end
49end
50 gbest(t) =pbest(key, t);
51 end
圖1 gbest軌跡(紅點表示最後收斂位置)
圖2 各個粒子的適應度曲線
可以發現在100次左右就基本收斂了。
粒子群優化演算法 PSO
粒子群優化演算法 pso particle swarm optimization 是一種進化計算技術 evolutionary computation 源於對鳥群捕食的行為研究。粒子群優化演算法的基本思想 是通過群體中個體之間的協作和資訊共享來尋找最優解 pso的優勢 在於簡單容易實現並且沒有許多引...
粒子群優化演算法 PSO
粒子群優化演算法 pso particle swarm optimization 是一種進化計算技術 evolutionary computation 源於對鳥群捕食的行為研究。粒子群優化演算法的基本思想 是通過群體中個體之間的協作和資訊共享來尋找最優解 pso的優勢 在於簡單容易實現並且沒有許多引...
粒子群優化演算法 PSO
粒子群優化演算法 pso particle swarm optimization 是一種進化計算技術 evolutionary computation 源於對鳥群捕食的行為研究。粒子群優化演算法的基本思想 是通過群體中個體之間的協作和資訊共享來尋找最優解 pso的優勢 在於簡單容易實現並且沒有許多引...