【发布时间】:2012-03-09 06:35:10
【问题描述】:
在使用非网格地图时,是否有任何现有算法可以在寻路中查找和避免问题区域(swamps、dead-ends)?有很多可用于避开这些区域或通过jump point recursion 等方式伪避开这些区域的网格,但我还没有找到任何对四叉树、导航网格或其他非均匀地图有用的东西。
【问题讨论】:
标签: algorithm graph-theory path-finding pruning
在使用非网格地图时,是否有任何现有算法可以在寻路中查找和避免问题区域(swamps、dead-ends)?有很多可用于避开这些区域或通过jump point recursion 等方式伪避开这些区域的网格,但我还没有找到任何对四叉树、导航网格或其他非均匀地图有用的东西。
【问题讨论】:
标签: algorithm graph-theory path-finding pruning
死角检测和沼泽不是特定于网格的。他们只是在网格地图上进行评估。
【讨论】:
这样的事情可能确实存在——每年都会发表数百篇寻路和运动规划论文,但我认为你需要问自己一个更大的问题——你为什么要这样做?
采用导航网格或稀疏网格表示的想法是通过减少图中节点的数量来减少找到解决方案所需的时间。如果您的搜索太慢,只需修剪图中的节点和边数。通过在开始之前从离线搜索中手动删除任何死胡同,您将减少每次搜索的开销。
如果即使在您修剪了图表之后,搜索仍然会变慢并且您可以容忍搜索问题的近似解决方案,请考虑使用Weighted A*,您重新计划降低通货膨胀因子,直到您确实有最优成本。
规划算法充满了妥协,只要确保你了解你选择做什么的利弊。
最后一个建议,确保您已在您正在使用的规划器中正确实现原语 - A* 等算法依赖于正确实现优先级队列,特别是确保 decrease-key是 O(log n) 或 better。
【讨论】: