用于解决 N 谜题的 X-Y 启发式函数

Posted

技术标签:

【中文标题】用于解决 N 谜题的 X-Y 启发式函数【英文标题】:X-Y heuristic function for solving N-puzzle 【发布时间】:2014-09-15 14:28:43 【问题描述】:

有人可以解释一下这个启发式函数吗,例如对于以下 4x4 拼图的排列,X-Y 启发式成本是多少?

1  2  3  4 
5  6  7  8
9 10 11 12
0 13 14 15

(0表示空格)

【问题讨论】:

【参考方案1】:

从here 和here 开始,X-Y 启发式是由列相邻空白交换的最小数量的总和来计算,以获取目标列中的所有图块获得目标行中的所有图块的相邻空白交换的最小行数

所以在这种情况下:

1  2  3  4 
5  6  7  8
9 10 11 12
0 13 14 15

假设目标状态为

1  2  3  4 
5  6  7  8
9 10 11 12
13 14 15 0

因此,在这种情况下,我们首先必须计算空白必须执行的列交换次数,以使所有图块都位于正确的位置。这相当于3,因为空白必须移动三遍到右列才能处于正确的位置(并且所有的瓷砖都在正确的位置)

然后我们必须计算空白必须进行的行交换次数。这是0,这要归功于所有图块都已经在正确的行上。

终于h(n) = 3 + 0 = 3 .

【讨论】:

所以在这种情况下,h(n) 与曼哈顿距离相同,我试图找到一种 O(n^2) 方法来计算 XY 启发式的 h(n),是否存在任何? @demplo

以上是关于用于解决 N 谜题的 X-Y 启发式函数的主要内容,如果未能解决你的问题,请参考以下文章

人工智能作业homework2--------A*算法解决八数码

路径规划A*算法解决三维路径规划问题

路径规划A*算法解决三维路径规划问题

什么是启发式搜索?并以八数码难题为例,说明其原理

曼哈顿距离过高估计让我发疯

N数码问题的启发式搜索算法--A*算法python实现