个城市

Pcum=cumsum(P); %cumsum,元素累加即求和

Select=find(Pcum>=rand);%若计算的概率大于原来的就选择这条路线

to_visit=J(Select(1));

Tabu(i,j)=to_visit;

end

end

if NC>=2

Tabu(1,:)=R_best(NC-1,:);

end

%%第四步:记录本次迭代最佳路线

L=zeros(m,1); %开始距离为0,m*1的列向量

for i=1:m

R=Tabu(i,:);

for j=1:(n-1)

L(i)=L(i)+D(R(j),R(j+1)); %原距离加上第j个城市到第j+1个城市的距离

end

L(i)=L(i)+D(R(1),R(n)); %一轮下来后走过的距离

end

L_best(NC)=min(L); %最佳距离取最小

pos=find(L==L_best(NC));

R_best(NC,:)=Tabu(pos(1),:); %此轮迭代后的最佳路线

L_ave(NC)=mean(L); %此轮迭代后的平均距离

NC=NC+1 %迭代继续

%%第五步:更新信息素

Delta_Tau=zeros(n,n); %开始时信息素为n*n的0矩阵

for i=1:m

for j=1:(n-1)

Delta_Tau(Tabu(i,j),Tabu(i,j+1))=Delta_Tau(Tabu(i,j),Tabu(i,j+1))+Q/L(i);

%此次循环在路径(i,j)上的信息素增量

end

Delta_Tau(Tabu(i,n),Tabu(i,1))=Delta_Tau(Tabu(i,n),Tabu(i,1))+Q/L(i);

%此次循环在整个路径上的信息素增量

end

Tau=(1-Rho).*Tau+Delta_Tau;%考虑信息素挥发,更新后的信息素

%%第六步:禁忌表清零

Tabu=zeros(m,n); %%直到最大迭代次数

end

%%第七步:输出结果

Pos=find(L_best==min(L_best));%找到最佳路径(非0为真)

Shortest_Route=R_best(Pos(1),:) %最大迭代次数后最佳路径

Shortest_Length=L_best(Pos(1))%最大迭代次数后最短距离

subplot(1,2,1) %绘制第一个子图形

DrawRoute(C,Shortest_Route) %画路线图的子函数

subplot(1,2,2) %绘制第二个子图形

plot(L_best)

hold on %保持图形

plot(L_ave,'r')

title('平均距离和最短距离') %标题

function DrawRoute(C,R)

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

%% DrawRoute.m

%%画路线图的子函数

%%-------------------------------------------------------------------------

%% C Coordinate节点坐标,由一个N×2的矩阵存储

%% R Route路线

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

N=length(R);

scatter(C(:,1),C(:,2));

hold on

plot([C(R(1),1),C(R(N),1)],[C(R(1),2),C(R(N),2)],'g')

hold on

for ii=2:N

plot([C(R(ii-1),1),C(R(ii),1)],[C(R(ii-1),2),C(R(ii),2)],'g')

hold on

end

title('旅行商问题优化结果')

发表于 @2009年01月04日 20:15:00|评论(2)|编辑|收藏

plot_route(pos_r); matlab,蚁群算法 matlab程序(已运行) - lyp2003ok的专栏 - CSDN博客相关推荐

  1. 关于精英蚁群算法matlab,蚁群算法MATLAB解VRP问题

    Excel  exp12_3_2.xls内容: ANT_VRP函数: function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ANT ...

  2. MATLAB蚁群算法、遗传算法、粒子群算法解决TSP问题(可以直接运行)

    MATLAB蚁群算法.遗传算法.粒子群算法解决TSP问题(可以直接运行) 1. 生成数据文件citys_data.mat 2. 蚁群算法 流程图 代码 结果展示 3.遗传算法 流程图 代码 结果展示 ...

  3. 【ACO TSP】基于matlab蚁群算法求解31城市旅行商问题【含Matlab源码 1147期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[TSP]基于matlab蚁群算法求解31城市旅行商问题[含Matlab源码 1147期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...

  4. 【飞行器】基于matlab蚁群算法飞行器巡检路径【含Matlab源码 268期】

    一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[飞行器]基于matlab蚁群算法飞行器巡检路径[含Matlab源码 268期] 点击上面蓝色字体,直接付费下载,即可. 获取代码方式2: ...

  5. 蚂蚁算法求解tsp问题matlab,蚁群算法解决TSP问题的MATLAB程序

    蚁群算法TSP(旅行商问题)通用matlab程序 function [R_best,L_best,L_ave,Shortest_Route,Shortest_Length]=ACATSP(C,NC_m ...

  6. 蚁群算法MATLAB程序

    参考<matalba在数学建模中的应用>第九章代码,已测试.欢迎沟通交流. %蚁群算法 %数据准备 %清空环境变量 clear; clc; %程序运行记时开始 t0=clock; %导入数 ...

  7. 【路径规划】基于matlab蚁群算法机器人栅格地图最短路径规划【含Matlab源码 119期】

    ⛄一.简介 路径规划是实现移动机器人自主导航的关键技术,是指在有障碍物的环境中,按照一定的评价标准(如距离.时间.能耗等),寻找到一条从起始点到目标点的无碰撞路径,这里选取最短距离路径规划的评价标准, ...

  8. 【路径规划】基于matlab蚁群算法机器人栅格地图最短路径规划【含Matlab源码 1618期】

    ⛄一.蚁群算法及栅格地图简介 1 蚁群算法 1.1 蚁群算法的提出 蚁群算法(ant colony optimization, ACO),又称蚂蚁算法,是一种用来寻找优化路径的机率型算法.它由Marc ...

  9. matlab蚁群算法 降维,基于蚁群算法的路由问题研究

    在组播路由中,用matlab画图,组播总费用提前收敛,到达各个节点的费用后收敛,甚至有些节点费用一直没有收敛.不应该是每一个节点收敛后,组播树总费用才收敛吗? 是不是我的代码有问题 以下是我的代码: ...

最新文章

  1. Linux Kernel TCP/IP Stack — L2 Layer — Traffic Control(流量控制)的基本操作
  2. 淘淘商城FTP服务器、Redis和solr集群配置
  3. Flex 布局教程:实例篇
  4. LINUX安装ORACLE 9204 报错解决!!
  5. 【POJ - 3320 】Jessica's Reading Problem (尺取,哈希)
  6. TotoiseSVN的上手教程
  7. 5、最长回文子串(python)
  8. asp毕业设计——基于asp+access的公司门户网站设计与实现(毕业论文+程序源码)——公司门户网站
  9. 前端三大主流框架到底学哪个好呢?
  10. POJ 3684 Physics Experiment(弹性碰撞)
  11. UID/DID/SID总结
  12. 天马杯-NLP赛道(科技新闻分类与摘要)赛后总结
  13. BOOST电路的节点电压和电流分析
  14. 纯静态网页设计鞋服包包 鞋子 童装 服装网店商城html模板.rar(含源码+论文)
  15. 一行代码解决问题gpedit.msc组策略找不到的问题,太好用了
  16. 验收报告模版(转载)
  17. Mybatis错误总结
  18. 《Continual lifelong learning with neural networks : A review》阅读笔记
  19. 回滚SQL:通过ROLLBACK SQL查询回滚事务
  20. 【JavaScript从入门到精通】第二课 初探JavaScript魅力-02

热门文章

  1. 粒子群算法求解多元函数最值问题
  2. 【小程序源码】视频壁纸支持多种分类短视频另外也有静态壁纸
  3. java案例_面向对象编程_Stool
  4. 四叠半神话大系(bfs序+st+在线倍增+二分)(北理16校赛)
  5. 最全音视频基础知识学习详解(含多个干货链接)
  6. oracle12c关闭pdb,oracle 12c pdb启动与关闭
  7. 10-解决win10系统更新后开机变慢的问题
  8. SOFAServerless 体系助力业务极速研发
  9. 神经网络算法有哪几种,神经网络有哪几种算法
  10. 2022年氧化工艺考试练习题模拟考试平台操作