Algorithm 谁能解释一下尼尔森';8字谜中的s序列分数更清晰?

Algorithm 谁能解释一下尼尔森';8字谜中的s序列分数更清晰?,algorithm,graph,artificial-intelligence,a-star,heuristics,Algorithm,Graph,Artificial Intelligence,A Star,Heuristics,我正在学习一个关于8字谜问题的算法 我没有关于A*的问题,但是有一些关于启发式分数的问题——尼尔森的序列分数 非常清楚地解释了A。它有一张尼尔森序列分数的图片 它解释说: Nilsson序列得分 中间的平铺得分1(因为它应该是空的) 对于不在中间的每个磁贴,如果顺时针方向的磁贴不是应顺时针方向的磁贴,则得分2 将该序列乘以三,最后加上将每个瓷砖移回其正确位置所需的总距离 我不明白上面计算分数的步骤 例如,对于启动状态,什么h=17 +---+---+---+ | | A | C | +--

我正在学习一个关于8字谜问题的算法

我没有关于A*的问题,但是有一些关于启发式分数的问题——尼尔森的序列分数

非常清楚地解释了A。它有一张尼尔森序列分数的图片

它解释说:

Nilsson序列得分

中间的平铺得分
1
(因为它应该是空的)

对于不在中间的每个磁贴,如果顺时针方向的磁贴不是应顺时针方向的磁贴,则得分
2

将该序列乘以三,最后加上将每个瓷砖移回其正确位置所需的总距离

我不明白上面计算分数的步骤

例如,对于启动状态,什么
h=17

+---+---+---+
|   | A | C |
+---+---+---+
| H | B | D |
+---+---+---+
| G | F | E |
+---+---+---+
因此,按照描述,
B
位于中间,因此我们的得分为
1

然后

对于不在中间的每个标题,如果顺时针方向至平铺不是顺时针方向的,则得分
2

我不知道这句话是什么意思。粗体的平铺是指什么?粗体的是指什么?粗体的是否表示中间标题(本例中为B)?或者它指的是不在中间的每个瓷砖


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

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

+---+---+---+
| 0 | 1 | 2 |
+---+---+---+
| 7 | 8 | 3 |
+---+---+---+
| 6 | 5 | 4 |
+---+---+---+
现在,让
N(x)
成为tile
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,下一个(G)=H,下一个(H)=A

因此,要回答您的具体问题:

  • 瓷砖指正方形
    (N(x)+1)%8上的瓷砖,即边缘周围的下一个正方形
  • 指的是“对于不在中间的每个瓷砖”
  • 下一步是查看
    A
    C
    不应该顺时针指向
    A
    ,那么我们有
    2
    。接下来我们看一下
    C
    D
    应该顺时针指向
    A
    ,这样就可以了。查看
    D,E,F
    G
    所有这些都是可以的,但是当我们到达
    H
    时,它不应该接近0,所以我们的分数是
    4
    。我们添加1是因为
    B
    位于获取
    5
    的中心。然后乘以
    3
    得到
    15
    。然后添加
    1
    B
    移动到右侧位置,添加
    1
    A
    移动到右侧位置,最终总计
    17