%蚁群算法求解TSP问题的matlab程序
h
clear all
close all
clc
%初始化蚁群
m=31;%蚁群中蚂蚁的数量,当m接近或等于城市个数n时,本算法可以在最少的
迭代次数内找到最优解
C=[1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326
1556;3238 1229;4196 1004;
4312 790;4386 570;3007 1970;2562 1756;2788 1491;2381
1676;1332 695;3715 1678;
3918 2179;4061 2370;3780 2212;3676 2578;4029 2838;4263
2931;3429 1908;3507 2367;
3394 2643;3439 3201;2935 3240;3140 3550;2545 2357;2778
2826;2370 2975];%城市的坐标矩阵
Nc_max=200;%最大循环次数,即算法迭代的次数,亦即蚂蚁出动的拨数(每
拨蚂蚁的数量当然都是m)
alpha=1;%蚂蚁在运动过程中所积累信息(即信息素)在蚂蚁选择路径时的相
对重要程度,alpha过大时,算法迭代到一定代数后将出现停滞现象
beta=5;%启发式因子在蚂蚁选择路径时的相对重要程度
rho=0.5;%0<rho<1,表示路径上信息素的衰减系数(亦称挥发系数、蒸发系
数),1-rho表示信息素的持久性系数
Q=100;%蚂蚁释放的信息素量,对本算法的性能影响不大
%变量初始化
n=size(C,1);%表示TSP问题的规模,亦即城市的数量
D=ones(n,n);%表示城市完全地图的赋权邻接矩阵,记录城市之间的距离
for i=1:n
for j=1:n
if i<j