tsp 禁忌搜索 TSP禁忌搜索程序.doc

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
tsp 禁忌搜索 TSP禁忌搜索程序 导读:就爱阅读网友为您分享以下“TSP禁忌搜索程序”资讯,希望对您有所帮助,感谢您对92的支持! function TspTS clear; city31=[1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;3238 1229; 4196 1004;4312 790;4386 570;3007 1970;2562 1756;2788 1491;2381 1676;1332 695; 3715 1678;3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;4263 2931;3429 1908; 3507 2367;3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778 2826;2370 2975]; for i=1:31 for j=1:31 DL31(i,j)=((city31(i,1)-city31(j,1))+(city31(i,2)-city31(j,2))).5; end end dislist=DL31; Clist=city31; CityNum=size(dislist,2); Tlist=zeros(CityNum); %禁忌表(tabu list) cl=80; %保留前cl个最好候选解 bsf=Inf; tl=ceil(CityNum.5); %禁忌长度(tabu length) l1=160; %候选解(candidate),不大于n*(n-1)/2(全部领域解个数) S0=randperm(CityNum); S=S0; BSF=S0; Si=zeros(l1,CityNum); StopL=80*CityNum; p=1; clf; figure(1); stop = uicontrol(‘style’,’toggle’,’string’,’stop’, ‘background’,’white’); tic; while 2) m1=max(M(1),M(2));m2=min(M(1),M(2)); A(i,1)=m1;A(i,2)=m2; if i==1 isdel=0; else for j=1:i-1 if A(i,1)==A(j,1)A(i,2)==A(j,2) isdel=1;break; else isdel=0; end end end if ~isdel i=i+1; else i=i; end else i=i; end end CL=Inf*ones(cl,4); for i=1:l1 Si(i,:)=S; Si(i,[A(i,1),A(i,2)])=S([A(i,2),A(i,1)]); F(i)=F(dislist,Si(i,:)); if ilt;=cl CL(i,2)=F(i); CL(i,1)=i; CL(i,3)=S(A(i,1)); CL(i,4)=S(A(i,2)); else for j=1:cl if F(i)lt;CL(j,2) CL(j,2)=F(i); CL(j,1)=i; CL(j,3)=S(A(i,1)); CL(j,4)=S(A(i,2)); break; end end end end if CL(1,2)lt;bsf %藐视准则(aspiration criterion) bsf=CL(1,2); S=Si(CL(1,1),:); BSF=S; for m=1:CityNum for n=1:CityNum if Tlist(m,n)~=0 Tlist(m,n)=Tlist(m,n)-1; end end end Tlist(CL(1,3),CL(1,4))=tl; else for i=1:cl if Tlist(CL(i,3),CL(i,4))==0 S=Si(CL(i,1),:); for m=1:CityNum for n=1:CityNum if Tlist(m,n)~=0 Tlist(m,n)=Tlist(m,n)-1; end end end Tlist(CL(i,3),CL(i,4))=tl; break; end end end p=p+1; Arrbsf(p)=bsf; for i=1:CityNum-1 plot([Clist(BSF(i),1),Clist(BSF(i+1),1)],[Clist(BSF(

文档评论(0)

raojun00007 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档