Algorithm 谁能解释一下尼尔森';8字谜中的s序列分数更清晰?
我正在学习一个关于8字谜问题的算法 我没有关于A*的问题,但是有一些关于启发式分数的问题——尼尔森的序列分数 非常清楚地解释了A。它有一张尼尔森序列分数的图片 它解释说: Nilsson序列得分 中间的平铺得分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 | +--
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)
成为tilex
的当前平方数。因此,例如,如果一个平铺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