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

  • 大小: 3KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-22
  • 語言: Matlab
  • 標簽: matlab??

資源簡介

本代碼基于matlab開發,是完全自主研發的粒子群算法來求解約束多目標優化萬能code,希望對學習的同學有幫助

資源截圖

代碼片段和文件信息

function?PSOfirst()
%%?清空環境
clear;
clc;

%%?參數設置
w=0.9;%權值?將影響PSO?的全局與局部搜優能力,?值較大,全局搜優能力強,局部搜優能力弱;反之,則局部搜優能力增強,而全局搜優能力減弱。
c1=0.1;%加速度,影響收斂速度
c2=0.1;
dim=6;%6維,表示企業數量
swarmsize=100;%粒子群規模,表示有100個解的空間
maxiter=200;%最大循環次數,影響時間
minfit=0.001;%最小適應值
vmax=0.01;
vmin=-0.01;
ub=[0.20.20.20.20.20.2];%解向量的最大限制
lb=[0.010.010.010.010.010.01];%解向量的最小限制

%%?種群初始化
range=ones(swarmsize1)*(ub-lb);
swarm=rand(swarmsizedim).*range+ones(swarmsize1)*lb;%粒子群位置矩陣
Y1=[33.08;
???21.85;?
???6.19;?
???11.77;?
???9.96;?
???17.15;];?
Y=Y1./100;%將百分數化為小數
[ymyn]=size(Y);
for?i=1:swarmsize??%%?YX的約束
????s=swarm(i:);
????ss=s‘;
????while?sum(Y.*ss)<0.1*sum(Y)
????????ss=rand(dim1).*((ub-lb)‘)+ones(dim1).*((lb)‘);
????end
????swarm(i:)=ss‘;
end
vstep=rand(swarmsizedim)*(vmax-vmin)+vmin;%粒子群速度矩陣
fswarm=zeros(swarmsize1);%預設空矩陣,存放適應值
for?i=1:swarmsize
????X=swarm(i:);
????[SUMGG]=jn(X);
????fswarm(i:)=SUMG;
????%fswarm(i:)=feval(jnswarm(i:));%以粒子群位置的第i行為輸入,求函數值,對應輸出給適應值
end

%%?個體極值和群體極值
[bestfbestindex]=min(fswarm);%求得適應值中的最小適應值,和,其所在的序列
gbest=swarm;%暫時的個體最優解為自己
fgbest=fswarm;%暫時的個體最優適應值
zbest=swarm(bestindex:);%所在序列的對應的解矩陣序列,全局最佳解
fzbest=bestf;%全局最優適應值


%%?迭代尋優
iter=0;
yfitness=zeros(1maxiter);%1行100列矩陣,存放100個最優值的空間矩陣
x1=zeros(1maxiter);%存放x的空間
x2=zeros(1maxiter);
x3=zeros(1maxiter);
x4=zeros(1maxiter);
x5=zeros(1maxiter);
x6=zeros(1maxiter);
while((iterminfit))
????for?j=1:swarmsize
????????%?速度更新
????????vstep(j:)=w*vstep(j:)+c1*rand*(gbest(j:)-swarm(j:))+c2*rand*(zbest-swarm(j:));
????????if?vstep(j:)>vmax??
????????????vstep(j:)=vmax;%速度限制
????????end
????????if?vstep(j:)????????????vstep(j:)=vmin;
????????end
????????%?位置更新
????????swarm(j:)=swarm(j:)+vstep(j:);
????????for?k=1:dim
????????????if?swarm(jk)>ub(k)
????????????????swarm(jk)=ub(k);%位置限制
????????????end
????????????if?swarm(jk)????????????????swarm(jk)=lb(k);
????????????end
????????end
???????
????????%?適應值????????
?????????X=swarm(j:);
?????????[SUMGG]=jn(X);
?????????fswarm(j:)=SUMG;
????????%?可在此處增加約束條件,若滿足約束條件,則進行適應值計算
????????
????????%
????????%?個體最優更新
????????if?fswarm(j)????????????gbest(j:)=swarm(j:);%個體最優解更新
????????????fgbest(j)=fswarm(j);%個體最優值更新
????????end
????????%?群體最優更新
????????if?fswarm(j)????????????zbest=swarm(j:);%群體最優解更新
????????????fzbest=fswarm(j);%群體最優值更新
????????end
????end
????iter=iter+1;
????yfitness(1iter)=fzbest;
????x1(1iter)=zbest(1);%將全局最優解的第1個元素,依次存儲,共有MAXITER個
????x2(1iter)=zbest(2);
????x3(1iter)=zbest(3);
????x4(1iter)=zbest(4);
????x5(1iter)=zbest(5);
????x6(1iter)=zbest(6);
end

fzbest
zbest
X=zbest;
[SUMGG]=jn(X);
GGbest=G;GGbest
%%?畫圖
figure(1)
plot(yfitness‘linewidth‘2)
title(‘最優基尼系數優化曲線‘‘fontsize‘14);
xlabel(‘迭代次數‘‘fontsize‘14);
ylabel(‘基尼系數‘‘fontsize‘14);

figure(2)
plot(x1‘b‘)
hold?on
pl

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????5099??2013-06-23?17:02??PSO_byself.m
?????目錄???????????0??2018-12-02?20:26??__MACOSX\
?????文件?????????212??2013-06-23?17:02??__MACOSX\._PSO_byself.m

評論

共有 條評論