蚁群算法的应用实例及matlab代码,蚁群算法MATLAB程序实例整理

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值