【发布时间】:2010-09-19 03:46:48
【问题描述】:
什么是图灵机,为什么人们一直在提及它?我只需要我的 IBM PC 来进行计算!为什么有人关心这些机器?
【问题讨论】:
标签: computer-science theory turing-machines computability
什么是图灵机,为什么人们一直在提及它?我只需要我的 IBM PC 来进行计算!为什么有人关心这些机器?
【问题讨论】:
标签: computer-science theory turing-machines computability
图灵机的惊人之处在于,它是现有的最基本的计算机,它可以执行与当今任何计算机一样强大的计算。没有图灵机无法解决的计算机问题。事实上,如果您想这样看,您的计算机就是 TM。
艾伦·图灵发明了 TM,并使用它的某个版本来解码纳粹加密机器 Enigma。
因此可以得出结论,它是一台非常强大的机器,在理论计算机科学中有很多应用。 (顺便说一句,这也是一个超级有趣和刺激的主题)。
【讨论】:
图灵机是艾伦·图灵发明的一种理论计算机,作为数学计算的理想模型,基本上它是一种简单的计算机形式,由磁带(一条纸带组成),有一个head,可以读取符号,在原地写入新符号,然后向左或向右移动。
说图灵机处于某个状态,然后一个程序就是一个transitions的列表,有一个当前状态,头下有个符号,应该在磁带上写什么,下一个状态是什么,磁头应该移动到哪里。
这是一个Basic Turing Machine,用 JavaScript 实现...
还有一张草图:
【讨论】:
我只需要我的 IBM PC 来进行计算!
其他人没有指出的事情:您的 IBM PC 是图灵机。更准确地说,它等同于它,在某种意义上,您的 PC 可以做的任何事情,图灵机都可以做,而图灵机可以做的任何事情,您的 PC 都可以。
具体来说,图灵机是一种计算模型,它完全捕捉了可计算性的概念,同时保持简单易懂,无需您 PC 架构的所有具体细节。
(普遍接受的)“Church-Turing 论点”断言,每个设备或计算模型都不比图灵机强大。因此,许多理论问题(例如 P 和 NP 等类,“多项式时间算法”的概念等)都以图灵机的形式正式表述,当然,它们也可以适用于其他模型:好吧。 (例如,有时用 lambda 演算、组合逻辑或其他任何东西来考虑计算会很方便……它们在能力上彼此相当,对你的 IBM PC 也是如此。)
所以你去吧:人们谈论图灵机是因为它是一种精确且完全指定的方式来说明“计算机”是什么,而不必描述 CPU 架构的每个细节、它的约束等等。
【讨论】:
图灵机相当于一种算法。接受字符串时停止,不接受字符串时拒绝或进入无限循环。
磁带充当存储器,转换规则充当“if then else”条件
【讨论】:
自然界中实际上有图灵机的例子。具体来说,将 RNA 转化为蛋白质的核糖体实现了图灵机。
首先,一些背景:
核糖体的操作很简单:
如您所见,这是一个非常简单的图灵机,它执行最复杂的操作——自然本身!
【讨论】:
除了 Wikipedia 条目之外,您可能还想阅读 Charles Petzold 的《The Annotated Turing》一书。副标题为“Alan Turing 关于可计算性和图灵机的历史论文导览”,它包括完整的论文,分为多个块,包含许多关于该主题的论述,包括历史观点。
【讨论】:
图灵机是一种理论机器,可用于推理计算机的局限性。简单地说,它是一台具有无限内存的虚拟计算机。
我们关心图灵机,因为它们可以帮助我们发现真实计算机(例如您的 IBM PC)无法完成的任务。如果图灵机不可能执行特定的计算(例如决定Halting Problem),那么您的IBM PC 不可能执行相同的计算。
【讨论】:
为什么设计飞机的人会关心莱特兄弟,或者让固定翼飞机飞行的“升力”背后的科学?
艾伦·图灵被誉为现代计算之父。图灵机是所有现代计算机的先驱。
可计算性理论是我在大学里最难的一门课,但我很高兴我上了这门课。它让我想到了我永远不会有的事情,或者以我永远不会有的方式思考事情,这些都是好事。
【讨论】:
图灵机之所以如此重要,与研究经典计算科学或计算理论类型的东西有关。它基本上是关于分析计算机的一般属性,例如计算机具有哪些理论能力和局限性,以及我们在谈论“计算”时的含义。
The Halting Problem 是可以使用图灵机研究的一个例子。虽然这个问题有点像学术练习,但它很容易在现实世界中产生切实的影响。为什么不编写一个调试器,它会简单地告诉您您的程序是否包含任何无限循环?停止问题确定了解决一般情况下的这个问题是不可能的。
图灵机的研究也有助于研究语言语法及其类,从而导致编程语言的发展。术语“正则表达式”的出现是因为它们是regular grammar,对这些语法(计算理论的一部分)的研究将告诉您更多关于正则表达式可以解决哪些问题以及它们不能解决的问题。例如,传统的正则表达式语法将无法解决以下问题:在输入中解析一些 N 个 'a' 字符,然后解析相同数量 N 个 char 'b'。
如果您对这类事情的好文章感兴趣,请查看 Michael Sipser 的 Introduction to the Theory of Computation。挺好的。
【讨论】:
图灵机是一种抽象机器,它可以对一系列数据进行操作,并且可以根据某种逻辑在操作时改变自己的状态以及数据。
这是一个构成算法、存储程序和一般计算基础的概念。如果您正在处理算法、状态、数据等,它提供了很好的见解和抽象。
对于大多数人来说,值得深思。
【讨论】:
图灵机是一种能够计算的抽象机器。
来自维基百科:
图灵机是基本的抽象符号操作设备,尽管它们很简单,但可以适应模拟任何计算机算法的逻辑。艾伦·图灵在 1936 年描述了它们。图灵机并不是一种实用的计算技术,而是一种关于机械计算极限的思想实验。因此,它们实际上并没有被建造。研究它们的抽象属性可以对计算机科学和复杂性理论产生许多见解。
能够模拟任何其他图灵机的图灵机称为通用图灵机(UTM,或简称为通用机)。 Alonzo Church 引入了一个具有类似“普遍”性质的更面向数学的定义,他在 lambda 演算方面的工作与 Turing 在正式的计算理论中交织在一起,称为 Church-Turing 论文。论文指出,图灵机确实捕捉到了逻辑和数学中有效方法的非正式概念,并提供了算法或“机械过程”的精确定义。
【讨论】: