initial.m
来自「本文以著名的旅行商问题(TSP)为例说明如何利用MATLAB语言实现模拟退火算法」· M 代码 · 共 55 行
M
55 行
%初始化函数
city_n=30;
for i=1:30
solution(i)=i;
end
for i=1:60
pos_a=round(29*rand)+1; %随机变换城市序列
pos_b=round(29*rand)+1;
if pos_a~=pos_b
temp=solution(pos_a);
solution(pos_a)=solution(pos_b);
solution(pos_b)=temp;
end
end
%=========================================================
%计算创建最近邻表
for i=1:city_n
for j=1:city_n
x1=pos(i,1);
y1=pos(i,2);
x2=pos(j,1);
y2=pos(j,2);
dis_table(i,j)=sqrt((x1-x2)^2+(y1-y2)^2);
end
end
for i=1:city_n
dis_table(i,i)=inf;
end
for i=1:round(city_n/10) %创建最近邻表
for j=1:city_n
m=min(dis_table(j,:));
m_pos=min(find(m==dis_table(j,:)));
neighbor_table(j,i)=m_pos;
dis_table(j,m_pos)=inf;
end
end
clear i;
clear j;
clear m;
clear m_pos;
clear pos_a;
clear pos_b;
clear temp;
clear x1;
clear x2;
clear y1;
clear y2;
clear dis_table;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?