最近好多人问我蚁群算法最短路径规划如何设置多出口情况,原来2019年美赛D题“拯救卢浮宫”需要用到。本人没有看过美赛的题目,下面给出一些不成熟的代码。
蚁群算法简介:蚁群算法最早是由Marco Dorigo等人在1991年提出,他们在研究新型算法的过程中,发现蚁群在寻找食物时,通过分泌一种称为信息素的生物激素交流觅食信息从而能快速的找到目标,据此提出了基于信息正反馈原理的蚁群算法。

单出口情况:
http://www.omegaxyz.com/2018/01/27/aco_routes/
针对大家问过的问题下面给出解答:

问题1:如何修改目的地(出现minPL(i)=min(PLKPLK);错误)

出口只需要修改E,其他都不需要改,E是一维,下面的程序会自动解析为横纵坐标(即Ex和Ey不需要修改)
例如E = MMMM说明是最后一个格子,MMMM-j代表右下角的格子向左平移j个单位,MMMM-iMM,代表右下角的格子向上平移i个单位。
大家可以试试下面的这些出口
MMMM, MMMM-19MM-5, MMMM-7MM, MMMM-15MM, MMMM-17
问题2:如何处理非正方形矩阵

首先MM作为边长要修改,下面的出口横纵坐标Ex,Ey需要重新解析,相关的画图部分要改,信息素矩阵Tau要修改。
问题3:G2D函数无法运行的问题

这里可能是matlab版本问题,为了方便,我将G2D函数直接放在代码的最下面,如果不能运行建议将G2D函数重新新建一个文件,并把main函数中的G2D删去。
G2D.m

function D=G2D(G) l=size(G,1); D=zeros(l*l,l*l); for i=1:l for j=1:l if G(i,j)==0 for m=1:l for n=1:l if G(m,n)==0 im=abs(i-m);jn=abs(j-n); if im+jn==1||(im==1&&jn==1) D((i-1)*l+j,(m-1)*l+n)=(im+jn)^0.5; endend end end end end end
end

问题4:对于多出口的情况

此问题代码需要重构,或者来个简便方法,多线程每个线程一个出口最后一起画图。
设立一个archive矩阵,里面存储所有的目标点

Earchive = [MM*MM, MM*MM-19*MM-5, MM*MM-7*MM, MM*MM-15*MM, MM*MM-17];

来个大循环,每次重新运行蚁群算法,最终画图画到一个图上(使用matlab hold on语句)
声明:以上给出的程序与2019年美赛建模D题具体思路无关。
更多内容访问 omegaxyz.com
网站所有代码采用Apache 2.0授权
网站文章采用知识共享许可协议BY-NC-SA4.0授权
© 2019 • OmegaXYZ-版权所有 转载请注明出处

蚁群算法最短路径规划多出口情况及问题答疑相关推荐

  1. 多目标蚁群算法路径规划(四)------多目标约束过程常规流程框架

    多目标蚁群算法路径规划(四) 文章目录 多目标蚁群算法路径规划(四) 零.系列前言(一定要看) 一.内容说明 1.1 本章内容说明 1.2 本章主要分享内容简介(摘要) 二. 多目标计算预先准备 2. ...

  2. 基于MATLAB GUI的蚁群算法路径规划实现电动汽车充电站与换电站协调

    基于MATLAB GUI的蚁群算法路径规划实现电动汽车充电站与换电站协调 摘要: 随着电动汽车的普及和发展,电动汽车充电站与换电站的布局和规划变得尤为重要.本文基于MATLAB GUI平台,结合蚁群算 ...

  3. matlab蚁群算法 路径规划,基于蚁群算法的机器人路径规划MATLAB源码

    基于蚁群算法的机器人路径规划MA TLAB源码 使用网格离散化的方法对带有障碍物的环境建模,使用邻接矩阵存储该环境,使得问题转化为蚁群算法寻找最短路径. function [ROUTES,PL,Tau ...

  4. Java用蚁群算法求最短路径_蚁群算法最短路径java

    改进蚁群算法求解最短路径问题 袁亚博,刘羿,吴斌 [摘要]摘要:针对蚁群算法在求解最短路径问题时存在容易陷入局部最优 解的问题,对经典蚁群算法提出三方面改进.... 网络出版时间:2016-11-21 ...

  5. 2019年全美数学建模竞赛(B题,重心法选址+类蚁群算法路径规划)

    整体论文研究了半天没法上传,就把中间的几部分的代码上传了. 1.无人机属性预处理 #include<bits/stdc++.h> using namespace std; #define ...

  6. python蚁群算法 路径规划_蚁群算法(1) - Python实现

    1 importnumpy as np2 importmatplotlib.pyplot as plt3 4 5 #建立"蚂蚁"类 6 classAnt(object):7 def ...

  7. python蚁群算法路径规划_使用python实现蚁群算法

    此次使用python实现蚁群算法是仿照蚁群优化算法的JAVA实现中的蚁群算法实现方法,使用的也是其中的数据(此处为上传数据),如需更深一步了解蚁群算法原理和具体实现过程,请参考蚁群优化算法的JAVA实 ...

  8. 蚁群算法C语言最短路径规划,蚁群算法规划路径

    蚁群算法可以用于路径规划,在本例中,地形矩阵用0表示无障碍物.用1表示有障碍物,机器人从1x1处走到10x10处,使用蚁群算法找最短路径. 步骤如下:初始化参数.地形矩阵.信息素矩阵和启发式因子矩阵. ...

  9. 【本科毕业设计】基于蚁群算法的无人机飞行路径规划

    基于蚁群算法的无人机飞行路径规划 1. 绪论 1.1 选题背景及意义 1.2 研究现状 1.2.1 路径规划的研究现状 2. 四旋翼无人机 2.1 四旋翼无人机简介 2.2 无人机飞行工作原理 2.2 ...

  10. 改进蚁群算法 改进flod算法对路径进行双向平滑度优化,提高路径的平滑度

    改进蚁群算法 改进flod算法对路径进行双向平滑度优化,提高路径的平滑度 自己研究编写的Matlab路径规划算法 蚁群算法路径规划 自己研究算法对比 可自行设置起始点,目标点,自由更换地图. ID:6 ...

最新文章

  1. 三大运营商扎堆进军“元宇宙”
  2. 【Flutter】StatelessWidget 组件 ( Divider 组件 | Card 组件 | AlertDialog 组件 )
  3. 虚函数表 vtable
  4. c语言数组在栈上的分配,彻底弄懂为什么不能把栈上分配的数组(字符串)作为返回值...
  5. JMeter初探-安装与使用
  6. 收费最低的云存储_百度云:虚拟主机11元/6个月,入门级云服务器60元/年
  7. C# Activator
  8. c#如何判断字符串是否含中文
  9. 想要转人工智能,程序员该如何学习?(学习路线、知识体系)
  10. 一键托管,阿里云全链路追踪服务正式商用:成本仅自建1/5或更少
  11. Vue Element校验validate
  12. Windows中MySQL主从数据库搭建(三)
  13. 谈谈对象和XML文件的转换
  14. 室内定位无GPS怎么办?阿木送来解决方案~
  15. 外汇EA是什么?外汇EA有什么用呢?能赚钱吗?
  16. C# 中通过CancellationTokenSource实现对超时任务的取消
  17. Spire.Doc在Word中插入图片时,自适应宽度设置
  18. 北京冬奥带火“数字雪花”,隐藏的科技秘密暴露了
  19. 什么是Java中的迭代器?如何使用它
  20. 7-18 nii.gz文件的处理

热门文章

  1. C++ 返回值优化(RVO,Return Value Optimization)
  2. python实现排序算法 整理
  3. 计算机图形学全代码,计算机图形学作业参考代码
  4. java lombok 插件_idea 安装 lombok 插件
  5. jsp用下拉框代替文本框_PPT封面太丑?教你三个高手都在用的美化技巧
  6. java发送email_java发送email一般步骤(实例讲解)
  7. php 规则路由器,ThinkPHP6路由踩坑之变量规则
  8. Echarts:Vue3中引入地图,展示不同省市数据
  9. java将excel转换成txt_java将excel文件转换成txt格式文件
  10. 随手记_选方向读论文发论文相关