【问题标题】:disjoint pattern database for 15 puzzle15个谜题的不相交模式数据库
【发布时间】:2013-04-03 14:11:50
【问题描述】:

我有一些问题。 1.如何为15个拼图创建不相交的模式数据库? 2.模式数据库(5-5-5)或(6-3-2)是什么意思?

【问题讨论】:

  • 1) 您必须指定一个目标模式,然后构造可以从目标模式通过排列获得的所有模式的集合。哪一部分给你带来麻烦? 2) 我不知道; (5-5-5)(6-3-2) 是从哪里来的?
  • 请举例说明第1节。
  • 一个目标模式的例子?还是置换?或者通过排列获得的一组模式?
  • 所有这些的一个例子。事实上,我不明白如何指定目标模式。目标模式是随机模式还是目标?
  • 我在这个主题上写了a paper。也许对你有帮助。

标签: artificial-intelligence computer-science


【解决方案1】:

你试图一次做太多事情。考虑一下这个谜题的状态:

 1  2  3  4
 5 10  6  8
 9  7  _ 12
13 14 11 15

(其中_ 是空白区域)。 排列(在此上下文中)是与相邻图块交换空白空间:

 1  2  3  4
 5 10  6  8
 9  7 12  _
13 14 11 15

模式是状态的部分规范,其中(在此上下文中)某些图块可能未指定,如下所示:

 1  2  3  4
 5  *  *  *
 9  *  *  *
13  *  *  _

这个特定的模式看起来像一个目标模式,也就是说目标状态的部分规范。该模式的模式数据库是可以通过排列从该模式中获得的所有模式的集合,以及从该模式到达该状态所需的相应最小移动数。这是另一个目标模式:

 *  *  *  *
 *  6  7  8
 * 10 11 12
 * 14 15  _

请注意,这两个目标模式是不相交的(它们没有共同的图块),因此它们的模式数据库称为不相交的模式数据库

这有帮助吗?

【讨论】:

  • 在阅读 AI:AMA 时,我遇到了模式数据库。您能否建议任何进一步的材料,以帮助我更多地了解这一点?
  • @senseiwu:在看到这个问题之前,我想我从来没有听说过他们。我可能在 Wikipedia 上查到了它们。
【解决方案2】:

这意味着首先我们必须从

生成所有可能的排列
 1  2  3  4
 5  *  *  *
 9  *  *  *
 13  *  * _

例如它将是

 1  *  3  4           
 5  2  *  *
 9  *  *  *
 13  *  * _ 

 1  2  3  *
 5  *  *  4
 9  *  *  *
 13  *  * _

然后从这个排列运行 BFS 并尝试达到目标状态?

如何从这个数字 1,2,3,4,5,9,13 一些伪代码生成所有这些排列?

【讨论】:

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