構建粒子群模型:
演算法要點:
matlab實現粒子群演算法:
function res = pso(n,d,t,xmax, xmin, vmax, vmin)
close all;
clc;
%c1 = 1.5;
c2 = 1.5;
w = 0.8;
%% 初始化種群位置以及速度 %%
x = rand(n,d)*(xmax-xmax)+xmin;
v = rand(n,d)*(vmax-vmin)+vmin;
%% 初始化區域性最優 %%
p = x;
pbest = ones(n,1);
for i = 1:n
pbest(i) = func1(x(i,:));
end%% 初始化全域性最優 %%
g = ones(1,d);
gbest = inf;
for i = 1:n
if (pbest(i) < gbest)
gbest = pbest(i);
g = p(i,:);
endendgb = ones(1,t); %歷代的最優值
%% 迭代 %%
for i = 1:t
%% 更新區域性最優 %%
for j = 1:n
if (func1(x(j,:)) < pbest(j))
p(j,:) = x(j,:);
pbest(j) = func1(x(j,:));
end%% 更新全域性最優 %%
if (pbest(j) < gbest)
g = p(j,:);
gbest = pbest(j);
endv(j,:) = w*v(j,:)+c1*rand*(p(j,:)-x(j,:))+c2*rand*(g-x(j,:));
x(j,:) = x(j,:)+v(j,:);
%% 邊界處理 %%
for k = 1:d
if (x(j,k) > xmax | x(j,k) < xmin)
x(j,k) = rand*(xmax-xmin)+xmin;
endif (v(j,k) > vmax | v(j,k) < vmin)
v(j,k) = rand*(vmax-vmin)+vmin;
endend
endgb(i) = gbest;
endbestx = g
res = func1(bestx);
figure;
plot(gb);
xlabel('迭代次數');
ylabel('適應度值');
title('適應度進化曲線');
適應度函式實現:
function res = func1(x)
[m,n] = size(x);
res=0;
for i = 1:2:n
res=res+x(i)*x(i);
endfor i = 2:2:n
res=res-x(i)*x(i);
end
測試效果:res = pso(500, 10, 1000, 20, -20, 10, -10)
結果和實際相差很小,說明**實現基本沒問題。此函式精確結果是-2000,程式解最優解已然很接近這一實際解。誤差僅僅為0.0175
智慧型優化演算法
智慧型優化演算法分類總結 蟻群演算法,1991 年 粒子群演算法,1994年 細菌覓食優化演算法,bacterial foraging optimization algorithm,2002年 混合蛙跳演算法,shuffled frog leaping algorithm,2003年 人工蜂群演算法...
五大智慧型手機作業系統大PK
引 智慧型手機 中的 智慧型 其實指的是手機上所執行的那些軟體。那麼,到底是哪種手機作業系統能夠真正集最強悍的效能 最好的易用性以及最好的發展潛力於一身呢?是iphone android blackberry windows mobile,還是symbian?你到底該選誰呢?還記得手機只能用來打 是...
九大商業智慧型分析平台
隨著大資料時代的來臨,商業智慧型這個詞在國外企業界出現,其代表為提高企業運營效能而採用的一系列方法 技術和軟體。它把先進的資訊科技應用到整個企業,不僅為企業提供資訊獲取能力,而且通過對資訊的開發,將其轉變為企業的競爭優勢,也有人稱之為混沌世界中的智慧型。因此,越來越多的企業提出他們對bi的需求,把b...