当单位具有惯性时如何进行路径规划?

4
我目前正在为一个游戏中的寻路问题工作,其中单位在移动时具有惯性。大多数典型的寻路算法(如A*、Djikastra等)仅设计用于最小化路径长度。
然而,据我所知,这些技术并不适用于单位具有惯性的情况。如果单位具有惯性,则根据您要前往的方向离开特定方向的瓷砖的成本会有显着差异。
例如,如果您从东侧进入瓷砖,则离开瓷砖向北行进的成本将显着高于从南侧进入的成本。(在前一种情况下,您必须减速以停止东西向速度,而在后一种情况下,您可以直接通过。)
系统具有惯性意味着为了转弯,您可能需要提前减速。我目前的最佳想法是计算减速所需的额外时间,然后将其添加到移动的启发式成本中。但是,这似乎意味着您永远无法将瓷砖添加到关闭列表中,因为从另一个方向进入可能会从根本上改变移动成本。
那么,是否有办法解决寻路中的惯性问题?

你能否将搜索范围限制在惯性方向上?随着你的方向改变,你会慢慢转身。 - cehnehdeh
并不完全是这样。在很多情况下,你必须进行转换。 - Stack Tracer
1个回答

3
创建一个图形,其顶点是不同的瓦片+惯性组合,然后在该图形中执行普通的路径查找算法。

这种方法需要更多的空间,对吧? - Edward Doolittle
这难道不需要无限多的顶点吗?或者至少需要更多数量级的顶点(如果我们想将惯性舍入到几个小数位)? - Stack Tracer
这对我来说听起来不错。假设“惯性”是离散的,即可用方向的数量,但这就是我理解问题的方式。 - Keith
这将是空间的重大增加。但并不像看起来那么糟糕。您可以进行粗略近似以获得基本路径,然后平滑处理以找到局部最优解。 - btilly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接