目录
1.问题描述 存在一个简化的网格,如下图所示,在一定空间范围内,每一点都有一个确定的值与之对应,求一条最优路径A→B,使这条路径上所有点对应值之和取平均值最小。要求从A点出发,下一个点的位置只能取上一个点的下侧、右侧、右下侧位置中的一个,按此方法依次往下搜索,最终到达B结束。 图1.简化网格图 2.蚁群算法基本原理 1)蚁群算法:蚁群算法(ant colony optimization)最早是由Marco Dorigo等人在1991年提出,他们在研究新型算法的过程中,发现蚁群在寻找食物时,通过分泌一种称为信息素的生物激素交流觅食信息从而能快速的找到目标,据此提出了基于信息正反馈原理的蚁群算法。蚁群算法的基本思想来源于自然界蚂蚁觅食的最短路径原理,根据昆虫科学家的观察,发现自然界的蚂蚁虽然视觉不发达,但它们可以在没有任何提示的情况下找到从食物源到巢穴的最短路径,并在周围环境发生变化后,自适应地搜索新的最佳路径。蚂蚁在寻找食物源的时候,能在其走过的路径上释放一种叫信息素的激素,使一定范围内的其他蚂蚁能够察觉到。当一些路径上通过的蚂蚁越来越多时,信息素也就越来越多,蚂蚁们选择这条路径的概率也就越高,结果导致这条路径上的信息素又增多,蚂蚁走这条路的概率又增加,生生不息。这种选择过程被称为蚂蚁的自催化行为。对于单个蚂蚁来说,它并没有要寻找最短路径,只是根据概率选择;对于整个蚁群系统来说,它们却达到了寻找到最优路径的客观上的效果。这就是群体智能。 2)蚁群算法原理及matlab代码参见:https://www.omegaxyz.com/2018/01/26/aco/ 3)本文的最短路径规划思想源于基于蚁群算法的最短路径规划,全文链接及matlab代码请见:https://blog.csdn.net/COCO56/article/details/100060632 4)本文代码适用于任意矩阵(正方形矩阵和非正方形矩阵均可) 3.最短路径规划模型建立 1)模型建立 假设网格规模为m行n列,将网格序号转换成坐标点,则第i个网格对应的坐标点位置计算公式下式所示: 3)求解流程 4.MATLAB代码实现 5.验证 程序仿真结果 图12.收敛曲线变化趋势 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论