河内塔楼的复杂性


20

对河内塔的复杂性存有以下疑问,我想请您发表评论。

  • 是NP吗? 尝试的答案:假设Peggy(提供者)解决了问题并将其提交给Victor(验证者)。Victor可以轻松地看到解决方案的最终状态是正确的(在线性时间内),但是他别无选择,只能遍历Peggy的每一个举动,以确保她没有做出非法举动。由于Peggy必须至少制作2 ^ |个磁盘| -1步(可证明),Victor也必须效仿。因此,Victor没有多项式时间验证(NP的定义),因此不能出现在NP中。

  • 在PSPACE中吗?似乎如此,但我想不出如何扩展上述推理。

  • 它是PSPACE完整的吗?似乎没有,但是我只有一个模糊的想法。ToH是特定实例的自动计划是PSPACE完整的。我认为,规划比ToH困难得多。

更新:输入= n,磁盘数;输出=每个步骤的磁盘配置。更新此内容后,我意识到此输入/输出格式不适合决策问题。对于这种问题,我不确定要获取NP,PSPACE等概念的正确形式。

更新#2:在Kaveh和Jeff发表评论后,我被迫使问题更加精确:

假设输入为一对整数,其中n是磁盘数。如果磁盘采取的移动顺序是以(磁盘编号,from-peg,to-peg)(磁盘编号,from-peg,to-peg)...的格式记下的,则从第一次移动到最后,以二进制编码,输出第i位。(n,i)ni

让我知道是否需要更详细的编码。我想卡夫的评论在这种情况下适用吗?


5
您能否定义河内塔的问题或链接到定义?
卡夫

1
PKG,我知道河内塔。我的意思是您想知道其复杂性的计算问题是什么?输入什么?输出是什么?
卡夫

@Kaveh:您的初衷尚未明确
PKG

抱歉。顺便说一句,有函数复杂性类,它们通常在名称之前或之后都有一个F,请检查复杂性动物园中的定义。
卡夫

1
那么整数也是输入的一部分吗?i
JeffE 2012年

Answers:


9

不,您描述的问题实际上很简单。高级别的原因是索引长度大约为n位,因此我们实际上可以承受在n中花费时间多项式的能力。inn

考虑以下相关问题:给定两个整数k,描述n盘难题的解中的第k个移动。输入大小为lg n + lg k < n + lg k,但实际上,只有n的最低有效位重要。 因此,即使lg k显着小于n,我们也可以在O log k 中的时间多项式中解决此问题。nkķnlgn+lgk<n+lgknlgknO(logk)

假设磁盘从到大小按递增顺序编号,并且钉的编号为0 =源,1 =目的地和2 =备用。让我们写出ķ = 2 p + 1 2 d一些整数pd。然后在转k0k=(2p+1)2dpdk

  • 如果为奇数,则磁盘d从钉p mod 3 移到钉p + 1 mod 3 d+nd(pmod3)((p+1)mod3)
  • d+nd(pmod3)((p1)mod3)

pdO(logk)k

现在假设您真的想要输出序列中的第个位,其中i是输入的一部分,而不是k。如果每个回合都使用相同数量的位进行编码,即lg niiklg(n+1)22kk=i/(lg(n+1)+4)lg(n+1)+4n

kmmk

M(m)=2M(m1)+(\#bits to record moving disk m)

(我假设我至少犯了一个一对一的错误或奇偶校验错误,但希望主要思想是明确的。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.