Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/masx200/multiple-ant-colony-algorithms-in-path-planning-applications

在路径规划应用中的多种群蚁群算法
https://github.com/masx200/multiple-ant-colony-algorithms-in-path-planning-applications

Last synced: 6 days ago
JSON representation

在路径规划应用中的多种群蚁群算法

Awesome Lists containing this project

README

        

# multiple-ant-colony-algorithms-in-path-planning-applications

#### 介绍

在路径规划应用中的多种群蚁群算法

#### 软件架构

为了降低计算量,应该在到达一个格子后按需计算这个格子可到达的栅格,并使用缓存保存所有格子之间的可达性。而不是开始时就计算所有格子的可到达栅格。

对于从起点到终点可以直达的地图,直接输出从起点到终点的直线即可结束算法.算法初始时,将最优路径长度设置为无穷大,表示不可达.每走一步,如果当前格子能够直线到达终点,则下一步直接到达终点,结束搜索.由于此时需要搜索的格子较少,这个搜索可达节点的距离可以无限制.

局部优化方法,
局部优化方法,(1)如果起点和终点可以直线到达,则退出循环,输出路径为从起点到终点,(2)先把路径转换成经过的每一个格子的列表,然后判断路径上的随机选择每两个不相邻的点是否可直连,这两点之间的部分替换为直连路径,如果替换后的路径与原路径不相同则继续递归替换,直到没有可以直连的路径为止或者到达最大循环次数,是否缩短距离,可以减少转弯次数,设最大循环次数为这个路径经过的所有节点的个数.设路径长度为m,则时间复杂度为O(m^2).(3)这个方法同时可以解决存在交叉点的问题.由于此时需要搜索的格子较少,这个搜索可达节点的距离可以无限制.

搜索路径的贪心算法,从起点开始,到终点结束,在每一步选择下一个格子时,(1)如果当前格子与终点能够直线通过,则直接到达终点,(2)否则,选择(当前格子到下一个格子的欧式距离+下一个格子到终点的欧式距离)最小的格子.(3)如果没有下一步可选的格子,则把当前格子放入禁止表中,退回到到上一个经过的格子,继续搜索.

解决凹型死路问题的方法,使用回退策略,一步可能跨过多个格子,不需要退回太多格子,先把当前节点的格子放入禁止表中,回退到这一步经过的路径的上一个格子继续搜索。

蚂蚁拥在搜索一个格子的可达节点时为有限视野,可以向任意方向直线移动,需要预先处理每个格子的可通行的可选节点,从一个格子的周边一圈按照任意方向,距离从近到远依次判断是否可通行,每一步行走距离不限,两点之间可以走直线,需要判断每两个点之间是否有障碍物以及是否经过曾经走过的格子.这个有限视野可以暂时设定为5格距离.防止搜索太远计算量太大.每一个格子的可选节点最多为大约77个。