图灵机中的时间复杂度与空间复杂性

ami*_*mir 2 algorithm complexity-theory turing-machines time-complexity space-complexity

我认为图灵机的时间复杂性和空间复杂性的辩护是相同的,我无法区分它们.

请帮我.谢谢.

tem*_*def 9

对于图灵机,时间复杂度是在某些输入上启动机器时磁带移动的次数的度量.空间复杂度是指机器运行时写入磁带的单元格数.

TM的时间复杂度与其空间复杂性有关.特别是,如果TM的tue空间复杂度对于输入w是f(w),则其时间复杂度必须至少为f(w),因为磁带必须至少移动f(w)步骤以写出许多细胞.另外,如果TM具有磁带字母Γ和状态Q的集合,那么如果输入w上的TM的空间复杂度是f(w)并且TM在w上停止,则时间复杂度必须至多为| Q |Γ f(n).要看到这一点,请注意TM在其执行中的任何一点的配置都包含一串f(n)个磁带单元,每个磁带单元可以包含任何磁带符号,并且可以位于其中任何一个| Q |中.状态.

如果你看一下受限制的图灵机,如线性有界自动机(LBA),这是一种图灵机,它的磁带被限制在与输入大小成比例的空间,就会出现一个有趣的例子.尽管TM的空间复杂度限于O(n),但任何特定LBA的时间复杂度在输入的大小上都可以是指数的.

希望这可以帮助!

  • 由于您扫描了四个新单元格,空间复杂度将增加四倍。你回溯的三个没有贡献任何新的东西,因为空间已经被使用了。 (2认同)

Pet*_*der 5

时间复杂度是衡量多久的算法会产生一个答案.

空间复杂度衡量算法在过程中使用的内存量.

作为示例,考虑计算整数1 ... n的总和的问题.一个简单的算法可以工作如下:

procedure sum(n)
  total := 0
  for i = 1 to n
    total := total + a[n]
  return total
Run Code Online (Sandbox Code Playgroud)

该算法的时间复杂度为O(n),因为循环明显经历了n次迭代.另一方面,空间复杂度是O(1),因为我们需要的唯一内存是totali,它们与n无关.

  • 这些定义并没有真正改变.对于图灵机,时间只是暂停前状态变化次数的量度,空间复杂度就是所用磁带单元的数量. (2认同)