MAT之SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题

简介: MAT之SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题

输出结果

image.png


实现代码


%SA:利用SA算法解决TSP(数据是14个虚拟城市的横纵坐标)问题——Jason niu

X = [16.4700   96.1000

    16.4700   94.4400

    20.0900   92.5400

    22.3900   93.3700

    25.2300   97.2400

    22.0000   96.0500

    20.4700   97.0200

    17.2000   96.2900

    16.3000   97.3800

    14.0500   98.1200

    16.5300   97.3800

    21.5200   95.5900

    19.4100   97.1300

    20.0900   92.5500];

D = Distance(X);  

N = size(D,1);    

T0 = 1e10;    

Tend = 1e-30;

L = 2;        

q = 0.9;      

Time = ceil(double(solve([num2str(T0) '*(0.9)^x = ',num2str(Tend)])));  

count = 0;            

Obj = zeros(Time,1);  

track = zeros(Time,N);

S1 = randperm(N);  

DrawPath(S1,X)    

title('利用自定义函数绘制TSP问题的初始路径(随机产生)—Jason niu')

disp('初始种群中的一个随机值:')

OutputPath(S1);    

Rlength = PathLength(D,S1);

disp(['总距离:',num2str(Rlength)]);

while T0 > Tend    

   count = count + 1;    

   temp = zeros(L,N+1);

   S2 = NewAnswer(S1);  

   [S1,R] = Metropolis(S1,S2,D,T0);

   if count == 1 || R < Obj(count-1)

       Obj(count) = R;          

   else

       Obj(count) = Obj(count-1);

   end

   track(count,:) = S1;

   T0 = q * T0;        

end

figure

plot(1:count,Obj)

xlabel('迭代次数')

ylabel('距离')

title('SA:显示SA算法对TSP问题的优化过程(适应度函数)—Jason niu')

DrawPath(track(end,:),X)

title('SA:利用SA对TSP问题优化,绘制出利用SA算法优化后的最优路径图—Jason niu')

%% IX. 输出最优解的路线和总距离

disp('最优解:')

S = track(end,:);

p = OutputPath(S);

disp(['总距离:',num2str(PathLength(D,S))]);


相关文章
|
1月前
|
JavaScript 前端开发 算法
MVVM模型,虚拟DOM和diff算法
1.MVVM是前端开发领域当中非常流行的开发思想。(一种架构模式)目前前端的大部分主流框架都实现了这个MVVM思想,例如Vue,React等2.虽然Vue没有完全遵循MVVM模型,但是Vue的设计也受到了它的启发。Vue框架基本上也是符合MVVM思想的 3.MVVM模型当中尝到了Model和View进行了分离,为什么要分离?
C4.
|
1月前
|
算法 程序员 C语言
C语言的选择结构与数据算法
C语言的选择结构与数据算法
C4.
18 0
|
2月前
|
机器学习/深度学习 数据采集 搜索推荐
Paper Digest | 突破个性化推荐数据稀疏性:长尾增强的图对比学习算法研究
本文提出了一种新的长尾增强的图对比学习方法(LAGCL),该方法促使模型同时兼顾头部节点与尾部节点之间的知识,并通过长尾增强技术来使模型产出更均匀更准确的节点表征,从而改进基于 GNN 的推荐任务。
|
3月前
|
存储 算法 Python
Python 集合探索:解密高效数据操作和快速算法的奇妙世界
Python 集合探索:解密高效数据操作和快速算法的奇妙世界
|
2月前
|
编解码 算法 定位技术
GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)
GEE时序——利用sentinel-2(哨兵-2)数据进行地表物候学分析(时间序列平滑法估算和非平滑算法代码)
77 3
|
1天前
|
移动开发 算法 数据可视化
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
数据分享|Spss Modeler关联规则Apriori模型、Carma算法分析超市顾客购买商品数据挖掘实例
|
1天前
|
机器学习/深度学习 自然语言处理 算法
【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享(下)
【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享
|
1天前
|
机器学习/深度学习 算法 大数据
【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享(上)
【视频】K近邻KNN算法原理与R语言结合新冠疫情对股票价格预测|数据分享
|
3天前
|
算法 数据可视化 大数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
33 13
|
9天前
|
算法 数据可视化 Python
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
Python中LARS和Lasso回归之最小角算法Lars分析波士顿住房数据实例
14 0