n-puzzle的直线距离启发式算法

时间:2015-10-17 09:44:28

标签: heuristics

有人可以向我解释一下解决n-puzzle时直线距离启发式的样子吗?你会如何应用直线距离,例如8x8拼图?这是一个例子:

7 3 4
5 _ 6
8 2 1

1 个答案:

答案 0 :(得分:2)

让我们回想一下基本几何,众所周知,两点之间的最短路径是一条直线。

因此,考虑到8拼图,两个拼贴之间的直线距离是从拼贴A到拼贴B的拼贴数量,无论是对角线,水平线还是垂直线。

考虑到你问题中的例子,让我们把d(a,b)称为a和b之间的直线距离:

  • d(1,_)= 1
  • d(1,2)= 1
  • d(1,3)= 2 = d(1,6)+ d(6,3)= d(1,_)+ d(_,3)
  • d(1,4)= 2

等等。

我们现在可以将该定义推广到n-puzzle。请记住,3个步骤允许对角线,水平,垂直。在这种情况下,启发式通常是最优的。

注意:请记住城市之间的直线定义。