MATLAB求解TSP最短路径问题
问题背景
随着社会的不断进步,最短路径算法在人们的日常生活显得越来越重要。每天开车去上班,应该选择哪条公路才能使自己到公司的费用最低,时间最少,这是最短路径的问题;在网络路由中,怎样选择最优的路由路径,这也是最短路径问题;在交通旅游、高校规划以及电网架设中怎样使其耗费的资金最少,这还是最短路径问题.由此可见对最短路径问题的研究是非常有意义的。
问题重述
根据以上背景,需要解决以下问题:兰州交通大学的鸽子,如何实现从兰州交通大学出发,遍访甘肃省各高校一次,并回到起点,同时使其路径最短。
实现步骤
- 1.找出甘肃省各高校名称;
- 2.找出甘肃省各高校的经纬度,并转化成距离。实际情况中,一些高校的经纬度可能不准确,如何处理也是需要考虑的问题,如何爬取高校经纬度连接:爬取甘肃省高校经纬度
- 3.研究寻访路线算法,使其路径最短,并评价该方案的实施效果。
Matlab 代码
clc;
clear all;
tic
sj0= csvread('D:\Java学习\pythonspace\AIFinish\备份原始数据\甘肃省高校经纬度 - 副本.csv', 1, 0)
%sj0 = load('D:\Java学习\pythonspace\AIFinish\兰州市高校经纬度.csv');
x = sj0(:,2);
y = sj0(:,3);
sj1 = [x,y];
d1 = [103.745276,36.0997]; %标记起点 兰州交通大学
sj = [d1;sj1;d1];
d = zeros(43);%距离矩阵d初始化(国际地球精度计算方法)
dx = zeros(43);%距离矩阵dx初始化(地球以球形计算方法)
for i = 1:42 %生成矩阵d初始化
for j = i+1:43
d(i,j) = 111.199*sqrt((sj