双层规划模型的遗传算法求解的Matlab源码文档格式.docx

上传人:b****9 文档编号:13007272 上传时间:2022-10-02 格式:DOCX 页数:6 大小:9.62KB
下载 相关 举报
双层规划模型的遗传算法求解的Matlab源码文档格式.docx_第1页
第1页 / 共6页
双层规划模型的遗传算法求解的Matlab源码文档格式.docx_第2页
第2页 / 共6页
双层规划模型的遗传算法求解的Matlab源码文档格式.docx_第3页
第3页 / 共6页
双层规划模型的遗传算法求解的Matlab源码文档格式.docx_第4页
第4页 / 共6页
双层规划模型的遗传算法求解的Matlab源码文档格式.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

双层规划模型的遗传算法求解的Matlab源码文档格式.docx

《双层规划模型的遗传算法求解的Matlab源码文档格式.docx》由会员分享,可在线阅读,更多相关《双层规划模型的遗传算法求解的Matlab源码文档格式.docx(6页珍藏版)》请在冰豆网上搜索。

双层规划模型的遗传算法求解的Matlab源码文档格式.docx

%xbest 下层模型的最优决策变量

%BESTX K×

1细胞结构,每一个元素是M×

1向量,记录每一代的最优个体

%BESTY K×

1矩阵,记录每一代的最优个体的评价函数值

%ALLX K×

N矩阵,记录全部个体

%ALLY K×

N矩阵,记录全部个体的评价函数值

%%第一步:

种群初始化,确保满足约束的初始化

n=length(C0);

%决策变量的个数

%种群初始化,每一行是一个样本

farm=zeros(NU,n);

fori=1:

NU

Ta=randperm(n);

Tb=unidrnd(n-1)+1;

farm(i,sort(Ta(p>

GT=farm(i,:

);

GT=JZU(GT,V,Q);

farm(i,:

)=GT;

end

%输出变量初始化

ALLX=cell(KU,1);

%细胞结构,每一个元素是N×

n矩阵,记录每一代的个体

ALLY=zeros(KU,NU);

%K×

N矩阵,记录每一代评价函数值

BESTX=cell(KU,1);

%细胞结构,每一个元素是1×

n向量,记录每一代的最优个体

BESTY=zeros(KU,1);

k=1;

%迭代计数器初始化

%%第二步:

迭代过程

whilek<

=KU

%%以下是交叉过程

newfarm=zeros(2*NU,n);

Ser=randperm(NU);

%两两随机配对的配对表AA=farm(Ser

(1),:

BB=farm(Ser

(2),:

P0=unidrnd(n-1);

aa=[AA(p>

产生子代a

bb=[BB(p>

产生子代bifsum(aa)<

2

Tb=unidrnd(n-1)+1;

aa=zeros(1,n);

aa(1,sort(Ta(p>

end

ifsum(bb)<

2Ta=randperm(n);

bb=zeros(1,n);

bb(1,sort(Ta(p>

endaa=JZU(aa,V,Q);

bb=JZU(bb,V,Q);

newfarm(2*NU-1,:

)=aa;

%加入子代种群newfarm(2*NU,:

)=bb;

fori=1:

(NU-1)AA=farm(Ser(i),:

BB=farm(Ser(i+1),:

P0=unidrnd(n-1);

aa=[AA(p>

ifsum(aa)<

aa=zeros(1,n);

bb(1,sort(Ta(p>

endaa=JZU(aa,V,Q);

newfarm(2*i-1,:

newfarm(2*i,:

endFARM=[farm;

newfarm];

%%选择复制SER=randperm(3*NU);

FITNESS=zeros(1,3*NU);

fitness=zeros(1,NU);

(3*NU)

u=FARM(i,:

[xbest,BESTXx,BESTYy,ALLXx,ALLYy]=GAD(u,KD,ND,PmD,V,Q,R,m,t,p0,CF);

%调用

下层遗传

算法得到x

x=xbest;

FITNESS(i)=OBJU(x,u,Alpha,Beta,C0,Q0,h,a,b,d,Q,Cr,m,t);

NUf1=FITNESS(SER(3*i-2));

f2=FITNESS(SER(3*i-1));

f3=FITNESS(SER(3*i));

iff1<

=f2&

&

f1<

=f3farm(i,:

)=FARM(SER(3*i-2),:

fitness(i)=FITNESS(SER(3*i-2));

elseiff2<

=f1&

f2<

=f3

)=FARM(SER(3*i-1),:

fitness(i)=FITNESS(SER(3*i-1));

else

)=FARM(SER(3*i),:

fitness(i)=FITNESS(SER(3*i));

%%记录最佳个体和收敛曲线

X=farm;

Y=fitness;

ALLX{k}=X;

ALLY(k,:

)=Y;

minY=min(Y);

pos=find(Y==minY);

BESTX{k}=X(pos

(1),:

BESTY(k)=minY;

%%变异

ifPmU>

rand&

pos

(1)~=iTa=randperm(n);

BB=zeros(1,n);

BB(1,sort(Ta(p>

BB=JZU(BB,V,Q);

)=BB;

enddisp(k);

k=k+1;

%%绘图BESTY2=BESTY;

BESTX2=BESTX;

fork=1:

KUTempY=BESTY(p>

minTempY=min(TempY);

posY=find(TempY==minTempY);

BESTY2(k)=minTempY;

BESTX2{k}=BESTX{posY

(1)};

endBESTY=BESTY2;

BESTX=BESTX2;

plot(BESTY,'

-ko'

'

MarkerEdgeColor'

k'

MarkerFaceColor'

MarkerSize'

2)ylabel('

函数值'

xlabel('

迭代次数'

gridon

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1