蚁群算法matlab程序代码

编程实验

72人已加入

描述

先新建一个主程序M文件ACATSP.m

代码如下:

function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q)

%%=========================================================================

%% 主要符号说明

%% C n个城市的坐标,n×2的矩阵

%% NC_max 蚁群算法MATLAB程序最大迭代次数

%% m 蚂蚁个数%% Alpha 表征信息素重要程度的参数

%% Beta 表征启发式因子重要程度的参数%% Rho 信息素蒸发系数

%% Q 表示蚁群算法MATLAB程序信息素增加强度系数

%% R_best 各代最佳路线

%% L_best 各代最佳路线的长度

%% 蚁群算法MATLAB程序第一步:变量初始化

n=size(C,1);%n表示问题的规模(城市个数)

D=zeros(n,n);%D表示完全图的赋权邻接矩阵

for i=1:n

for j=1:n

if i~=jD(i,j)=((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5;

else

D(i,j)=eps;

% i = j 时不计算,应该为0,但后面的启发因子要取倒数,用eps(浮点相对精度)表示

 matlab

%% 蚁群算法MATLAB程序第二步:将m只蚂蚁放到n个城市上

 matlab

%% 蚁群算法MATLAB程序第三步:m只蚂蚁按概率函数选择下一座城市,完成各自的周游

 matlab
matlab

%% 下面计算蚁群算法MATLAB程序待选城市的概率分布

 matlab

%% 蚁群算法MATLAB程序第四步:记录本次迭代最佳路线

 matlab

matlab

%% 蚁群算法MATLAB程序第五步:更新信息素

 matlab

%% 蚁群算法MATLAB程序第七步:输出结果

 matlab

matlab

建立一个子程序DrawRoute.m

代码如下

 matlab

需要输入的参数数据有: C: n个城市的坐标,n×2的矩阵NC_max: 蚁群算法MATLAB程序最大迭代次数M: 蚂蚁个数Alpha: 表征信息素重要程度的参数Beta:表征启发式因子重要程度的参数

Rho: 信息素蒸发系数Q:表示蚁群算法MATLAB程序信息素增加强度系数运行时打开ACATSP.m 点击运行或输入ACATSP(C,NC_max,m,Alpha,Beta,Rho,Q)

一个运行实例:

m=31;Alpha=1;Beta=5;Rho=0.1;NC_max=200;Q=100;

 matlab
            matlab
           matlab

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分