function [y,val]=QACS
tic
MAXIT=300; % 最大循环次数
NC=11; % 城市个数
tao=ones(11,11)*1/44;% 初始时刻各边上的信息量为1/44
rho=0.2; % 挥发系数
alpha=1;
beta=2;
Q=100;
mant=11; % 蚂蚁数量
iter=0; % 记录迭代次数
/*for i=1:NC % 计算各城市间的距离
for j=1:NC
distance(i,j)=sqrt((att48(i,2)-att48(j,2))^2+(att48(i,3)-att48(j,3))^2);
end
end */
bestroute=zeros(1,44); % 用来记录最优路径
routelength=inf; % 用来记录当前找到的最优路径长度
% for i=1:mant % 确定各蚂蚁初始的位置
% end
for ite=1:MAXIT
for ka=1:mant %考查第K只蚂蚁
deltatao=zeros(48,48); % 第K只蚂蚁移动前各边上的信息增量为零
[routek,lengthk]=travel(distance,tao,alpha,beta);
if lengthkroutelength=lengthk;
bestroute=routek;
end
for i=1:NC-1 % 第K只蚂蚁在路径上释放的信息量
deltatao(routek(i),routek(i+1))=deltatao(routek(i),routek(i+1))+Q/lengthk ;
end
deltatao(routek(48),1)=deltatao(routek(48),1)+Q/lengthk;
end
for i=1:NC-1
for j=i+1:NC
if deltatao(i,j)==0
deltatao(i,j)=deltatao(j,i); y=bestroute;
end val=routelength;
end toc
end
tao=(1-rho).*tao+deltatao;
end