15拼图启发式

时间:2011-03-20 06:16:13

标签: algorithm artificial-intelligence heuristics

15 Puzzle是涉及启发式的建模算法的经典问题。针对此问题的常用启发式方法包括计算错放的磁贴的数量,并找出每个块与其在目标配置中的位置之间的曼哈顿距离的总和。请注意,两者都是可接受的,即它们永远不会高估剩余的移动次数,这可确保某些搜索算法(如A *)的最佳性。

  • 您认为Heuristic是正确的,A*似乎很有效,您是否有例子,可能在cjava

2 个答案:

答案 0 :(得分:8)

启发式

我的选择启发式是找出排列中所有倒置的总和是奇数还是偶数 - 如果是偶数,那么15Puzzle是可解的。

  

排列中的倒置数等于其倒排列的倒数(Skiena 1990,p.29; Knuth 1998)。

只有我知道它可以解决才有意义解决它。那么任务就是减少逆,并解决中提问题。要找到一个解决方案,不应该超过80步。

更多帮助

排列方程是:

enter image description here

<0>范围为0至16的因子是{1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368000,20922789888000}。如果您需要更多,请搜索WolframAlpha Range[1,20]!

如果您想了解更多信息,请阅读:15Puzzle

答案 1 :(得分:1)

使用A *算法在{+ 3p>中使用C ++实现十五个拼图