模拟退火算法求解TSP问题Matlab源码_第1页
模拟退火算法求解TSP问题Matlab源码_第2页
模拟退火算法求解TSP问题Matlab源码_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上function f,T=TSPSA(d,t0,tf)%TSP问题(货郎担问题,旅行商问题)的模拟退火算法通用malab源程序% f目标最优值,T最优路线,d距离矩阵,t0初始温度,tf结束温度m,n=size(d);L=100*n;t=t0;pi0=1:n;min_f=0;for k=1:n-1min_f=min_f+d(pi0(k),pi0(k+1);endmin_f=min_f+d(pi0(n),pi0(1);p_min=pi0;while t>tffor k=1:L;kk=rand;d_f,pi_1=exchange_2(pi0,d);r_r=rand;

2、 if d_f<0pi0=pi_1;elseif exp(d_f/t)>r_rpi0=pi_1;elsepi0=pi0;endendf_temp=0;for k=1:n-1f_temp=f_temp+d(pi0(k),pi0(k+1);endf_temp=f_temp+d(pi0(n),pi0(1);if min_f>f_tempmin_f=f_temp;p_min=pi0;endt=0.87*t;endf=min_f;T=p_min;%aiwa要调用的子程序,用于产生新解function d_f,pi_r=exchange_2(pi0,d)m,n=size(d);clear

3、 m;u=rand;u=u*(n-2);u=round(u);if u<2u=2;endif u>n-2u=n-2;endv=rand;v=v*(n-u+1);v=round(v);if v<1v=1;endv=u+v;if v>nv=n;endpi_1(u)=pi0(v);pi_1(v)=pi0(u);if u>1for k=1:u-1pi_1(k)=pi0(k);endendif v>(u+1)for k=1:v-u-1pi_1(u+k)=pi0(v-k);endendif v<nfor k=(v+1):npi_1(k)=pi0(k);endend

4、d_f=0;if v<nd_f=d(pi0(u-1),pi0(v)+d(pi0(u),pi0(v+1);for k=(u+1):nd_f=d_f+d(pi0(k),pi0(k-1);endd_f=d_f-d(pi0(u-1),pi0(u)-d(pi0(v),pi0(v+1);for k=(u+1):nd_f=d_f-d(pi0(k-1),pi0(k);endelsed_f=d(pi0(u-1),pi0(v)+d(pi0(u),pi0(1)-d(pi0(u-1),pi0(u)-d(pi0(v),pi0(1);for k=(u+1):nd_f=d_f+d(pi0(k),pi0(k-1);end

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论