资源简介

用模拟退火的方法解TSP问题,思路明晰,有注释。

资源截图

代码片段和文件信息

%用模拟退火的方法解TSP问题 total search paht
%开始是随机产生的10个坐标点,保存成了address数据.
%address(:1)=rand(101)*100;
%address(:2)=rand(101)*100;
function aneal_test
order1=randperm(10)‘;
load address;
%plot(address(order11)address(order12)‘*r-‘)

T_max=1000;%input(‘please input the start temprature‘)%最大的温度
T_min=1;%;input(‘please input the end temprature‘)%最小的温度
iter_max=3000;%input(‘please input the most interp steps on the fit temp‘)%一个温度最多迭代次数
s_max=30;%input(‘please input the most steady steps ont the fit temp‘)%如果新解比上一个解差,最多尝试几次放弃新解
T=T_max;
totaldis1=distance(addressorder1);
zhe=[];
while T>=T_min  %温度控制
    iter_num=1;
    s_num=1;
      %plot(Ttotaldis1)
      TT=[Ttotaldis1];
      zhe=[zhe;TT];
    hold on
    while (iter_num        order2=exhgpath(order1);
        totaldis2=distance(addressorder2);
        R=rand;
        DeltaDis=totaldis2-totaldis1;
        if DeltaDis<0;%若新解好
             order1=order2;
             totaldis1=totaldis2;
 

评论

共有 条评论