C語言 粒子群演算法(PSO)

2021-08-17 04:19:58 字數 951 閱讀 8970

for(int i = 0;ifor(int j = 0;j0,1)*(population[i].his_best[j]-population[i].location[j])+

c2*randvar(0,1)*(global_best[j]-population[i].location[j]);

population[i].location[j] = population[i].location[j]+population[i].velocity[j];

/**adjust the value if the location is illegal*/

if(population[i].location[j] > population[i].upbound[j]) population[i].location[j] =population[i].upbound[j];

else

if(population[i].location[j] < population[i].lowbound[j]) population[i].location[j] =population[i].lowbound[j];}}

} 經過測試,pso果真比ga快,然而解的精度無法很好體現因為測試函式多是凸函式。

四種自適應慣性的方法: 

①慣性權重線性遞減法(ldw) 

ω = ωmax - (ωmax - ωmin)×t/tmax 

ωmax為最大值,一般取0.9 

ωmin為最小值,一般取0.4 

t為當前代數 

tmax為最大代數

②隨機慣量權重法 

單峰函式,ω在[0.3,0.5] 

多峰函式,ω在[0.5,0.7]

③慣量權重凹函式遞減法 

ω = -(ωmax - ωin)×t^2 + ωmax

④慣量權重凸函式遞減法 

ω = (ωmax - ωmin)(t-1)^2 + ωmin

粒子群(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的優勢 在於簡單容易實現並且沒有許多引...