交错的等距探路者

时间:2013-10-05 14:09:01

标签: algorithm path isometric

我试图找出如何为交错的等距地图实现路径查找系统时遇到问题。

我阅读了A *算法并尝试了解它如何在等距地图上显示,结果将我带到了这里。

所以问题出在这里(对于便宜的显示器我​​很抱歉)

enter image description here

所以,我现在在绿色瓷砖(2,3)上,我试图找到红色瓷砖(3,1)的路径。

基于A *算法,我尝试计算相邻瓷砖的F值(我只为这3块瓷砖做了这个)。
 由于图像显示(2,1)的F值低于(2,2)并且这是所有问题的母亲,因此j + 2和j-2的对角线块每次都会(几乎) F值比“逻辑”选择  所以不是去(2,2)而是去(2,1)。

我该如何解决这个问题?有人可以给我一些关于我应该做什么的提示吗?

1 个答案:

答案 0 :(得分:3)

根据给定的值,看起来你的H不是admissible。由于从(2,3)到(2,2)需要10,我认为从(2,2)到(3,1)需要10,但你的H说需要20(即你高估)。

一个可能的H是到目标的直接距离(像Manhattan distance或欧几里德那样)。

在我们的第一步,我们探索所有邻居。我们的G值将如下所示:(G =绿色,R =红色)

    14
  10  10
14   R  14
  10  10
G   14

让我们将H视为曼哈顿距离,其中14是对角线跳跃,10是移动到直接邻居。这实际上是这个例子的完美启发式,因为它与实际距离完全相同。一旦路径中存在障碍,情况就会有所不同。

然后我们得到H值为:

    34
  24  30
14   R  34
  10  24
G   14

所以我们的F值(= G + H)是:

    48
  34  40
28   R  48
  20  34
G   28

然后你找到最小值,即20,探索它的所有(未探索的)邻居并找到最小值,这将是这种情况下的目标。

请注意,只要其中一个邻居是目标而不是我们当前正在探索的节点,就很容易停止。如果我们这样做,可接受的启发式算法并不能保证我们能够找到目标的最佳路径。