



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、TSP问题遗传算法通用Matlab程序(附图)(2007-03-10 09:56:14) 程序一:主程序%TSP问题(又名:旅行商问题,货郎担问题)遗传算法通用matlab程序%D是距离矩阵,n为种群个数%参数a是中国31个城市的坐标%C为停止代数,遗传到第 C代时程序停止,C的具体取值视问题的规模和耗费的时间而定%m为适应值归一化淘汰加速指数,最好取为1,2,3,4,不宜太大%alpha为淘汰保护指数,可取为01之间任意小数,取1时关闭保护功能,建议取0.81.0之间的值%R为最短路径,Rlength为路径长度function R,Rlength=geneticTSP(D,a,n
2、,C,m,alpha)N,NN=size(D);farm=zeros(n,N);%用于存储种群for i=1:n farm(i,:)=randperm(N);%随机生成初始种群endR=farm(1,:);subplot(1,3,1)scatter(a(:,1),a(:,2),'x')pause(1)subplot(1,3,2)plotaiwa(a,R)pause(1)farm(1,:)=R;len=zeros(n,1);%存储路径长度fitness=zeros(n,1);%存储归一化适应值counter=0;while counter
3、60; for i=1:n len(i,1)=myLength(D,farm(i,:);%计算路径长度 end maxlen=max(len); minlen=min(len); fitness=fit(len,m,maxlen,minlen);%计算归一化适应值 rr=find(len=minlen);
4、60; R=farm(rr(1,1),:);%更新最短路径 FARM=farm;%优胜劣汰,nn记录了复制的个数 nn=0; for i=1:n if fitness(i,1)>=alpha*rand nn=n
5、n+1; FARM(nn,:)=farm(i,:); end end FARM=FARM(1:nn,:); aa,bb=size(FARM);%交叉和变异 while aa
6、0; if nn<=2 nnper=randperm(2); else nnper=randperm(nn); e
7、nd A=FARM(nnper(1),:); B=FARM(nnper(2),:); A,B=intercross(A,B); FARM=FARM;A;B; aa,bb=size(
8、FARM); end if aa>n FARM=FARM(1:n,:);%保持种群规模为n end farm=FARM; clear FARM counter=counter+1 endRlength=myLength(D,
9、R);subplot(1,3,3)plotaiwa(a,R)程序二:计算邻接矩阵%输入参数a是中国31个城市的坐标%输出参数D是无向图的赋权邻接矩阵function D=ff01(a)c,d=size(a);D=zeros(c,c);for i=1:c for j=i:c bb=(a(i,1)-a(j,1).2+(a(i,2)-a(j,2).2; D(i,j)=bb(0.5);
10、160; D(j,i)=D(i,j); endend程序三:计算归一化适应值%计算归一化适应值的子程序function fitness=fit(len,m,maxlen,minlen)fitness=len;for i=1:length(len) fitness(i,1)=(1-(len(i,1)-minlen)/(maxlen-minlen+0.0001).m;end程序四:交叉和变异的子程序%交叉算法采用的是由Goldberg和Lingle于1985年提出的P
11、MX(部分匹配交叉)function a,b=intercross(a,b)L=length(a);if L<=10%确定交叉宽度 W=9;elseif (L/10)-floor(L/10)>=rand&&L>10 W=ceil(L/10)+8;else W=floor(L/10)+8;endp=unidrnd(L-W+1);%随机选择交叉范围,从p到p+Wfor i=1:W%交叉 x=find(a=b(1,p+i-1
12、); y=find(b=a(1,p+i-1); a(1,p+i-1),b(1,p+i-1)=exchange(a(1,p+i-1),b(1,p+i-1); a(1,x),b(1,y)=exchange(a(1,x),b(1,y); endfunction x,y=exchange(x,y)temp=x;x=y;y=temp;程序五: 计算路径的子程序%该路径长度是一个闭合的路径的长度function len=myLength(D,p)N,NN=size(D);len=D(p(1,N),p(1,1);for i=1:(N-1) len=len+D(p(1,i),p(1,i+1);end程序六:用于绘制路径示意图的程序function plotaiwa(a,R)scatter(a(:,1),a(:,2),'x')hold onplot(a(R(1),1),a(R(31),1),a(R(1),2),a(R(31),2)hold onfor i=2:length(R) x0=a(R(i-1),1);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025华夏银行社会招聘考前自测高频考点模拟试题附答案详解
- 2025江苏张家港市万通建设工程有限公司招聘2人考前自测高频考点模拟试题完整参考答案详解
- 2025年东营市垦利区融媒体中心公开招聘工作人员模拟试卷完整答案详解
- 2025年中国挤出复合底漆行业市场分析及投资价值评估前景预测报告
- 2025贵州警察学院第十三届贵州人才博览会引才4人考前自测高频考点模拟试题及参考答案详解1套
- 2025年中国环氧修复墨盒行业市场分析及投资价值评估前景预测报告
- 2025河北邯郸市丛台区选聘农村党务(村务)工作者42人考前自测高频考点模拟试题及一套参考答案详解
- 2025年甘肃省陇南市人才引进392人高校宣介活动(第一批)考前自测高频考点模拟试题及答案详解(全优)
- 2025湖南湘潭市雨湖区招聘教师80人模拟试卷附答案详解
- 2025年河北唐山市消防救援支队政府专职消防队员招聘113人考前自测高频考点模拟试题及答案详解(新)
- 人教部编版八年级语文上册教案(全册)
- 2025年砌墙砖试题及答案
- 泵闸维修方案(3篇)
- wellsenn AI眼镜拆解及BOM成本报告:小米AI眼镜-电致变色
- 2025年麒麟证书考试题库
- 2025至2030科普教育基地行业发展趋势分析与未来投资战略咨询研究报告
- 2025年上半年事业单位联考《综合应用能力》A类考试测试题(含答案)
- 体验人工智能教学课件
- 代理商激励方案(3篇)
- 小学国防教学课课件
- 小区物业规划方案(3篇)
评论
0/150
提交评论