多智能体在公共空间运行,个人理解的难点有以下几点:
1:路径重合或者路径冲突。
2:有一些路径结构容易堵塞。
3:如何合理的分配任务,可以让任务更快被执行。
首先第一个问题,多个智能体运行在公共区域内,肯定会有很多路径是重合或者冲突的。这方面比较经典的算法便是基于冲突搜索的多智能体路径规划算法(CBS)。为了快速取得一定效果,本人程序中也采取该算法,对常规冲突和自己理解的冲突进行了定义与对应解决方法。
第二个问题则是在稍微仿真模拟了一下实际项目中的运行场景后发现的,在一些特定点位,最经典的便是出库站台,特别容易发生堵塞情况。多个设备分配了同一出库站台的出库任务,此时在出库站台那里,堵塞的频率很高。尤其当出库站台结构不合理,是一个没有环路的单向路径时,设备把托盘放在站台上后,必须通过原路径离开该区域,堵塞情况会更加严重。
第三个问题拆分理解:
①:任务包含以下几段路线:设备从当前位置到达任务起点位置,从起点位置走到目的位置。第二段从起点位置到达目的位置,不考虑避让与堵塞的情况下,是避免不掉,无法减少的。所以在分配任务的时候,主要考虑尽量减少第一段路径花费时间。
②:当多个设备有路径冲突的时候,为了结局这种路径冲突,时间代价是很高的。
下面展示一个部分优化,并不断生成在站台之间搬运托盘的运行效果。
模拟场景共4台设备,上下区域各自有9个站台,中间是网格式