Les提供了一个简明而正确的答案:数学定义尽可能简明扼要,并且在图灵机的定义中明确包含无限条带将使其定义简明得多,因此我们没有。
这没有回答问题:为什么?当我们需要一个无限的磁带时,定义如何排除呢?
答案:我们不会。从某种意义上说,图灵机实际上不需要无限的磁带,它们的定义使这一点很清楚。
根据定义,图灵机的移动会将机器从一种配置转移到另一种配置。一个配置包含一个有限的字符串,我们将其视为磁带的有限片段。每一步都将磁带头移动一个位置或覆盖磁带头下面的符号。但是-这对于其操作至关重要:
ññ
对此进行改写的一种方法是:机器在无限的磁带上运行,该磁带完全充满空白,但其磁带头所在的有限片段除外。这就是大多数解释所说的。
换种说法是:机器在有限的磁带上运行,只要它的头从磁带的两端移开,机器就会用空白扩展。
这都是概念化机器运行方式的两种有效方法:在两种情况下,如果您实际上拥有一台这样运行的机器,它将正确地实现图灵机。
如果您只想教给学生图灵机的工作原理,那么选择哪种概念可能都不重要。
但是,我认为第一个概念化是一个错误,原因有两个:
- 这是不现实的。我们实际上不能用无限的磁带来构建机器。我们可以根据要求构建带有有限磁带的机器。
- 这是违反直觉的。我们不认为机器经常任意执行任务包含无限数量的资源。例如,我们不认为复印机包含无限数量的复印纸。图灵机为计算活动建模。他们模拟了如果我们用能够执行任意可编程计算的机器代替计算机(在发明时,它是一个在纸上进行计算的女人)会发生的情况。我们认为那个女人没有无限量的纸张。相反,我们假设将为她提供所需数量的纸张,并且我们认为这样做失败是环境的失败,而不是说这样的女人不可能存在。为什么不对机器做同样的事情?
- 它引起误导性结论。我看过很多。例如:
- 人们说图灵机实际上不能制造,而有限状态机可以。好吧,我们不能再建造任意的大型有限状态机,而只能向图灵机提供任意数量的磁带。
- 人们说图灵机不能正确地对计算机建模,而有限状态机却可以。这一点很重要:如果我们感兴趣的只是使用一台机器来确定输入语言,那么仅在其(固定)内部存储上运行的计算机就可以完全实现任何有限状态机,直到达到一定大小为止。它无法完全实现大多数Turing机器,因为其中许多机器都将耗尽内部存储空间。但是,这通常可以这样概括:计算机是有限状态机,这具有误导性:
- 它不能描绘大多数计算机编程的真实情况。确实,数据流编程实际上是基于有限状态机的,但是传统的命令式编程却不是。它使用的程序更接近Turing机器实例。
- 实际上,计算机还会与大小不固定的外部输入,输出和存储源进行交互。
- 图灵机不应该首先为计算机建模。他们为任意计算建模。
综上所述:使用或包含无限磁带的图灵机的思想旨在强调一个重要的技术要点,但这不一定是思考图灵机的最直观的方式,并且会引起某些不正确的结论。请谨慎使用。