背景
有一个方形地图,上面有一些障碍物。障碍由多边形表示。我实现了以下路径寻找算法:
1)选择精度(用k表示)
2)将地图划分为k x k个正方形
3)根据以下规则从这些方块制作图表:
- 每个节点代表一个正方形
- 当且仅当它们相邻且没有任何障碍物成为任何障碍时,连接两个节点
4)使用A *算法(或Dijkstra或其他一些......)找到最短路径
如果map不是动态的,那么这个算法效果很好。这意味着障碍无法移动。
问题
1)这种方法有效吗?
2)如果障碍物可以移动怎么办?
3)如何对待其他代理商?让我们考虑房间里有100个房间的情况。有两个存在。所有代理都在一个组中,并且该组在其中一个出口附近。如果所有代理商都去了最近的出口,那么它将导致瓶颈。其中一些应该到另一个出口,以尽量减少退出所需的时间。如何得到这样的结果?
答案 0 :(得分:2)
使用A *路径作为静态障碍物的一般准则,并对动态(较小)障碍物执行本地Obstacle Avoidance。雷诺兹还有一个解决瓶颈问题的算法。他称之为Queueing。