【问题标题】:Puzzle 8 Compatible States谜题 8 兼容状态
【发布时间】:2015-05-14 23:21:19
【问题描述】:

我需要知道是否有任何算法可以预先知道,而无需搜索初始集合的所有可能解决方案,如果我们可以达到第二个给定集合。

例如:

[1,0,2,3,5,6,4,8,7] -> [2,3,4,5,8,0,7,1,6]

如果第二个集合可以从第一个集合到达,则此算法将返回 True,否则返回 False。

我想了一下,我可以肯定地说,如果初始集合是可解的(可以将所有正方形按顺序排列),第二个也是如此,那么这个算法将返回 True,因为:

[1,2,3,4,5,6,7,0,8] [1,2,3,4,5,6,7,8,0] [1,2,3,4,5,0,7,8,6]

对于任何给定的可解谜题,可以将其反转以获得原始集合。

另一方面,如果其中一个集合是可解的,而第二个是不可解的,那么算法肯定会返回 False,因为如果您可以从不可解集开始达到可解集,那么我们就会产生矛盾。

现在,真正的问题是当两个集合都无法解决时。出于某种原因,我很肯定给定一个不可解的集合,有可能达到任何其他不可解的集合配置,因为当集合是可解的时候就会发生这种情况。但我找不到证据或任何文件!有人能启发我吗?

【问题讨论】:

    标签: prolog sliding-tile-puzzle


    【解决方案1】:

    由于棋盘状态的数量有限(9!= 362,880),因此棋盘状态对之间的转换数量有限(9!^2 = 131,681,894,400 = 17 GB 的信息)。如此蛮力一次,永远快乐。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-08
      相关资源
      最近更新 更多