可以通过回溯解决15拼图吗?

时间:2013-06-11 15:17:27

标签: algorithm data-structures dynamic-programming backtracking

最近我正在读一本名为" Programming Challenges"的书。它基本上是一本关于算法的书。本书的其中一章专门介绍了一种回溯技术,在本章的最后,还有一些来自UVA Online Judge的示例问题。其中一个问题是着名的15 puzzle

即使在专门讨论回溯的章节中引入了这个问题,我仍然怀疑这个问题是否可以在给定的时间限制内通过回溯来解决。

我的问题是:有没有人在这里设法接受一个UVA在线评审接受一个只包含回溯的解决方案?我的意思是你接受了一个没有花哨的A *算法或使用动态编程的记忆或一些需要一些聪明的递归的花哨解决方案的接受。我的意思是回溯。有可能吗?

2 个答案:

答案 0 :(得分:0)

我想我今天很幸运,我在youtube上发现了一系列写这本书的人的讲座。其中一个讲座是关于回溯部分的问题。 Here is the video。他实际上表明它是一个回溯问题,只需要一些聪明的修剪。

答案 1 :(得分:0)

15拼图就像国际象棋或魔方一样,是一个NP难题,需要搜索可能性的树。这种问题只能通过蛮力加修剪来解决,这就是回溯。我同意你的意见,很难在短时间内解决这个问题,因为你可能必须使用某种启发式方法让它在合理的时间内解决。另外,你是正确的,必须使用一些额外的逻辑,因为你必须记住以前访问过的位置,否则你可能会永远搜索,一遍又一遍地重复相同的位置。