📄 mypath2.m
字号:
%定义遗传算法参数
%xo=zeros(1000,1000) ;
%yo=zeros(1000,1000) ;
%eval=zeros(1000,1000) ;
m=10;
nind=40;%%%%%%%%40
%%%%%%%%%%%%%%%%nind=40;
maxgen=400;%最大遗传代数
ggap=0.9;%代沟
trace=zeros(maxgen,2);%遗传算法性能跟踪初始值
basev=crtbase(m,m);%初始种群
chrom=crtbp(nind,basev);
chrom=chrom+ones(nind,m);
gen=0;
objv=testtargetlloc(nind,chrom);%计算初始种群值
while gen<maxgen;
fitnv=ranking(objv);%分配适应度值
selch=select('sus',chrom,fitnv,ggap);%选择
selch=recombin('xovsp',selch,0.7);%交叉重组
f=rep([1;m],[1,m]);
selch=mutbga(selch,f);%变异
selch=fix(selch);%取整
objvsel=testtargetlloc(nind*0.9,selch);%计算子代目标函数值
[chrom objv]=reins(chrom,selch,1,1,objv,objvsel);%重新插入
gen=gen+1;
trace(gen,1)=min(objv);
trace(gen,2)=sum(objv)/length(objv);
end;
[Y,R]=min(objv);
%%%%%%%%%%%%%chrom(R,:),Y;
r=[1 1];%最后画图函数
g=[30 20];
n=m;
l=sqrt((g(1)-r(1))^2+(g(2)-r(2))^2);
dm=l/m;
dn=l/2/n;
w=R;
% ss(1)=1;
% ss(2)=1;
for i=1:m %%%%%%%%% for i=1:m
A=r(2)*(g(2)+r(2))+r(1)*(g(1)-r(1))+dm*i*l;
B=r(1)*(g(2)-r(2))-r(2)*(r(1)-g(1))+dn*l*chrom(w,i)-(l^2)/4;
if i==10
xo(i,chrom(w,i))=30;
yo(i,chrom(w,i))=20;
else
xo(i,chrom(w,i))=(A*(g(1)-r(1))-B*(r(2)-g(2)))/(l^2);
yo(i,chrom(w,i))=(B*(r(1)-g(1))-A*(r(2)-g(2)))/(l^2);
end;
plot(xo(i,chrom(w,i)),yo(i,chrom(w,i)),'o');%%%%%%%%%%% 'dg'
% %%
% %%%连线函数
% if i==10
% dd(1)=30;
% dd(2)=20;
% else
% dd(1)=xo(i,chrom(w,i));
% dd(2)=yo(i,chrom(w,i));
% end
% plot([ss(1) dd(1)],[ss(2) dd(2)]);
% hold on;
% ss(1)=dd(1);
% ss(2)=dd(2);
% %%%%%%
% %%
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -