资源简介
解决TSP问题的蚁群算法MATLAB代码,自己编写,实测好用!
代码片段和文件信息
function [ shortest_Routeshortest_Length ] = AntColony( citys )
n=size(citys1);
D=zeros(nn);
for i=1:n
for j=1:n
if i~=j
D(ij)=sqrt(sum((citys(i:)-citys(j:)).^2));
else
D(ij)=1e-4;
end
end
end
m=35;
alpha=1;
beta=5;
rho=0.1;
Q=1;
Eta=1./D;
Tau=ones(nn);
Table=zeros(mn);
iter=1;iter_max=200;
Route_best=zeros(iter_maxn);
Length_best=zeros(iter_max1);
Leangth_ave=zeros(iter_max1);
while iter<=iter_max
start=zeros(m1);
for i=1:m
temp=randperm(n);
start(i)=temp(1);
end
Table(:1)=start;
citys_index=1:n;
for i=1:m
for j=2:n
tabu=Table(i1:(j-1));
allow_index=~ismember(citys_indextabu);
allow=citys_index(allow_index);
P=allow;
%计算城市间转移概率
for k =1:length(allow)
P(k)=Tau(tabu(end)allow(k))^alpha * Eta(tabu(end)allow(k))^beta;
end
P=P/sum(P);
%运用轮盘赌法选择下一个访问城市
Pc=cumsum(P);
target_index=find(Pc>=rand);
target=allow(target_index(1));
Table(ij)=target;
end
end
%计算各个蚂蚁的路径距离
Length=zeros(m1);
for i = 1:m
Route=Table(i:);
for j =1:(n-1)
Length(i)=Length(i)+D(Route(j)Route(j+1));
end
Length(i)=Length(i)+D(Route(n)Route(1));
end
- 上一篇:TOPSIS的MATLAB算法实现
- 下一篇:四阶变步长龙格库塔 齿轮系统动力学
相关资源
- 2018年数学建模国赛A题matlab代码及注释
- 2017年数学建模国赛B题matlab代码及注释
- 2016年全国数学建模A题matlab代码.rar
- 一段求解基尼系数的matlab代码
- NSGAII在ZDT和DTLZ测试函数的matlab代码
- UR5机器人正逆运动学matlab代码
- LPMS Matlab代码
- 降雨雷达的时空匹配matlab代码
- DTW动态时间规整matlab代码
- 蚁群算法路径规划避障MATLAB源程序
- 最小二乘法曲线拟合matlab代码
- 曲波变换重构
- 烟花算法进行函数优化通用matlab代码
- 超效率dea,BCCCCR三个模型matlab代码
- SOM-TSP[Matlab].rar
- 样本熵的matlab代码
- 一维二维扩散模型Matlab代码
- 蚁群算法无人机路径规划
- 粒子群 模拟退火 蚁群算法MATLAB实现
- 多线性规划MatLab代码与数据全
- 单层感知器Matlab代码-或运算
- 曲面拟合MATLAB代码
- pointgrey相机初始化MATLAB代码
- 使用不同去隔行方法进行隔行变逐行
- 基于线性Bregman迭代的矩阵补全MATLAB代
- 基本蚁群聚类算法及其改进算法带M
- 基于蚁群算法和神经网络匹配算法的
- 图像预处理相关的matlab代码
- 改进的均值滤波matlab代码
- TVP-VAR模型的MATLAB代码
评论
共有 条评论