基于Matlab使用蚁群算法寻找最优路径

embedded/2024/10/17 12:09:33/

基于Matlab使用蚁群算法寻找最优路径

与Dijkstra算法使用相同的地图。
每只蚂蚁都从起点出发,直到抵达终点。这与Example5_1.m 中解决旅行商问题不一样,旅行商问题中每一代的蚂蚁都是随机从一个节点出发。

文件说明

Example5_1.m 简单对参考资料2中的代码进行重现;

ACA.m 对参考资料1中的代码进行重现,并适当优化代码且修改错误,错误如下:
请添加图片描述
请添加图片描述

计算P(2,k)有问题,neighbor已经删除了不可访问节点,所以neighbor中节点的索引号和nodes_data{node_step, 4}索引号不是一一对应关系,应该先找到对应的索引号。
修正:

实验

信息素启发式因子α 代表信息量对是否选择当前路径的影响程度, 即反映蚂蚁在运动过程中所积累的信息量在指导蚁群搜索中的相对重要程度。 α 的大小反映了蚁群在路径搜索中随机性因素作用的强度, 其值越大, 蚂蚁在选择以前走过的路径的可能性就越大, 搜索的随机性就会减弱; 而当启发式因子α的值过小时, 则易使蚁群的搜索过早陷于局部最优。 根据经验, 信息素启发式因子α取值范围一般为[l, 4]时, 蚁群算法的综合求解性能较好。

期望启发因子β 表示在搜索时路径上的信息素在指导蚂蚁选择路径时的向导性, 它的大小反映了蚁群在搜索最优路径的过程中的先验性和确定性因素的作用强度。 期望启发因子β的值越大, 蚂蚁在某个局部点上选择局部最短路径的可能性就越大, 虽然这个时候算法的收敛速度得以加快, 但蚁群搜索最优路径的随机性减弱, 而此时搜索易于陷入局部最优解。 根据经验, 期望启发因子β取值范围一般为[3, 5], 此时蚁群算法的综合求解性能较好。
参考:《智能优化算法及其MATLAB实例(第2版)》by包子阳 P101 例5.1

对结果的显示进行一定修改,以查看每一次迭代的最佳结果:
请添加图片描述

请添加图片描述

Dijkstra算法示例中求出的最优路径为:4-5-6-1
修改 β \beta β值重复四次实验

  1. β = 0 \beta=0 β=0
    实践中 β \beta β不应等于0,但为了说明距离这样的先验信息起的作用,取 β = 0 \beta=0 β=0,实验结果:
    请添加图片描述

  2. β = 3 \beta=3 β=3
    请添加图片描述

  3. β = 5 \beta=5 β=5

    请添加图片描述

对比三个实验中纵坐标最小值可以看出, β \beta β越大,算法越易陷入局部最优。

  1. 实验一最优值全为22,是全局最优,最优路径 4-5-6-1。
  2. 实验二2个22,2个25;
  3. 实验三全为25,均为局部最优,局部最优路径 4-5-6-2-1。

讨论:

  • 位于节点6时,接下来应该选择节点1还是节点2受到信息素和启发因子的影响,当 β \beta β较大时,更看重启发信息,即更加偏向与选择距离短的节点(节点6->节点1距离为16,节点6->节点2距离为7),因此才会出现实验三的结果。当 β = 0 \beta=0 β=0时,启发信息不起作用,选择全取决于信息素,这种情况更贴近自然中的蚁群寻路。
  • 群智能算法都有陷入局部最优的问题

如需代码,请私信联系


http://www.ppmy.cn/embedded/128160.html

相关文章

STM32 DMA控制器

目录 STM32 DMA的基本概念 DMA的定义 DMA传输的基本要素 DMA传输过程 DMA的优点与应用 STM32 DMA的结构和主要特征 DMA处理 DMA通道 DMA 中断 DMA的HAL驱动函数 STM32 DMA的基本概念 在很多的实际应用中,有进行大量数据传输的需求,这时如果CP…

UE5 猎户座漂浮小岛 03 视觉效果 粒子

UE5 猎户座漂浮小岛 03 视觉效果 粒子 1.视觉效果 1.1 指数级高度雾 fog指数高度雾组件 0.1、1.4 内颜-淡蓝体雾 1.2 体积光 太阳 directionallight-强度光强-3颜色-淡蓝光束-遮 遮暗-0.018范-10000 1.3 天光 天空照亮,泛光,照大地 skylight强范…

Javascript——html生成并预览 PDF及html导出为Word

html生成并预览 PDF <template><div><div ref"content"><!-- 这里放置你想要转换为 PDF 的 HTML 内容 --><h1>标题</h1><p>这是一些内容。</p></div><button click"exportToPDF">生成并预览 …

R语言绘制聚类热图

聚类热图是一种直观的数据可视化工具。它以矩形彩色图表的形式呈现数据矩阵&#xff0c;每个单元格颜色对应特定数值&#xff0c;通常从低值的冷色调到高值的暖色调渐变。常应用于多个领域&#xff0c;如生物学中分析基因表达、蛋白质相互作用和生物群落&#xff1b;金融领域用…

git gui基本使用

一、图形化界面 二、创建新项目 创建文件&#xff0c;加入暂存区&#xff0c;提交到版本库 三、创建分支 四、合并分支 1.切换至master 五、更新分支 六、解决冲突 修改冲突&#xff0c;加入暂存区&#xff0c;提交到版本库 七、远程创建库 Gitee - 基于 Git 的代码托管和研…

自动驾驶系列—自动驾驶整体开放平台:如何加速无人驾驶技术的落地?

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

Excel多级结构转成树结构形式

第一步&#xff1a;Excel文件的形式如下 第二步&#xff1a;转换成树结构可选形式 第三步&#xff1a;具体怎么实现&#xff1f; &#xff08;1&#xff09;、需要借助数据库中表来存储这些字段&#xff0c;一张表&#xff08;aa&#xff09;存Excel文件中的所有数据&#xff…

如何通过计算巢在阿里云一键部署FlowiseAI

什么是FlowiseAI FlowiseAI 是一个开源的低代码开发工具&#xff0c;专为开发者构建定制的语言学习模型&#xff08;LLM&#xff09;应用而设计。 通过其拖放式界面&#xff0c;用户可以轻松创建和管理AI驱动的交互式应用&#xff0c;如聊天机器人和数据分析工具。 它基于Lang…