图灵机中的时间复杂度与空间复杂度
Posted
技术标签:
【中文标题】图灵机中的时间复杂度与空间复杂度【英文标题】:Time complexity versus space complexity in Turing machines 【发布时间】:2011-10-31 12:27:42 【问题描述】:我认为图灵机的时间复杂度和空间复杂度的定义是相同的,我无法区分 他们之间。
请帮助我。谢谢。
【问题讨论】:
简单的 wiki 搜索会回答您的问题。 我搜索了但我不明白! 【参考方案1】:时间复杂度是衡量算法产生答案所需的多长时间。
空间复杂度是衡量算法在处理过程中使用多少内存的指标。
例如,考虑计算整数 1..n 之和的问题。一个简单的算法可以像这样工作:
procedure sum(n)
total := 0
for i = 1 to n
total := total + a[n]
return total
该算法的时间复杂度为 O(n),因为循环显然要经过 n 次迭代。另一方面,空间复杂度为 O(1),因为我们需要的唯一内存是 total 和 i,它们独立于 n.
【讨论】:
我的意思是关于图灵机,而不是对空间和时间复杂度的一般定义。请在这种情况下给我解释一下! 如果你的问题是关于图灵机的,你为什么不在你的问题中提到它? 定义并没有真正改变。对于图灵机来说,时间只是停机前状态变化次数的量度,空间复杂度只是使用的磁带单元数。 哦,这就是我想要的东西。请多解释。 @amir amir:你还想知道什么?我相信我已经尽可能地解释了它。如果您不了解图灵机是什么,或者一般来说复杂性是什么,请在此网站上搜索这些问题的答案,并询问您是否找不到任何东西。【参考方案2】:对于图灵机,时间复杂度是衡量当机器在某些输入上启动时磁带移动的次数。空间复杂度是指机器运行时写入磁带的多少个单元。
TM 的时间复杂度与其空间复杂度有关。特别是,如果输入 w 的 TM 的 tue 空间复杂度为 f(w),那么它的时间复杂度必须至少为 f(w),因为磁带必须移动至少 f(w) 步才能写出那么多细胞。此外,如果 TM 具有带字母 Γ 和状态集 Q,那么如果 TM 在输入 w 上的空间复杂度为 f(w) 并且 TM 在 w 上停止,则时间复杂度必须至多为 |Q|Γ f(n)。要看到这一点,请注意 TM 在其执行过程中的任何时候的配置都由一串 f(n) 个磁带单元组成,每个磁带单元可以包含任何磁带符号,并且可以在它的任何 |Q| 之一中。州。
如果您查看受限制的图灵机,例如linear bounded automaton (LBA),就会出现这种区别的一个有趣示例,这是一种图灵机,其磁带的空间限制与输入大小成正比。虽然 TM 的空间复杂度被限制在 O(n),但任何特定 LBA 的时间复杂度都可以是输入大小的指数。
希望这会有所帮助!
【讨论】:
谢谢,您的意思是空间复杂度计算图灵机磁带中不为空的单元数吗?你的意思是时间复杂度计算头部运动的次数吗? 空间复杂度是磁头曾经读取过的单元格总数,包括读取或写入的包含空白的单元格。请注意,机器实际上需要扫描单元格。是的,时间复杂度是磁头移动的总次数。 谢谢,例如,如果头部向右走 4 个单元格,然后向左走 3 个单元格,我们是否将空间复杂度增加 7 步,或者我们是否将空间复杂度增加 1 步? 空间复杂度将增加四倍,因为您扫描了四个新单元格。您回溯的三个没有贡献任何新内容,因为该空间已被使用。 @cuppajoeman 通常在 TM Land 中,n 指的是输入字符的长度。以上是关于图灵机中的时间复杂度与空间复杂度的主要内容,如果未能解决你的问题,请参考以下文章