通过使用良好的状态空间然后搜索树来解决河内塔

Bab*_*loo 4 artificial-intelligence towers-of-hanoi

我想用一个好的"国家空间"解决"河内塔"的问题.使用适当的状态空间是一些AI技术所建议的方式.拥有一个良好的状态空间,我希望能够构建一个搜索树,然后使用一些策略,如"DFS"(深度优先搜索)来找到解决方案.

我的问题是,我只是不知道如何开发一个好的状态空间然后用它来构建一个搜索树.任何人都可以描述如何为河内塔问题创建一个州空间吗?然后告诉我如何为此构建搜索树?

rag*_*ius 7

我建议以下状态空间:

假设你有n个砖和3个塔,用0,1,2表示.例如,用三进制数表示当前状态(在n = 9的情况下):

987654321
001102020 (current state)
Run Code Online (Sandbox Code Playgroud)

意思是砖块9,8,5,3和1位于第0塔.1号塔中的砖7和6以及2号塔中的砖4和2.

这会给你一个大小为3 ^ n的状态空间,这个空间不是太大.

(这只是部分答案.但每个州字符串都对应一个合法的州.也就是说,

  1. 在每个塔中,砖块的大小将从底部到顶部消失,

  2. 两块不同的塔楼都不会出现砖块.

因此,我认为建议的状态空间很小.)