粒子群演算法學習 PSO

2021-09-11 06:54:21 字數 971 閱讀 7675

今天學習乙個新的群優化演算法——粒子群優化

下面放演算法原理鏈結

簡單的原理概括就是:利用鳥群之間資訊共享尋找食物的思想來尋找最優解,通過種群最佳適應度和個體最佳適應度來控制種群的進化方向。

下面附上寫的**:

clear all

num=50; % 種群數量為50

pop=rand(num,1)+1; % 生成新種群

pop_v=rands(num,1)*0.5; % 初始化種群速度為-0.5~0.5

g_max=pop;

w=1; %這裡權重越大越傾向於全域性搜尋

for i=1:100

pop_fitness=sin(10*pi*pop)./pop; % 計算種群的適應度

z_max=pop(pop_fitness==max(pop_fitness)); % 種族最佳個體

z_max=z_max(1); % 防止最大值重複

g_max_fitness=sin(10*pi*g_max)./g_max; % 計算個體的最佳適應度

g_max=pop.*(g_max_fitness<=pop_fitness)+g_max.*(g_max_fitness>pop_fitness); % 更新個體的最佳適應度

pop_v=w*pop_v+rand*1.49445*(g_max-pop)+rand*1.49445*(z_max-pop); % 更新速度

pop_v(pop_v>0.5)=0.5; % 控制種群速度

pop_v(pop_v<-0.5)=-0.5;

pop=pop+pop_v;

pop(pop>=2)=2; % 控制種群個體大小

pop(pop<=1)=1;

enddisp(z_max) % 找到的1~2之間適應度函式最大值的解

注意:該演算法比起遺傳演算法速度較快,實現更簡單,但是遇到複雜問題都會產生早熟收斂和收斂效能差的缺點,無法保證收斂到最優點。

粒子群(pso)演算法

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

粒子群演算法 PSO

1995年美國社會心理學家kennedy和電氣工程師eberhart共同提出粒子群優化演算法 particle swarm optimization,pso pso演算法的基本思想利用生物學家heppner的生物群體模型,模擬鳥類覓食過程。鳥類飛行過程相互交流,當乙個鳥飛向棲息地時,其他鳥兒也會跟著...

粒子群優化演算法 PSO

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