資源簡介
該代用于實現旅行商問題,實現最優路徑的規劃,且總里程能達到最小,我們采用模擬退火算法實現
代碼片段和文件信息
%模擬退火算法之旅行商算法?
%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
評論
共有 條評論