⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tsp_sa_t.m

📁 用MATLAB开发的旅行商问题
💻 M
字号:
%*************************************************************************%
%                                TSP_SA_T                                 %
%                  该子函数实现在同一温度下,循环迭代                      %
%                  TrialNum次,最后返回迭代的解和目标                      %
%                  函数值                                                 %
%*************************************************************************%

function[Path,minPath,Energy,minE]=TSP_SA_T(Path,minPath,Energy,minE,T,Distance,TrialNum);

CityNum=length(Path); 
for K=1:TrialNum
    % 产生新路径(新解)
    NewPath=Path;
    Index=ceil(rand(2,1)*CityNum);           % 利用均匀分布随机产生两个城市
    temp=NewPath(Index');    
    NewPath(Index(1,1))=temp(1,2);           % 交换随机产生的两个城市
    NewPath(Index(2,1))=temp(1,1);
    NewEnergy=TSP_SA_F(NewPath,Distance);       % 计算新路径的函数值
    if rand<1/(1+exp((NewEnergy-Energy)/T))||NewEnergy<Energy    % 接受准则
        Energy=NewEnergy;                                 
        Path=NewPath;                                % 若条件成立,接受新解
        if minE>Energy
            minE=Energy;                             % 更新最小值
            minPath=NewPath;                         % 更新最小路径
        end
    end
end
        
    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -