资源简介
旅行商问题(Traveling Saleman Problem,TSP)是车辆路径调度问题(VRP)的特例,由于数学家已证明TSP问题是NP难题,因此,VRP也属于NP难题。旅行商问题(TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。
代码片段和文件信息
function [R_bestL_bestL_aveShortest_RouteShortest_Length]=ACATSP(CNC_maxmAlphaBetaRhoQ)
%%第一步:变量初始化
n=size(C1);%n表示问题的规模(城市个数)
D=zeros(nn);%D表示完全图的赋权邻接矩阵
for i=1:n
for j=1:n
if i~=j
D(ij)=((C(i1)-C(j1))^2+(C(i2)-C(j2))^2)^0.5;
else
D(ij)=eps;
end
D(ji)=D(ij);
end
end
Eta=1./D;%Eta为启发因子,这里设为距离的倒数
Tau=ones(nn);%Tau为信息素矩阵
Tabu=zeros(mn);%存储并记录路径的生成
NC=1;%迭代计数器
R_best=zeros(NC_maxn);%各代最佳路线
L_best=inf.*ones(NC_max1);%各代最佳路线的长度
L_ave=zeros(NC_max1);%各代路线的平均长度
while NC<=NC_max%停止条件之一:达到最大迭代次数
%%第二步:将m只蚂蚁放到n个城市上
Randpos=[];
for i=1:(ceil(m/n))
Randpos=[Randposrandperm(n)];
end
Tabu(:1)=(Randpos(11:m))‘;
%%第三步:m只蚂蚁按概率函数选择下一座城市,完成各自的周游
for j=2:n
for i=1:m
visited=Tabu(i1:(j-1));%已访问的城市
J=zeros(1(n-j+1));%待访问的城市
P=J;%待访问城市的选择概率分布
Jc=1;
for k=1:n
if length(find(visited==k))==0
J(Jc)=k;
Jc=Jc+1;
end
end
%下面计算待选城市的概率分布
for k=1:length(J)
P(k)=(Tau(visited(end)J(k))^Alpha)*(Eta(visited(end)J(k))^Beta);
end
P=P/(sum(P));
%按概率原则选取下一个城市
Pcum=cumsum(P);
Select=find(Pcum>=rand);
to_visit=J(Select(1));
Tabu(ij)=to_visit;
end
end
if NC>=2
- 上一篇:TSP多种群蚁群算法
- 下一篇:材料力学中的挠曲线绘图MATLAB程序
相关资源
- 用蚁群算法求解TSP问题的matlab程序
- 蚁群算法论文+源代码
- 针对栅格路径规划的蚁群算法MATLAB
- 蚁群算法实现三维路径规划Matlab源码
- matlab蚁群算法.zip
- 论文研究-基于改进蚁群算法的车辆路
- 基于蚁群算法和神经网络匹配算法的
- matlab蚁群算法各种经典蚁群算法for
- 基于栅格地图的蚁群算法路径规划
- 基于蚁群算法和神经网络匹配算法的
- 基于蚁群算法和神经网络匹配算法的
- 多种蚁群算法在机器人路径规划中的
- 机器人避障航路规划蚁群算法MATLAB仿
- 蚁群算法进行二维路径规划.zip
- 蚁群算法MATLAB代码287131
- 蚁群算法路径规划避障MATLAB源程序
- 蚁群算法无人机路径规划
- 粒子群 模拟退火 蚁群算法MATLAB实现
- 基本蚁群聚类算法及其改进算法带M
- 基于蚁群算法和神经网络匹配算法的
- 运用matlab编程实现蚁群算法的低压电
- 蚁群算法算法的路径规划MATLAB实现
- 利用蚁群算法对PID参数自整定程序源
- 蚁群算法最短路径matlab程序
- 蚁群算法求最短路径1
- 蚁群算法最短路径万能matlab源代码
- MATLAB蚁群算法ACA最短路径-注释完整
- 路径规划蚁群算法
- 蚁群算法粗糙集matlab代码
- 基于Matlab解决TSP问题的蚁群算法
评论
共有 条评论