资源简介
该代用于实现旅行商问题,实现最优路径的规划,且总里程能达到最小,我们采用模拟退火算法实现
代码片段和文件信息
%模拟退火算法之旅行商算法
%ij.txt存放的是各点经纬度
clc;clear
load ij.txt;%加载目标数据ij.txt存放25x8矩阵
x=ij(:1:2:8);%x为25x4矩阵
x=x(:);%x化为100x1矩阵
y=ij(:2:2:8);%y为25x4矩阵
y=y(:);%y化为100x1矩阵
sj=[x y];%100x2矩阵
d1=[7040];%起始点
sj=[d1;sj;d1];%首尾添加上出发点和终点
sj=sj*pi/180;%角度化为弧度
%计算距离
d=zeros(102);%先建一个102x102的空的距离矩阵,再把对应距离填进去
%A(R cos x1 cos y1 R sin x1 cos y1 R sin y1 )
%B(R cos x2 cos y2 R sin x2 cos y2 R sin y2 )
%其中 R = 6370 为地球半径。
%A B 两点的实际距离:
%d = R arccos[cos(x1 ? x2 ) cos y1 cos y2 + sin y1 sin y2 ]
for i=1:102
for j=i+1:102
d(ij)=6370*acos(cos(sj(i1)-sj(j1))*cos(sj(i2))*cos(sj(j2))...
+sin(sj(i2))*sin(sj(j2)));
end
end
%上述的d为上三角矩阵,根据对称性,化为对称矩阵d矩阵包含各点间的距离信息
d=d+d‘;
di
评论
共有 条评论