非网格地图中的沼泽/死端修剪

时间:2012-03-09 06:35:10

标签: algorithm graph-theory path-finding pruning

在使用非网格地图时,是否存在用于在寻路中查找和避免有问题区域(swampsdead-ends)的现有算法?有足够的网格可以避免这些区域或通过jump point recursion等伪方法避免这些区域,但我还没有发现任何对四叉树,导航网格或其他非均匀地图有用的东西。

2 个答案:

答案 0 :(得分:1)

死端检测和Swamps不是特定于网格的。它们只是在网格图上进行评估。

答案 1 :(得分:0)

这样的事情可能确实存在 - 每年都会发布数百篇路径查找和动作规划文件,但我认为你需要问自己一个更大的问题 - 你为什么要这样做?

进入导航网格或稀疏网格表示的想法是通过减少图中节点的数量来减少查找解决方案所需的时间。如果搜索速度太慢,只需修剪图表中的节点数和边数。通过在开始之前从离线搜索中手动删除任何死角,您将减少每次搜索的开销。

如果,即使您已经修剪了图表,搜索仍然会减慢您可以容忍搜索问题的近似解决方案,请考虑使用Weighted A*,您重新计算时减少通货膨胀因素直到你确实有最优的成本。

规划算法充满了妥协,只要确保您了解您选择做什么的利弊。

最后一个建议是,确保您在正在使用的规划器中正确实现了原语 - 像A *这样的算法依赖于正确实现的优先级队列,特别是确保 reduce-key 是O(log n)或better