如何使用人工智能技术解决河内塔?

时间:2016-10-06 09:25:41

标签: artificial-intelligence towers-of-hanoi

我知道递归解决方案,并且我阅读了与迭代解决方案相关的论文。

有人能解释我如何使用人工智能技术解决像河内塔这样的问题吗?

3 个答案:

答案 0 :(得分:1)

另一种解决方案是使用分层规划器。在分层规划中,可以轻松指定程序性知识。河内塔的制胜策略也很容易被编码为这样的问题,如下文所述:

@InProceedings{Alford09TranslatingHTNsToPDDL,
Title      = {Translating {HTNs} to {PDDL}: A Small Amount of Domain Knowledge Can Go a Long Way},
Author     = {Ron Alford and Ugur Kuter and Dana S. Nau},
Booktitle  = {Proceedings of the 21st International Joint Conference on Artificial Intelligence ({IJCAI} 2009)},
Year       = {2009},
Pages      = {1629--1634},
Publisher  = {{AAAI} Press}}

答案 1 :(得分:0)

一种非常常见的方法是通过模式数据库生成启发式方法。这是关于该主题的更着名论文之一:https://www.aaai.org/Papers/JAIR/Vol22/JAIR-2209.pdf

有关如何入门的问题对于此网站来说过于宽泛。一个更好的入门方法是使用google scholar之类的东西来查找与该主题相关的文章,然后询问您遇到的特定解决方案遇到的任何问题。

答案 2 :(得分:0)

他们看待它的方法是让基本的AI算法工作,然后重做它以便自己学习。

  1. 首先 - 我们有三座塔A,B,C。所以只有六个动作可能: A-> B,A-> C,B-> A,B-> C,C-> A,C-> B, 我们称之为AB AC BA BC CA CB。

  2. 创建决策树,其中每个节点代表一个州。每个节点将有N个子节点用于N个可能的运算符(例如AB用于从A移动到B,BC用于从B移动到C等等)。这样我们就创建了一个决策树。

  3. 在这个阶段,我们可以使用基本广度优先搜索(BFS)算法来确定我们是否可以在N步骤中解决这个难题。 BFS的问题在于,当河内增长时,它将消耗极大的内存和时间。但不用担心。

  4. 我们的树有BFS算法。我们找到了3个光盘,4个光盘,5个光盘的河内解决方案。 BFS应该向我们展示什么是最佳途径。

  5. 现在这里的路径值得关注。可能存在3,4,5和6个光盘之间的模式。现在我认为我们应该考虑一下 a)模式识别算法,以确定是否有重复自身的元素,并可能从中构建一些东西。 b)使用遗传编程来确定软件是否可以提供适用于6盘算法的3碟,4碟,5碟的算法:我们已经有BFS可以作为我们遗传编程的测试人员算法