【问题标题】:Can anyone explain Nilsson's sequence score in 8-puzzle more clearly?谁能更清楚地解释 Nilsson 在 8-puzzle 中的序列得分?
【发布时间】:2012-05-22 00:33:47
【问题描述】:

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

我没有关于 A* 的问题,但有一些关于启发式分数的问题 - Nilsson 的序列分数。

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

它解释了:

尼尔森的序列得分

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

对于每个不在中心的图块,如果顺时针方向的图块不是顺时针方向的图块,则得分2

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

我无法理解上述计算分数的步骤。

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

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

所以,按照描述,B 在中心,所以我们的得分是1

然后

对于每个不在中心的标题,如果 tile 顺时针方向 it 不是应该顺时针方向的标题,则得分2

我不确定这句话是什么意思。粗体 tile 指的是什么?加粗的 it 指的是什么?加粗的 it 是否指的是中心标题(本例中为 B)?还是它指的是不在中心的每个图块?

下一步是从A开始,所以C不应该是顺时针到A,那么我们的分数是2。然后B应该顺时针到A,然后我们忽略,以此类推?

【问题讨论】:

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


    【解决方案1】:

    让我们将正方形编号如下:

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

    现在,让N(x) 成为瓷砖x 的当前平方数。因此,例如,如果一个图块A 在平方数3 中,那么N(A) = 3。请注意,“图块”可以位于任何这些方格中,并且每个方格的数量保持不变(因此左上角的方格将始终是数字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. tile是指正方形(N(x) + 1) % 8上的tile,即边缘的下一个正方形
    2. it 指的是“for each tile not in the center”中的图块
    3. 通过查看A 给出下一步。 C 不应该顺时针到A,那么我们有2。接下来我们看CD应该顺时针到A,这样就可以了。查看D, E, FG 都可以,但是当我们到达H 时,它不应该接近0,所以我们得到了4 的分数。我们加 1,因为B 在中心得到5。然后乘以3 得到15。然后添加1B 向上移动到正确的位置,并添加1A 向左移动到正确的位置,最终得到17

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      相关资源
      最近更新 更多