3.蚁群算法求解格栅地图路径规划matlab代码

往期:

1.Dijkstra算法求解格栅地图路径matlab代码_墨叔叔的博客-CSDN博客

2.A*搜索算法原理及matlab代码_墨叔叔的博客-CSDN博客

一、蚁群算法原理

原理:蚁群系统(Ant System或Ant Colony System)是由意大利学者Dorigo、Maniezzo等人于20世纪90年代首先提出来的。他们在研究蚂蚁觅食的过程中,发现单个蚂蚁的行为比较简单,但是蚁群整体却可以体现一些智能的行为。例如蚁群可以在不同的环境下,寻找最短到达食物源的路径。这是因为蚁群内的蚂蚁可以通过某种信息机制实现信息的传递。后又经进一步研究发现,蚂蚁会在其经过的路径上释放一种可以称之为“信息素”的物质,蚁群内的蚂蚁对“信息素”具有感知能力,它们会沿着“信息素”浓度较高路径行走,而每只路过的蚂蚁都会在路上留下“信息素”,这就形成一种类似正反馈的机制,这样经过一段时间后,整个蚁群就会沿着最短路径到达食物源了。

参考:蚁群算法(Ant Colony Optimization)_明之季的博客-CSDN博客_蚁群算法

(1)根据具体问题设置多只蚂蚁,分头并行搜索。
(2)每只蚂蚁完成一次周游后,在行进的路上释放信息素,信息素量与解的质量成正比。
(3)蚂蚁路径的选择根据信息素强度大小(初始信息素量设为相等),同时考虑两点之间的距离,采用随机的局部搜索策略。这使得距离较短的边,其上的信息素量较大,后来的蚂蚁选择该边的概率也较大。
(4)每只蚂蚁只能走合法路线(经过每个城市1次且仅1次),为此设置禁忌表来控制。
(5)所有蚂蚁都搜索完一次就是迭代一次,每迭代一次就对所有的边做一次信息素更新,原来的蚂蚁死掉,新的蚂蚁进行新一轮搜索。
(6)更新信息素包括原有信息素的蒸发和经过的路径上信息素的增加。
(7)达到预定的迭代步数,或出现停滞现象(所有蚂蚁都选择同样的路径,解不再变化),则算法结束,以当前最优解作为问题的最优解。

二、蚁群算法求解格栅地图路径规划

原始地图

3.蚁群算法求解格栅地图路径规划matlab代码_第1张图片

1.目标函数直接设置路径长度,约束采用硬约束是否到达目标点

结果:

3.蚁群算法求解格栅地图路径规划matlab代码_第2张图片

连续5次运行后路径长度为:53.9411 48.8701 43.4558 49.6985 44.0416 平均长度48.0014

2.目标函数直接设置路径长度,约束采用软约束与目标点的距离

3.蚁群算法求解格栅地图路径规划matlab代码_第3张图片

连续5次运行后路径长度为:43.9411 38.8701 41.4558 39.6985 42.8701平均长度 41.3671

三、总结

蚁群算法求解二维格栅问题效果尚可,小规模格栅地图不如A星算法,但是适用性强,某些地图使用A星算法得到的结果不如蚁群算法,可以尝试用其他方法进行优化。

四、代码:蚁群算法求解格栅地图路径规划matlab代码-机器学习文档类资源-CSDN下载

你可能感兴趣的:(matlab,路径规划,matlab,路径规划,蚁群算法)