91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡介

針對解形式為二進制編碼形式的問題的粒子群優化算法matlab源碼

資源截圖

代碼片段和文件信息

function?[?Besfi?Besi?Bfi?DIVS?]?=?BPSO(?SizeGc1c2wdeviceprice?)
% 基本粒子群優化算法(Particle?Swarm?Optimization)
%?輸入參數
%???c1????????????????學習因子1
%???c2????????????????學習因子2
%???w?????????????????慣性權重
%???G?????????????????最大迭代次數
%???Size??????????????初始化群體個體數目
%?輸出參數
%???輸出參數
%???Besfi????????優化后最優個體適應度
%???pg???????????最優個體
%???Bfi??????????每次迭代中最優個體的適應度,1*n向量
%???DIVS?????????種群多樣性

%創建一個進度條以監視優化進度
%?hWaitbar=waitbar(0‘開始優化計算...‘‘Name‘[num2str(Size)?‘-‘?num2str(G)?‘-‘?num2str(c1)?‘-‘?num2str(c2)?‘-‘?num2str(w)]);
%?set(hWaitbar‘Windowstyle‘‘modal‘);??%窗口鎖定最前
%?btnCancel?=?findall(hWaitbar‘style‘‘pushbutton‘);?%查找“取消“按鈕
%?set(btnCancel‘string‘‘取消‘‘fontsize‘10);?????%設置“取消“按鈕顯示字符

%優化對象參數提取
[concodedevicenumcodesizes]?=?Getcontrolcode(?device?);???%提取未優化時的運行編碼
%?D:搜索空間維數(未知數個數)
D=size(concode2);
%搜索范圍和個體移動速度限制

Maxx=ones(1D);
Minx=zeros(1D);
Maxv=ones(1D);
Minv=zeros(1D);
%?Maxv=(Maxx-Minx)/4;
%?Minv=-Maxv;

%------初始化種群的個體?(可以在這里限定位置和速度的范圍)------------

for?i=1:Size
????for?j=1:D
%?????????x(ij)=rand*(Maxx(j)-Minx(j)+Minx(j));??%隨機初始化位置
????????v(ij)=rand*(Maxv(j)-Minv(j))+Minv(j);??%隨機初始化速度
????????x(ij)=round(v(ij));
????end
end

%------先計算各個粒子的適應度,并初始化Pi和Pg----------------------
for?i=1:Size
????ps(i)=fun(deviceround(x(i:))devicenumcodesizesprice);
????y(i:)=x(i:);
end

pg=round(x(1:));?????????????%Pg為全局最優
Besfi=ps(1);
for?i=2:Size
????if?ps(i)????????pg=round(x(i:));
????????Besfi=ps(i);
????end
end
%------進入主要循環,按照公式依次迭代,直到滿足精度要求------------
for?k=1:G
????time(k)=k;
???%?bf(t)=fitness(pgp);

??%計算多樣性
?S=max(Maxx-Minx)/2;
?for?xj=1:1:D
????avgxj(xj)=mean(x(:xj));
?end
?DIVS(k)=0;
?for?xi=1:1:Size
?????tmpd=0;
?????for?xj=1:1:D
?????????tmpd=tmpd+(x(xixj)-avgxj(xj))^2;
?????end
?????DIVS(k)=DI

評論

共有 條評論