⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mypath2.m

📁 遗传算法MATLAB源代码
💻 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 + -