基于matlab的蚁群算法理解

%TSP 的蚁群算法
%%z是2*n的矩阵即为城市的坐标的点
function Itsp=AOC(z)

%保留每次迭代的最优解
% 以max(t^a*b^(-b))为依据找最优路径,与保留的最优路径比较

x=z(:,1);
y=z(:,2);
n=30 ;%城市数目
c=100;
q=10^(+6);
NC=100;
r=0.9;%表示轨迹持久性
a=1.5;%表示轨迹相对重要性
b=2;%能见度相对重要行
m=50;%表示蚂蚁数量
for i=1:n
    for j=1:n
        dij(i,j)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2);%计算i到j城市的距离
    end
end
for i=1:n
    dij(i,i)=0.01;%另本身城市到本身城市的距离是一个很小的值。
end
min10=10^5;
t=ones(n)*c;%产生n*n全c的矩阵;
for nc=1:NC
    tabu=ones(m,n);%禁忌表,一行表示一蚂蚁,一列表示一个城市
    tabu(:,1)=0; %把第一列赋值为0;一第一行为例说明就是,第一个蚂蚁目前所在的
                 %位置是tabu(0,0)它的下一个城市就不能是当前城市
    path=ones(m,n);%path 记录了每一个蚂蚁没走一步的城市位置。
    for k=1:m
        for step=1:n-1
            %信息素的更新过程。
            ta=t.^a;
            tb=dij.^(-b);
            td=ta.*tb;

你可能感兴趣的:(基于matlab的蚁群算法理解)