Algorithm 具有可变杆数的河内塔的通用解决方案?

Algorithm 具有可变杆数的河内塔的通用解决方案?,algorithm,optimization,puzzle,Algorithm,Optimization,Puzzle,给定D个圆盘、p个极点、圆盘的初始起始位置以及极点所需的最终目的地,我们如何编写问题的通用解决方案 比如说, 给定D=6和p=4,初始起始位置如下所示: 5 1 6 2 4 3 其中数字表示磁盘的半径,磁极从左到右编号为1-4,我们希望将所有磁盘堆叠在磁极1上 我们如何选择下一步行动? 解决方案为(手工编制): (格式:) 第一步很明显,将“4”移到“5”的顶部,因为它在最终解决方案中所需的位置 接下来,我们可能想移动下一个最大的数字,即“3”。但首先我们必须解开它,这意味着我们应该下

给定D个圆盘、p个极点、圆盘的初始起始位置以及极点所需的最终目的地,我们如何编写问题的通用解决方案

比如说,

给定D=6和p=4,初始起始位置如下所示:

5     1
6 2 4 3
其中数字表示磁盘的半径,磁极从左到右编号为1-4,我们希望将所有磁盘堆叠在磁极1上

我们如何选择下一步行动?

解决方案为(手工编制):

(格式:

第一步很明显,将“4”移到“5”的顶部,因为它在最终解决方案中所需的位置

接下来,我们可能想移动下一个最大的数字,即“3”。但首先我们必须解开它,这意味着我们应该下一步移动“1”。但是我们如何决定把它放在哪里呢

就我所知。我可以编写一个递归算法,尝试所有可能的位置,但我不确定这是否是最优的。

我们不能

更准确地说,对于4+PEG,证明最佳解决方案是一个开放的问题。对于一个简单的情况,有一个已知的非常好的算法,它被广泛认为是最优的,即磁盘堆位于一个桩上,并且您希望将整个磁盘堆转移到另一个桩上。然而,对于任意的起始位置,我们没有算法,甚至没有已知的启发式算法


如果我们确实提出了一个算法,那么这个开放问题可能会容易得多。

我们并不是不能。。。更重要的是我们没有一个有效的算法。对于合理数量的磁极/磁碟,广度优先搜索算法会起作用。我花了5到6个小时想出一个解决方案,它只适用于少量的磁极和磁极。真希望我在讨论这个问题之前就知道这一点:)谢谢你的帮助!不是不能,只是没人知道。
3 1
4 3
4 1
2 1
3 1