非线性整数规划的遗传算法Matlab程序(2)

2020-05-13 09:52

while k minSYZ=min(SYZ); posSYZ=find(SYZ==minSYZ); POS=posSYZ(1); k=k+1;

farm{k}=NEWFARM{POS}; syz(k)=SYZ(POS); SYZ(POS)=inf; end

%记录和更新,更新最优个体,记录收敛曲线的数据 minsyz=min(syz); meansyz=mean(syz);

pos=find(syz==minsyz); LC3(counter+1)=meansyz;

if minsyz Best=minsyz; Xp=farm{pos(1)}; end

LC4(counter+1)=Best; ppp=(1-Xp)+(1-q).*Xp;

LC1(counter+1)=sum(w.*prod(ppp)); LC2(counter+1)=sum(sum(e.*Xp));

%% 第五步:变异 for i=1:N

if Pm>rand%是否变异由变异概率Pm控制 AA=farm{i};%取出一个个体

POS=unidrnd(50);%随机选择变异位 R=rand;

Col=zeros(4,1); if R<0.7

RP=randperm(4); Col(RP(1))=1; elseif R>0.9

RP=randperm(4); Col(RP(1:2))=1; else

RP=randperm(4); Col(RP(1:3))=1; end

%下面是判断变异产生的新个体是否满足约束,如果不满足,此

次变异无效

AA(:,POS)=Col; Temp1=sum(AA,2);

Temp2=find(Temp1>20); if length(Temp2)==0 farm{i}=AA; end end end

counter=counter+1 end

%第七步:绘收敛曲线图 figure(1); plot(LC1);

xlabel('迭代次数'); ylabel('子目标1的值'); title('子目标1的收敛曲线'); figure(2); plot(LC2);

xlabel('迭代次数'); ylabel('子目标2的值'); title('子目标2的收敛曲线'); figure(3); plot(LC3);

xlabel('迭代次数');

ylabel('适应度函数的平均值'); title('平均适应度函数的收敛曲线'); figure(4); plot(LC4);

xlabel('迭代次数');

ylabel('适应度函数的最优值'); title('最优适应度函数的收敛曲线'); 贴出一幅运行得到的收敛曲线


非线性整数规划的遗传算法Matlab程序(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:微观经济学期中考试试题(B卷)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: