谁能更清楚地解释Nilsson在8-puzzle中的序列分数?

时间:2012-05-14 13:57:53

标签: algorithm graph artificial-intelligence a-star heuristics

我正在学习关于8-puzzle问题的A *算法。

我对A *没有疑问,但有一些启发式得分 - 尼尔森的序列得分。

Justin Heyes-Jones web pages - A* Algorithm非常清楚地解释了A *。它有一张Nilsson序列分数的图片。

Nilsson's sequence scores

它解释道:

Nilsson的序列分数

  

中心的图块得分1(因为它应该为空)

     

对于不在中心的每个瓷砖,如果顺时针方向的瓷砖不是顺时针方向的瓷砖,则评分为2

     

将此序列乘以3,最后添加将每个图块移回正确位置所需的总距离。

我无法理解上面计算得分的步骤。

例如,对于开始状态,h = 17是什么?

+---+---+---+
|   | A | C |
+---+---+---+
| H | B | D |
+---+---+---+
| G | F | E |
+---+---+---+

因此,按照说明,B位于中心,因此我们得分为1

然后

  

对于不在中心的每个标题,如果平铺顺时针方向不是顺时针方向的那个,那么得分2。< / p>

我不确定这句话是什么意思。粗体 tile 是指什么?粗体指的是什么?粗体是否指中心标题(本例中为B)?或者它是指不在中心的每个瓷砖?

我们从A开始的下一步是C不应该顺时针到A,那么我们得分为2。然后B应该顺时针到A,然后我们忽略,等等呢?

1 个答案:

答案 0 :(得分:5)

让我们按如下方式对方块进行编号:

+---+---+---+
| 0 | 1 | 2 |
+---+---+---+
| 7 | 8 | 3 |
+---+---+---+
| 6 | 5 | 4 |
+---+---+---+

现在,让N(x)成为图块x的当前平方数。因此,例如,如果图块A位于方形编号3中,则N(A) = 3。请注意,“tile”可以位于这些方块中的任何一个中,并且每个方块的数量保持不变(因此左上方的方格始终为数字0)。

序列分数由下式给出:

for each tile x in (A, B, C, ..., H)
    score += distance from N(x) to the correct square for tile x
    if N(x) == 8  # i.e. the tile is in the center
       score += 3*1
    else if N(next(x)) != (N(x) + 1) % 8
       score += 3*2

其中next(x)x带到下一个字母,即next(A) = B, next(B) = C, ... , next(G) = H, next(H) = A

所以回答你的具体问题:

  1. 图块是指方格(N(x) + 1) % 8上的图块,即边缘的下一个方格
  2. 是指“对于不在中心的每个图块”中的图块
  3. 下一步是通过查看A给出的。 C不应该顺时针到A,我们有2。接下来我们看一下CD应顺时针到A,所以这没关系。查看D, E, FG所有这些都可以,但是当我们到达H时,它不应该接近0,因此我们得分为4。我们添加1,因为B位于中心以获得5。然后乘以3得到15。然后添加1以将B移至正确的位置,并1A移至正确的位置,最后总计17。< / LI>