魔方的启发式

时间:2016-04-08 01:37:53

标签: search artificial-intelligence computer-science

我正在尝试了解模式数据库以设计启发式方法。我正在读Richard E. Korf的书启发式搜索。其中一段说明

  

Rubik's Cube的明显启发式是曼哈顿距离的三维版本。对于每个立方体,计算正确定位和定向所需的最小移动次数,并在所有立方体上对这些值求和。不幸的是,为了允许,该值必须除以8,因为每个扭转移动8个立方体。一个更好的启发式方法是取角落立方体的曼哈顿距离之和的最大值除以4,并将边缘立方体之和的最大值除以4.边缘立方体的曼哈顿距离的预期值为22 / 4 = 5.5,而角落立方体的相应值是12.333 / 4,大约等于3.08,部分原因是有12个边缘立方体,但只有8个角立方体。

我的问题是为什么将角落立方体的曼哈顿距离之和除以4并且边缘立方体除以4的曼哈顿距离之和的最大值比将曼哈顿距离的总和除以8更好的启发式?

此外,他们如何获得5.5和3.08的预期值?

1 个答案:

答案 0 :(得分:1)

在这个意义上,它更接近于距离的真实值,因为考虑到角/边小室的移动具有较小的误差。通过诱导误差,我的意思是计算一些距离,即使你已经计算了不同的距离,这会修改你的立方体,因此当前的计算会继续出错,下一个也是如此......下一个...一般来说 - smalelr数量(几乎)你可以找到的独立元素,它仍然保证启发式是可以接受的,因为像这样的启发式(简单求和)假定每个运动的独立性,这在rubics立方体中根本不是这样。因此,违反独立性的次数越少 - 启发式越可靠。