我遇到Jump Point Search,对我来说似乎很甜蜜。但是,我不确定他们的修剪规则是如何实际工作的。更具体地说,在图1中,它表明了
我们可以立即修剪所有灰色邻居,因为这些邻居可以从x的父级最佳地到达,而无需通过节点x
然而,这似乎有些不一致。在第二个图像中,可以通过首先通过节点7并完全通过对称路径跳过x
来到达节点5,即6 -> x -> 5
似乎与6 -> 7 -> 5
对称。这与在不通过第一张图像中的x
的情况下如何到达节点3相同。因此,我不明白这两个图像是如何完全等效的,而不仅仅是彼此的旋转版本。
其次,我想了解这个算法如何推广到三维搜索量。
答案 0 :(得分:0)
第二张图像显示不正确。如果你看一下附带的文字:“在这两种情况下,我们都可以立即修剪所有灰色邻居,因为这些邻居可以从x的父节点最佳地到达,而不需要通过节点x。”
强调'两种情况'。
在将概念应用于三维空间(或heck,甚至是n维空间)方面,该算法与A *没有区别,因为它只是节点和连接的网格。维度完全由您自行决定。
答案 1 :(得分:0)
我理解这是关于优先事项的。为了枚举每个非对称路径,你必须枚举所有节点 - 但是你选择哪条路径并不重要,因为它们是对称的。因此,作者决定采用对角线优先 - 也就是说,任何对角线运动总是出现在路径中的任何直线运动之前。这就是为什么直道有更多的节点被修剪 - 因为它必须在所有对角线都被考虑之后发生。
答案 2 :(得分:0)
是的,JPS很好但仅限于具有特定限制的地图:
算法的关键是这些约束允许一些关键假设:
这些假设允许算法忽略对称路径选项并按如下方式操作: