在计算1个瓷砖的移动数量时,是否可以导致其他瓷砖进入目标状态?因此,计算每个瓷砖可以给我们的计数超过达到目标状态所需的最小移动量吗?
这个问题是关于15-Puzzle的曼哈顿距离的背景。
以下是不同的问题:
我们可以使用曼哈顿距离作为N-Puzzle的可接受启发式算法。要实现A *搜索,我们需要一个可接受的启发式算法。曼哈顿启发式是候选人吗?如果是,你如何反驳上述论点(问题的前3个句子)?
定义:A*是一种搜索算法。它使用启发式函数来确定到目标的估计距离。只要这个启发式函数永远不会高估到目标的距离,算法将找到最短路径,可能比广度优先搜索更快。满足该条件的启发式是可接受的。
答案 0 :(得分:12)
可接受的启发式方法不得过高估算解决此问题的动作数量。由于您一次只能在4个方向中的一个方向上移动块1,因此每个块的最佳方案是它具有到目标状态的清晰,无障碍的路径。这是1的M.D.。
一对块的其余状态是次优的,这意味着将采取比M.D.更多的移动以使块在正确的位置。因此,启发式算法永远不会过高估计并且是可以接受的。
当有人发布正确的正式版本时,我会删除。
答案 1 :(得分:5)
正式证明: 根据h的定义,h(s *)= 0,如果s *是目标状态。假设通过矛盾来证明 那个C *< h(s0)表示某些初始状态s0。请注意,因为每个动作都可以移动 只有一个磁贴,执行一个动作最多可以将h减少一个。既然目标可以 在C *动作中达到,我们有h(s *)≥h(s0) - C *> 0,这带给我们一个 矛盾,因为h(s *)应为零。因此,我们必须有h(s0)≤C* forall s0,h是可以接受的。 (来源:加州大学欧文分校)