第一范文网 - 专业文章范例文档资料分享平台

遗传算法求解TSP问题实验报告

来源:用户分享 时间:2025/8/9 11:40:55 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

s=smnew; %产生了新的种群

[f,p]=objf(s,dislist); %计算新种群的适应度 %记录当前代最好和平均的适应度 [fmax,nmax]=max(f); ymean(gn)=1000/mean(f); ymax(gn)=1000/fmax; %记录当前代的最佳个体 x=s(nmax,:);

drawTSP(Clist,x,ymax(gn),gn,0); gn=gn+1; %pause; end gn=gn-1; figure(2);

plot(ymax,'r'); hold on; plot(ymean,'b');grid; title('搜索过程'); legend('最优解','平均解'); end

%------------------------------------------------

%计算适应度函数 function [f,p]=objf(s,dislist);

inn=size(s,1); %读取种群大小 for i=1:inn

f(i)=CalDist(dislist,s(i,:)); end f=1000./f'; %计算选择概率 fsum=0; for i=1:inn

fsum=fsum+f(i)^15; end for i=1:inn

ps(i)=f(i)^15/fsum; end

%计算累积概率 p(1)=ps(1); for i=2:inn

p(i)=p(i-1)+ps(i); end p=p';

%计算函数值,即适应度 end

%-------------------------------------------------- function pcc=pro(pc);

test(1:100)=0; l=round(100*pc); test(1:l)=1;

n=round(rand*99)+1; pcc=test(n); end

%-------------------------------------------------- %“选择”操作 function seln=sel(s,p);

inn=size(p,1);

%从种群中选择两个个体 for i=1:2

r=rand; %产生一个随机数 prand=p-r; j=1;

while prand(j)<0 j=j+1; end

seln(i)=j; %选中个体的序号 end end

%------------------------------------------------ %“交叉”操作

function scro=cro(s,seln,pc);

bn=size(s,2);

pcc=pro(pc); %根据交叉概率决定是否进行交叉操作,1则是,0则否

scro(1,:)=s(seln(1),:); scro(2,:)=s(seln(2),:); if pcc==1

c1=round(rand*(bn-2))+1; %在[1,bn-1]范围内随机产生一个交叉位

c2=round(rand*(bn-2))+1; chb1=min(c1,c2); chb2=max(c1,c2);

搜索更多关于: 遗传算法求解TSP问题实验报告 的文档
遗传算法求解TSP问题实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8enf203j9j44s0w0dy29_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top