运行 程序在确定性和非确定性图灵机上的时间
Running time of a program on deterministic and non-deterministic Turing machine
我发现了以下语句:
如果非确定性图灵机的程序 P 解决了一个由多项式 p(S) 限制的时间的决策问题,其中 S 大小的输入,那么在确定性图灵机上它可以是 运行 ,并且将在时间限制内找到解决方案 O(2^p(S)).
我的问题是这个说法是否正确,我们如何证明呢?确切的值 2 在这里是可疑的。
确定性图灵机只是模拟非确定性图灵机。每次 NDTM 分叉时,DTM 都会推送一个分支并占用另一个分支。当它沿着一个可能的链进行了 p(S) 步而没有达到接受状态时,它回溯到前一个分支点。
这假设 NTDM 只做双向分支。如果它最多可以占用 k 个分支,将其重写为只做双向分支的机器,将其 运行 时间增加到 O(log_2(k) p(S)),这使得它技术上仍然是 O(p(S))。这里有点草率。如果 x > 1,则 O(2^{x p(S)} 大于 O(2^{p(S)}),因此尽管我们可以忽略与完整表达式相乘的常数因子,但我们不能在指数中忽略它们.
我发现了以下语句:
如果非确定性图灵机的程序 P 解决了一个由多项式 p(S) 限制的时间的决策问题,其中 S 大小的输入,那么在确定性图灵机上它可以是 运行 ,并且将在时间限制内找到解决方案 O(2^p(S)).
我的问题是这个说法是否正确,我们如何证明呢?确切的值 2 在这里是可疑的。
确定性图灵机只是模拟非确定性图灵机。每次 NDTM 分叉时,DTM 都会推送一个分支并占用另一个分支。当它沿着一个可能的链进行了 p(S) 步而没有达到接受状态时,它回溯到前一个分支点。
这假设 NTDM 只做双向分支。如果它最多可以占用 k 个分支,将其重写为只做双向分支的机器,将其 运行 时间增加到 O(log_2(k) p(S)),这使得它技术上仍然是 O(p(S))。这里有点草率。如果 x > 1,则 O(2^{x p(S)} 大于 O(2^{p(S)}),因此尽管我们可以忽略与完整表达式相乘的常数因子,但我们不能在指数中忽略它们.