更改

跳到导航 跳到搜索
删除7,733字节 、 2020年11月24日 (二) 18:18
无编辑摘要
第1行: 第1行: −
此词条暂由彩云小译翻译,翻译字数共5995,未经人工整理和审校,带来阅读不便,请见谅。
+
此词条暂由Solitude初步翻译。
    
{{other uses}}
 
{{other uses}}
第19行: 第19行:  
A Turing machine is a mathematical model of computation that defines an abstract machine, which manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, given any computer algorithm, a Turing machine capable of simulating that algorithm's logic can be constructed.
 
A Turing machine is a mathematical model of computation that defines an abstract machine, which manipulates symbols on a strip of tape according to a table of rules. Despite the model's simplicity, given any computer algorithm, a Turing machine capable of simulating that algorithm's logic can be constructed.
   −
图灵机是一个数学计算模型,它定义了一个抽象机器,根据一张规则表在一条带子上操纵符号。尽管模型简单,给定任何计算机算法,一个能够模拟算法逻辑的图灵机可以被构造出来。
+
图灵机是一个’’’<font color=’’#ff8000’’>数学计算模型mathematical model of computation</font>’’’,它定义了一个抽象的机器,根据规则表在磁带上上操纵符号。尽管这个模型简单,但给定任何’’’<font color=’’#ff8000’’>计算机算法computer algorithm </font>’’’,都可以构造一个能够模拟算法逻辑的图灵机。
      第27行: 第27行:  
The machine operates on an infinite memory tape divided into discrete "cells". The machine positions its "head" over a cell and "reads" or "scans" the symbol there. Then, as per the symbol and the machine's own present state in a "finite table" of user-specified instructions, the machine (i) writes a symbol (e.g., a digit or a letter from a finite alphabet) in the cell (some models allow symbol erasure or no writing), then (ii) either moves the tape one cell left or right (some models allow no motion, some models move the head), then (iii) (as determined by the observed symbol and the machine's own state in the table) either proceeds to a subsequent instruction or halts the computation.
 
The machine operates on an infinite memory tape divided into discrete "cells". The machine positions its "head" over a cell and "reads" or "scans" the symbol there. Then, as per the symbol and the machine's own present state in a "finite table" of user-specified instructions, the machine (i) writes a symbol (e.g., a digit or a letter from a finite alphabet) in the cell (some models allow symbol erasure or no writing), then (ii) either moves the tape one cell left or right (some models allow no motion, some models move the head), then (iii) (as determined by the observed symbol and the machine's own state in the table) either proceeds to a subsequent instruction or halts the computation.
   −
这台机器在一个无限大的存储磁带上运行,磁带被分割成若干个独立的“单元”。机器将它的“头”定位在一个单元格上,并“读取”或“扫描”那里的符号。然后,根据符号和机器本身在用户指定指令的“有限表”中的现状,机器(i)在单元格中写入一个符号(例如,数字或有限字母表中的一个字母)(有些模型允许擦除符号或不写入) ,然后(ii)将磁带向左或向右移动一个单元格(有些模型不允许运动,有些模型移动头部) ,然后(iii)(根据观察到的符号和机器在表中的自身状态确定)继续执行后续指令或停止计算。
+
机器在一个无限大的存储磁带上运行,磁带被分割成若干个离散的“单元”。机器将它的“头”定位在一个单元上,并“读取”或“扫描”那里的符号。然后,根据符号和机器本身在用户指定指令的“有限表”中的现状,机器(i)将符号(例如,数字或有限字母表中的字母)写入单元(某些型号允许擦除符号或不写入字符),然后(ii)将磁带向左或向右移动一个单元格(有些模型允许不移动,有些模型允许移动磁头) ,然后(iii)(根据观察到的符号和机器自身在表中的状态)继续执行后续指令或停止计算。
      第33行: 第33行:  
The Turing machine was invented in 1936 by [[Alan Turing]],<ref name=Hodges-2012>{{cite book| first=Andrew | last=Hodges | authorlink =Andrew Hodges | year = 2012 | title =Alan Turing: The Enigma |publisher =[[Princeton University Press]] |isbn=978-0-691-15564-7| edition=The Centenary }}</ref><ref>The idea came to him in mid-1935 (perhaps, see more in the History section) after a question posed by [[M. H. A. Newman]] in his lectures: "Was there a definite method, or as Newman put it, a "mechanical process"which could be applied to a mathematical statement, and which would come up with the answer as to whether it was provable" (Hodges 1983:93). Turing submitted his paper on 31 May 1936 to the London Mathematical Society for its ''Proceedings'' (cf. Hodges 1983:112), but it was published in early 1937 and offprints were available in February 1937 (cf. Hodges 1983:129).</ref> who called it an "a-machine" (automatic machine).<ref>See footnote in Davis 2000:151.</ref> With this model, Turing was able to answer two questions in the negative: (1) does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task); similarly, (2) does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol.<ref>Turing 1936 in ''The Undecidable'' 1965:132-134; Turing's definition of "circular" is found on page 119.</ref><ref>{{cite journal | url=http://plms.oxfordjournals.org/content/s2-42/1.toc | first=Alan Mathison |last=Turing | title=On Computable Numbers, with an Application to the Entscheidungsproblem | journal=Proceedings of the London Mathematical Society, Series 2 | volume=42 | number=1 | pages=230–265 | year=1937 | doi=10.1112/plms/s2-42.1.230 }} — Reprint at: {{cite web
 
The Turing machine was invented in 1936 by [[Alan Turing]],<ref name=Hodges-2012>{{cite book| first=Andrew | last=Hodges | authorlink =Andrew Hodges | year = 2012 | title =Alan Turing: The Enigma |publisher =[[Princeton University Press]] |isbn=978-0-691-15564-7| edition=The Centenary }}</ref><ref>The idea came to him in mid-1935 (perhaps, see more in the History section) after a question posed by [[M. H. A. Newman]] in his lectures: "Was there a definite method, or as Newman put it, a "mechanical process"which could be applied to a mathematical statement, and which would come up with the answer as to whether it was provable" (Hodges 1983:93). Turing submitted his paper on 31 May 1936 to the London Mathematical Society for its ''Proceedings'' (cf. Hodges 1983:112), but it was published in early 1937 and offprints were available in February 1937 (cf. Hodges 1983:129).</ref> who called it an "a-machine" (automatic machine).<ref>See footnote in Davis 2000:151.</ref> With this model, Turing was able to answer two questions in the negative: (1) does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task); similarly, (2) does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol.<ref>Turing 1936 in ''The Undecidable'' 1965:132-134; Turing's definition of "circular" is found on page 119.</ref><ref>{{cite journal | url=http://plms.oxfordjournals.org/content/s2-42/1.toc | first=Alan Mathison |last=Turing | title=On Computable Numbers, with an Application to the Entscheidungsproblem | journal=Proceedings of the London Mathematical Society, Series 2 | volume=42 | number=1 | pages=230–265 | year=1937 | doi=10.1112/plms/s2-42.1.230 }} — Reprint at: {{cite web
   −
The Turing machine was invented in 1936 by Alan Turing, who called it an "a-machine" (automatic machine). With this model, Turing was able to answer two questions in the negative: (1) does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task); similarly, (2) does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol. Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the uncomputability of the Entscheidungsproblem ('decision problem').
+
|url=http://www.turingarchive.org/viewer/?id=466&title=01e|accessdate=9 July 2020|first=Alan |last=Turing |title=On computable numbers, with an application to the Entscheidungsproblem|website=The Turing Digital Archive }}</ref> Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the [[computability|uncomputability]] of the ''[[Entscheidungsproblem]]'' ('decision problem').<ref>Turing 1936 in ''The Undecidable'' 1965:145</ref>
 
  −
图灵机是1936年阿兰 · 图灵发明的,他称之为“自动机器”。通过这个模型,图灵能够回答两个否定的问题: (1)是否存在一台机器,可以确定其磁带上的任意机器是否是“循环”的(例如,死机,或无法继续其计算任务) ; 同样地,(2)是否存在一台机器,可以确定其磁带上的任意机器是否曾打印给定的符号。因此,通过对一个可以任意计算的非常简单的装置进行数学描述,他能够证明计算的一般性质,特别是可判定性的不可计算性(“决策问题”)。
     −
|url=http://www.turingarchive.org/viewer/?id=466&title=01e|accessdate=9 July 2020|first=Alan |last=Turing |title=On computable numbers, with an application to the Entscheidungsproblem|website=The Turing Digital Archive }}</ref> Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the [[computability|uncomputability]] of the ''[[Entscheidungsproblem]]'' ('decision problem').<ref>Turing 1936 in ''The Undecidable'' 1965:145</ref>
+
The Turing machine was invented in 1936 by Alan Turing, who called it an "a-machine" (automatic machine). With this model, Turing was able to answer two questions in the negative: (1) does a machine exist that can determine whether any arbitrary machine on its tape is "circular" (e.g., freezes, or fails to continue its computational task); similarly, (2) does a machine exist that can determine whether any arbitrary machine on its tape ever prints a given symbol. Thus by providing a mathematical description of a very simple device capable of arbitrary computations, he was able to prove properties of computation in general—and in particular, the uncomputability of the ’’’<font color=’’#ff8000’’> 可判定性Entscheidungsproblem </font>’’’ ('decision problem').
    +
图灵机是1936年由阿兰 · 图灵Alan Turing发明的,他称之为“自动机”。通过这个模型,图灵能够否定地回答两个问题: (1)是否存在一台机器,能够确定其磁带上的任意机器是否是“循环”的(例如,死机,或无法继续其计算任务) ; 同样地,(2)是否存在一台机器,可以确定其磁带上的任意机器是否曾打印过给定的符号。因此,通过提供可以进行任意计算的非常简单的装置的数学描述,他能够证明计算的一般性质,尤其是可判定性(“决策问题”)的不可计算性。
       
Turing machines proved the existence of fundamental limitations on the power of mechanical computation. While they can express arbitrary computations, their minimalist design makes them unsuitable for computation in practice: real-world computers are based on different designs that, unlike Turing machines, use random-access memory.
 
Turing machines proved the existence of fundamental limitations on the power of mechanical computation. While they can express arbitrary computations, their minimalist design makes them unsuitable for computation in practice: real-world computers are based on different designs that, unlike Turing machines, use random-access memory.
   −
图灵机证明了机械计算能力的基本限制的存在。虽然它们可以表达任意的计算,但是它们的最小化设计使得它们在实践中不适合计算: 现实世界的计算机是基于不同的设计,不像图灵机,使用随机存取存储器。
+
图灵机证明了机械计算能力的基本限制的存在。虽然它们可以表达任意的计算,但是它们的最小化设计使它们不适合在实践中计算: 现实世界的计算机是基于不同的设计,与图灵机不同的是,它们使用’’’<font color=’’#ff8000’’>随机存取存储器random-access memory </font>’’’。
    
Turing machines proved the existence of fundamental limitations on the power of mechanical computation.<ref>Sipser 2006:137 observes that "A Turing machine can do everything that a real computer can do. Nevertheless, even a Turing machine cannot solve certain problems. In a very real sense, these problems are beyond the theoretical limits of computation."</ref> While they can express arbitrary computations, their minimalist design makes them unsuitable for computation in practice: real-world [[computer]]s are based on different designs that, unlike Turing machines, use [[random-access memory]].
 
Turing machines proved the existence of fundamental limitations on the power of mechanical computation.<ref>Sipser 2006:137 observes that "A Turing machine can do everything that a real computer can do. Nevertheless, even a Turing machine cannot solve certain problems. In a very real sense, these problems are beyond the theoretical limits of computation."</ref> While they can express arbitrary computations, their minimalist design makes them unsuitable for computation in practice: real-world [[computer]]s are based on different designs that, unlike Turing machines, use [[random-access memory]].
   −
 
+
[[Turing completeness]] is the ability for a system of instructions to simulate a Turing machine. A programming language that is Turing complete is theoretically capable of expressing all tasks accomplishable by computers; nearly all programming languages are Turing complete if the limitations of finite memory are ignored.
    
Turing completeness is the ability for a system of instructions to simulate a Turing machine. A programming language that is Turing complete is theoretically capable of expressing all tasks accomplishable by computers; nearly all programming languages are Turing complete if the limitations of finite memory are ignored.
 
Turing completeness is the ability for a system of instructions to simulate a Turing machine. A programming language that is Turing complete is theoretically capable of expressing all tasks accomplishable by computers; nearly all programming languages are Turing complete if the limitations of finite memory are ignored.
   −
图灵完备性是指令系统模拟图灵机的能力。图灵完备的编程语言理论上能够表达计算机完成的所有任务; 如果忽略有限内存的限制,几乎所有的编程语言都是图灵完备的。
+
’’’<font color=’’#ff8000’’>图灵完备性 Turing completeness</font>’’’是一个指令系统模拟图灵机的能力。一个图灵完备的编程语言理论上能够表达所有计算机可以完成的任务; 如果忽略有限内存的限制,几乎所有的编程语言都是图灵完备的。
 
  −
[[Turing completeness]] is the ability for a system of instructions to simulate a Turing machine. A programming language that is Turing complete is theoretically capable of expressing all tasks accomplishable by computers; nearly all programming languages are Turing complete if the limitations of finite memory are ignored.
  −
 
  −
 
      
==Overview==
 
==Overview==
 
+
总览
A Turing machine is a general example of a central processing unit (CPU) that controls all data manipulation done by a computer, with the canonical machine using sequential memory to store data. More specifically, it is a machine (automaton) capable of enumerating some arbitrary subset of valid strings of an alphabet; these strings are part of a recursively enumerable set. A Turing machine has a tape of infinite length on which it can perform read and write operations.
  −
 
  −
图灵机是中央处理器(CPU)的一个通用例子,它控制计算机进行的所有数据操作,规范机器使用顺序存储器存储数据。更具体地说,它是一台机器(自动机) ,能够枚举字母表中有效字符串的任意子集; 这些字符串是字母递归可枚举集合的一部分。图灵机有一个无限长的磁带,它可以在其上执行读写操作。
      
A Turing machine is a general example of a [[central processing unit]] (CPU) that controls all data manipulation done by a computer, with the canonical machine using sequential memory to store data. More specifically, it is a machine ([[automaton]]) capable of [[enumeration|enumerating]] some arbitrary subset of valid strings of an [[Alphabet (formal languages)|alphabet]]; these strings are part of a [[recursively enumerable set]]. A Turing machine has a tape of infinite length on which it can perform read and write operations.
 
A Turing machine is a general example of a [[central processing unit]] (CPU) that controls all data manipulation done by a computer, with the canonical machine using sequential memory to store data. More specifically, it is a machine ([[automaton]]) capable of [[enumeration|enumerating]] some arbitrary subset of valid strings of an [[Alphabet (formal languages)|alphabet]]; these strings are part of a [[recursively enumerable set]]. A Turing machine has a tape of infinite length on which it can perform read and write operations.
    +
A Turing machine is a general example of a central processing unit (CPU) that controls all data manipulation done by a computer, with the canonical machine using sequential memory to store data. More specifically, it is a machine (automaton) capable of enumerating some arbitrary subset of valid strings of an alphabet; these strings are part of a recursively enumerable set. A Turing machine has a tape of infinite length on which it can perform read and write operations.
   −
 
+
图灵机是’’’<font color=’’#ff8000’’> 中央处理器central processing unit</font>’’’(CPU)的一个通用例子,它控制着计算机进行的所有数据操作,规范机器使用顺序存储器来存储数据。更具体地说,它是一种能够枚举字母表有效字符串的一些任意子集的机器(自动机); 这些字符串是字母递归可枚举集的一部分。图灵机有一卷无限长的磁带,它可以在上面执行读写操作。
Assuming a black box, the Turing machine cannot know whether it will eventually enumerate any one specific string of the subset with a given program. This is due to the fact that the halting problem is unsolvable, which has major implications for the theoretical limits of computing.
  −
 
  −
假设是一个黑盒,图灵机不能知道它最终是否会枚举给定程序的子集的任何一个特定字符串。这是因为停机问题是不可解的,这对计算的理论极限有重大的影响。
      
Assuming a [[black box]], the Turing machine cannot know whether it will eventually enumerate any one specific string of the subset with a given program. This is due to the fact that the [[halting problem]] is unsolvable, which has major implications for the theoretical limits of computing.
 
Assuming a [[black box]], the Turing machine cannot know whether it will eventually enumerate any one specific string of the subset with a given program. This is due to the fact that the [[halting problem]] is unsolvable, which has major implications for the theoretical limits of computing.
    +
Assuming a black box, the Turing machine cannot know whether it will eventually enumerate any one specific string of the subset with a given program. This is due to the fact that the halting problem is unsolvable, which has major implications for the theoretical limits of computing.
   −
 
+
假设有一个’’’<font color=’’#ff8000’’> 黑匣子black box</font>’’’,图灵机无法知道它最终是否会用给定的程序枚举出子集中的任何一个特定字符串。这是由于’’’<font color=’’#ff8000’’> 停机问题halting problem </font>’’’是不可解的,这对计算的理论极限有重大的影响。
The Turing machine is capable of processing an unrestricted grammar, which further implies that it is capable of robustly evaluating first-order logic in an infinite number of ways. This is famously demonstrated through lambda calculus.
  −
 
  −
图灵机能够处理无限制文法,这进一步意味着它能够以无限的方式对一阶逻辑进行稳健的评估。这一点通过 lambda 演算得到了著名的证明。
      
The Turing machine is capable of processing an [[unrestricted grammar]], which further implies that it is capable of robustly evaluating first-order logic in an infinite number of ways. This is famously demonstrated through [[lambda calculus]].
 
The Turing machine is capable of processing an [[unrestricted grammar]], which further implies that it is capable of robustly evaluating first-order logic in an infinite number of ways. This is famously demonstrated through [[lambda calculus]].
    +
The Turing machine is capable of processing an unrestricted grammar, which further implies that it is capable of robustly evaluating first-order logic in an infinite number of ways. This is famously demonstrated through lambda calculus.
   −
 
+
图灵机能够处理不受限制的语法,这进一步意味着它能够以无限多的方式稳健地评价一阶逻辑。通过λ演算可以证明这一点。
A Turing machine that is able to simulate any other Turing machine is called a universal Turing machine (UTM, or simply a universal machine). A more mathematically oriented definition with a similar "universal" nature was introduced by Alonzo Church, whose work on lambda calculus intertwined with Turing's in a formal theory of computation known as the Church–Turing thesis. The thesis states that Turing machines indeed capture the informal notion of effective methods in logic and mathematics, and provide a precise definition of an algorithm or "mechanical procedure". Studying their  abstract properties yields many insights into computer science and complexity theory.
  −
 
  −
能够模拟任何其他图灵机的图灵机被称为图灵通用图灵机(UTM,或者简单地称为通用机器)。阿隆佐 · 丘奇提出了一个更加以数学为导向的定义,具有类似的“普遍性”。丘奇在一个被称为丘奇-图灵论文的正式计算理论中,将关于 λ 微积分的工作与图灵的工作相互交织。论文指出,图灵机确实捕获了逻辑和数学中有效方法的非正式概念,并提供了一个算法或“机械过程”的精确定义。研究它们的抽象性质可以使我们对计算机科学和复杂性理论有更深入的了解。
      
A Turing machine that is able to simulate any other Turing machine is called a [[universal Turing machine]] (UTM, or simply a universal machine). A more mathematically oriented definition with a similar "universal" nature was introduced by [[Alonzo Church]], whose work on lambda calculus intertwined with Turing's in a formal theory of [[computation]] known as the [[Church–Turing thesis]]. The thesis states that Turing machines indeed capture the informal notion of [[effective method]]s in [[logic]] and [[mathematics]], and provide a precise definition of an [[algorithm]] or "mechanical procedure". Studying their  [[abstract machine|abstract properties]] yields many insights into [[computer science]] and [[computational complexity theory|complexity theory]].
 
A Turing machine that is able to simulate any other Turing machine is called a [[universal Turing machine]] (UTM, or simply a universal machine). A more mathematically oriented definition with a similar "universal" nature was introduced by [[Alonzo Church]], whose work on lambda calculus intertwined with Turing's in a formal theory of [[computation]] known as the [[Church–Turing thesis]]. The thesis states that Turing machines indeed capture the informal notion of [[effective method]]s in [[logic]] and [[mathematics]], and provide a precise definition of an [[algorithm]] or "mechanical procedure". Studying their  [[abstract machine|abstract properties]] yields many insights into [[computer science]] and [[computational complexity theory|complexity theory]].
    +
A Turing machine that is able to simulate any other Turing machine is called a universal Turing machine (UTM, or simply a universal machine). A more mathematically oriented definition with a similar "universal" nature was introduced by Alonzo Church, whose work on lambda calculus intertwined with Turing's in a formal theory of computation known as the Church–Turing thesis. The thesis states that Turing machines indeed capture the informal notion of effective methods in logic and mathematics, and provide a precise definition of an algorithm or "mechanical procedure". Studying their  abstract properties yields many insights into computer science and complexity theory.
    +
能够模拟任何其他图灵机的图灵机被称为图灵’’’<font color=’’#ff8000’’> 通用图灵机universal Turing machine</font>’’’(UTM,或简称为通用机)。阿隆佐 · 丘奇Alonzo Church提出了一个具有更强数学取向的定义,具有类似的“普遍性”。他关于 λ 微积分的工作与图灵的工作相互交织,形成了一个被称为“丘奇-图灵理论”的计算形式理论。该论文指出,图灵机确实抓住了逻辑和数学中有效方法的非正式概念,并提供了算法或“机械程序”的精确定义。研究它们的抽象特性可以使我们对计算机科学和复杂性理论有更深入的了解。
    
===Physical description===
 
===Physical description===
 +
实物描述
    
In his 1948 essay, "Intelligent Machinery", Turing wrote that his machine consisted of:
 
In his 1948 essay, "Intelligent Machinery", Turing wrote that his machine consisted of:
  −
在他1948年的论文《智能机器》中,图灵写道他的机器包括:
      
In his 1948 essay, "Intelligent Machinery", Turing wrote that his machine consisted of:
 
In his 1948 essay, "Intelligent Machinery", Turing wrote that his machine consisted of:
   −
 
+
在他1948年的论文《智能机器》中,Turing写道他的机器包括:
    
{{quote|...an unlimited memory capacity obtained in the form of an infinite tape marked out into squares, on each of which a symbol could be printed. At any moment there is one symbol in the machine; it is called the scanned symbol. The machine can alter the scanned symbol, and its behavior is in part determined by that symbol, but the symbols on the tape elsewhere do not affect the behavior of the machine. However, the tape can be moved back and forth through the machine, this being one of the elementary operations of the machine. Any symbol on the tape may therefore eventually have an innings.<ref>See the definition of "[[wikt:innings|innings]]" on [[Wiktionary]]</ref>|Turing 1948, p. 3<ref>
 
{{quote|...an unlimited memory capacity obtained in the form of an infinite tape marked out into squares, on each of which a symbol could be printed. At any moment there is one symbol in the machine; it is called the scanned symbol. The machine can alter the scanned symbol, and its behavior is in part determined by that symbol, but the symbols on the tape elsewhere do not affect the behavior of the machine. However, the tape can be moved back and forth through the machine, this being one of the elementary operations of the machine. Any symbol on the tape may therefore eventually have an innings.<ref>See the definition of "[[wikt:innings|innings]]" on [[Wiktionary]]</ref>|Turing 1948, p. 3<ref>
第110行: 第97行:     
| year=1948
 
| year=1948
 +
 +
...以无限的磁带形式获得无限存储容量,磁带上标有方块,每个方块上都可以打印一个符号。在任何时刻,机器里都有一个符号,它被称为扫描符号。机器可以更改扫描的符号,其行为部分地由这个符号决定,但磁带上其他地方的符号不影响机器的行为。但是,磁带可以在机器中来回移动,这是机器的基本操作之一。因此,磁带上的任何符号最终都可能有局数。
 +
 +
—Turing 1948年,第3页
 +
 +
==Description==
 +
描述
 +
 +
{{for|visualizations of Turing machines|Turing machine gallery}}
 +
 +
The Turing machine mathematically models a machine that mechanically operates on a tape.  On this tape are symbols, which the machine can read and write, one at a time, using a tape head. Operation is fully determined by a finite set of elementary instructions such as "in state 42, if the symbol seen is 0, write a 1; if the symbol seen is 1, change into state 17; in state 17, if the symbol seen is 0, write a 1 and change to state 6;" etc. In the original article ("[[On Computable Numbers, with an Application to the Entscheidungsproblem]]", see also [[#The Entscheidungsproblem (the "decision problem"): Hilbert's tenth question of 1900|references below]]), Turing imagines not a mechanism, but a person whom he calls the "computer", who executes these deterministic mechanical rules slavishly (or as Turing puts it, "in a desultory manner").
    
The Turing machine mathematically models a machine that mechanically operates on a tape.  On this tape are symbols, which the machine can read and write, one at a time, using a tape head. Operation is fully determined by a finite set of elementary instructions such as "in state 42, if the symbol seen is 0, write a 1; if the symbol seen is 1, change into state 17; in state 17, if the symbol seen is 0, write a 1 and change to state 6;" etc. In the original article ("On Computable Numbers, with an Application to the Entscheidungsproblem", see also references below), Turing imagines not a mechanism, but a person whom he calls the "computer", who executes these deterministic mechanical rules slavishly (or as Turing puts it, "in a desultory manner").
 
The Turing machine mathematically models a machine that mechanically operates on a tape.  On this tape are symbols, which the machine can read and write, one at a time, using a tape head. Operation is fully determined by a finite set of elementary instructions such as "in state 42, if the symbol seen is 0, write a 1; if the symbol seen is 1, change into state 17; in state 17, if the symbol seen is 0, write a 1 and change to state 6;" etc. In the original article ("On Computable Numbers, with an Application to the Entscheidungsproblem", see also references below), Turing imagines not a mechanism, but a person whom he calls the "computer", who executes these deterministic mechanical rules slavishly (or as Turing puts it, "in a desultory manner").
   −
图灵机对机械操作磁带的机器进行数学建模。这个磁带上有符号,机器可以用磁头读写,一次一个。操作完全由一组有限的基本指令决定,如“在状态42中,如果看到的符号是0,写一个1; 如果看到的符号是1,改为状态17; 在状态17中,如果看到的符号是0,写一个1,改为状态6; ”等等。在最初的文章中(“关于可计算数字,以及对可判定性的应用” ,见下面的参考文献) ,图灵想象的不是一种机制,而是一个他称之为“计算机”的人,他奴隶般地执行这些确定性的机械规则(或者如图灵所说,“以一种杂乱无章的方式”)。
+
图灵机对在磁带上机械操作的机器进行数学建模。这个磁带上有符号,机器可以用磁头一次一个地读写。操作完全由一组有限的基本指令决定,如“在状态42中,如果看到的符号是0,写一个1; 如果看到的符号是1,就改为状态17; 在状态17中,如果看到的符号是0,就写一个1,然后改为状态6; ”等等。在原文中(《论可计算的数字,以及对可判定性的应用》,也可参见下面的参考文献) ,Turing想象的不是一种机械装置,而是一个被他称为“计算机”的人,他奴隶般地执行这些确定性的机械规则(或者像Turing所说的那样,“以一种杂乱无章的方式”)。
    
| page=3
 
| page=3
第121行: 第119行:  
The head is always over a particular square of the tape; only a finite stretch of squares is shown. The instruction to be performed (q<sub>4</sub>) is shown over the scanned square. (Drawing after Kleene (1952) p. 375.)
 
The head is always over a particular square of the tape; only a finite stretch of squares is shown. The instruction to be performed (q<sub>4</sub>) is shown over the scanned square. (Drawing after Kleene (1952) p. 375.)
   −
磁头始终位于磁带的某个方格上,只显示有限的方格拉伸。将要执行的指令(q < sub > 4 </sub >)显示在扫描的正方形上。(Kleene (1952) p.375.)
+
磁头始终位于磁带的某个特定方格上,只显示有限的方格。要执行的指令(q < sub > 4 </sub >)显示在扫描的方格上。(克莱尼Kleene (1952) p.375.)
    
| publisher=The Turing Archive
 
| publisher=The Turing Archive
第129行: 第127行:  
Here, the internal state (q<sub>1</sub>) is shown inside the head, and the illustration describes the tape as being infinite and pre-filled with "0", the symbol serving as blank. The system's full state (its "complete configuration") consists of the internal state, any non-blank symbols on the tape (in this illustration "11B"), and the position of the head relative to those symbols including blanks, i.e. "011B". (Drawing after Minsky (1967) p. 121.)
 
Here, the internal state (q<sub>1</sub>) is shown inside the head, and the illustration describes the tape as being infinite and pre-filled with "0", the symbol serving as blank. The system's full state (its "complete configuration") consists of the internal state, any non-blank symbols on the tape (in this illustration "11B"), and the position of the head relative to those symbols including blanks, i.e. "011B". (Drawing after Minsky (1967) p. 121.)
   −
这里,内部状态(q < sub > 1 </sub >)显示在头部内部,图中描述磁带是无限的,并预填充了“0” ,这个符号是空的。系统的完整状态(其“完整配置”)包括内部状态、磁带上的任何非空白符号(在本例“11B”中) ,以及磁头相对于包括空白符号(即:。「011B 」。(以明斯基(1967) p。121.)
+
这里,内部状态(q < sub > 1 </sub >)显示在磁头内部,图中将磁带描述为无限的,并预先填充了“0” ,该符号作为空白。系统的完整状态(其“完整配置”) 由内部状态、磁带上的任何非空白符号(在图中为 "11B"),以及磁头相对于这些符号(包括空白)的位置,即 "011B "组成。(根据明斯基Minsky (1967) p.121.)
    
</ref>}}
 
</ref>}}
       +
More explicitly, a Turing machine consists of:
    
More explicitly, a Turing machine consists of:
 
More explicitly, a Turing machine consists of:
   −
更明确地说,图灵机包括:
+
更明确地说,图灵机由以下部分组成:
   −
==Description==
+
* A ''tape'' divided into cells, one next to the other. Each cell contains a symbol from some finite alphabet. The alphabet contains a special blank symbol (here written as '0') and one or more other symbols. The tape is assumed to be arbitrarily extendable to the left and to the right, so that the Turing machine is always supplied with as much tape as it needs for its computation. Cells that have not been written before are assumed to be filled with the blank symbol. In some models the tape has a left end marked with a special symbol; the tape extends or is indefinitely extensible to the right.
   −
{{for|visualizations of Turing machines|Turing machine gallery}}
+
磁带被分成多个单元, 一个挨着一个.。每一个单元都包含一个来自某个有限字母表的符号。字母表包含一个特殊的空白符号(这里写成'0')和一个或多个其他符号。假设磁带是可以向左和向右任意延伸的,所以图灵机总是有它计算所需的磁带。之前没有写过的单元格被假定为用空白符号填充。在某些模型中,磁带的左端标有特殊符号;磁带向右延伸或无限延伸。
    +
* A ''head'' that can read and write symbols on the tape and move the tape left and right one (and only one) cell at a time. In some models the head moves and the tape is stationary.
    +
磁头,可以在磁带上读写符号,并一次向左和向右移动磁带一格(也只有一格)。在某些型号中,磁头会移动,而磁带是静止的。
   −
The Turing machine mathematically models a machine that mechanically operates on a tape.  On this tape are symbols, which the machine can read and write, one at a time, using a tape head. Operation is fully determined by a finite set of elementary instructions such as "in state 42, if the symbol seen is 0, write a 1; if the symbol seen is 1, change into state 17; in state 17, if the symbol seen is 0, write a 1 and change to state 6;" etc. In the original article ("[[On Computable Numbers, with an Application to the Entscheidungsproblem]]", see also [[#The Entscheidungsproblem (the "decision problem"): Hilbert's tenth question of 1900|references below]]), Turing imagines not a mechanism, but a person whom he calls the "computer", who executes these deterministic mechanical rules slavishly (or as Turing puts it, "in a desultory manner").
+
* A ''state register'' that stores the state of the Turing machine, one of finitely many. Among these is the special ''start state'' with which the state register is initialized. These states, writes Turing, replace the "state of mind" a person performing computations would ordinarily be in.
    +
状态寄存器,存储图灵机的状态,是有限多个状态中的一个。其中有一个特殊的启动状态,状态寄存器就是用它来初始化。Turing写道,这些状态代替了执行计算的人通常会处于的 "精神状态"。
    +
* A finite ''table''<ref>Occasionally called an ''action table'' or ''transition function''.</ref> of instructions<ref>Usually quintuples [5-tuples]: q<sub>i</sub>a<sub>j</sub>→q<sub>i1</sub>a<sub>j1</sub>d<sub>k</sub>, but sometimes quadruples [4-tuples].</ref> that, given the ''state''(q<sub>i</sub>) the machine is currently in ''and'' the ''symbol''(a<sub>j</sub>) it is reading on the tape (symbol currently under the head), tells the machine to do the following ''in sequence'' (for the 5-tuple models):
   −
Either erase or write a symbol (replacing a<sub>j</sub> with a<sub>j1</sub>).
+
有限的指令表,给定机器当前所处的状态(q<sub>i</sub>)和它在磁带上读到的符号(a<sub>j</sub>)(当前在磁头下的符号),告诉机器依次做以下事情(对于五元组模型)。
   −
擦除或者写一个符号(< sub > j1 </sub > 替换 < sub > j </sub >)
+
# Either erase or write a symbol (replacing a<sub>j</sub> with a<sub>j1</sub>).
   −
[[File:Turing machine 2a.svg|thumb|right|300px|The head is always over a particular square of the tape; only a finite stretch of squares is shown. The instruction to be performed (q<sub>4</sub>) is shown over the scanned square. (Drawing after Kleene (1952) p. 375.)]]
+
Either erase or write a symbol (replacing a<sub>j</sub> with a<sub>j1</sub>).
   −
Move the head (which is described by d<sub>k</sub> and can have values: 'L' for one step left or 'R' for one step right or 'N' for staying in the same place).
+
擦除或写入一个符号(将a<sub>j</sub>替换为a<sub>j1</sub>)。
   −
移动头部(d < sub > k </sub > 描述,可以有以下值: 向左一步为 l,向右一步为 r,停留在同一位置为 n)
+
# Move the head (which is described by d<sub>k</sub> and can have values: 'L' for one step left ''or'' 'R' for one step right ''or'' 'N' for staying in the same place).
    +
移动磁头(由d<sub>k</sub>描述,可以有值。'L'表示向左移动一步,'R'表示向右移动一步,'N'表示停留在原地)。
    +
# Assume the same or a ''new state'' as prescribed (go to state q<sub>i1</sub>).
   −
Assume the same or a new state as prescribed (go to state q<sub>i1</sub>).
+
假设与规定的状态相同或新的状态(进入状态q<sub>i1</sub>
   −
按照规定假设相同或新的状态(转到状态 q < sub > i1 </sub >)
+
In the 4-tuple models, erasing or writing a symbol (a<sub>j1</sub>) and moving the head left or right (d<sub>k</sub>) are specified as separate instructions. The table tells the machine to (ia) erase or write a symbol ''or'' (ib) move the head left or right, ''and then'' (ii) assume the same or a new state as prescribed, but not both actions (ia) and (ib) in the same instruction. In some models, if there is no entry in the table for the current combination of symbol and state, then the machine will halt; other models require all entries to be filled.
 
  −
[[File:Turing machine 2b.svg|thumb|right|300px|Here, the internal state (q<sub>1</sub>) is shown inside the head, and the illustration describes the tape as being infinite and pre-filled with "0", the symbol serving as blank. The system's full state (its "complete configuration") consists of the internal state, any non-blank symbols on the tape (in this illustration "11B"), and the position of the head relative to those symbols including blanks, i.e. "011B". (Drawing after Minsky (1967) p. 121.)]]
      
In the 4-tuple models, erasing or writing a symbol (a<sub>j1</sub>) and moving the head left or right (d<sub>k</sub>) are specified as separate instructions. The table tells the machine to (ia) erase or write a symbol or (ib) move the head left or right, and then (ii) assume the same or a new state as prescribed, but not both actions (ia) and (ib) in the same instruction. In some models, if there is no entry in the table for the current combination of symbol and state, then the machine will halt; other models require all entries to be filled.
 
In the 4-tuple models, erasing or writing a symbol (a<sub>j1</sub>) and moving the head left or right (d<sub>k</sub>) are specified as separate instructions. The table tells the machine to (ia) erase or write a symbol or (ib) move the head left or right, and then (ii) assume the same or a new state as prescribed, but not both actions (ia) and (ib) in the same instruction. In some models, if there is no entry in the table for the current combination of symbol and state, then the machine will halt; other models require all entries to be filled.
   −
在四元组模型中,擦除或写入符号(a < sub > j1 </sub >)和向左或向右移动头(d < sub > k </sub >)被指定为单独的指令。表告诉机器擦除或写入一个符号,或者(ib)将头向左或向右移动,然后(ii)按照规定假定相同或新的状态,但不是同一指令中的两个操作(ia)和(ib)。在某些模型中,如果表中没有当前符号和状态组合的条目,那么机器将暂停; 其他模型要求填充所有条目。
+
在四元组模型中,擦除或写入符号(a < sub > j1 </sub >)和向左或向右移动头(d < sub > k </sub >)被指定为单独的指令。该表告诉机器擦除或写入一个符号,或者(ib)向左或向右移动磁头,然后(ii)按照规定假定相同或新的状态,但不能在同一指令中同时进行(ia)和(ib)两个动作。在某些模型中,如果表中没有当前符号和状态组合的条目,那么机器将暂停; 其他模型要求填充所有条目。
      −
 
+
Every part of the machine (i.e. its state, symbol-collections, and used tape at any given time) and its actions (such as printing, erasing and tape motion) is ''finite'', ''discrete'' and ''distinguishable''; it is the unlimited amount of tape and runtime that gives it an unbounded amount of [[Computer storage|storage space]].
More explicitly, a Turing machine consists of:
      
Every part of the machine (i.e. its state, symbol-collections, and used tape at any given time) and its actions (such as printing, erasing and tape motion) is finite, discrete and distinguishable; it is the unlimited amount of tape and runtime that gives it an unbounded amount of storage space.
 
Every part of the machine (i.e. its state, symbol-collections, and used tape at any given time) and its actions (such as printing, erasing and tape motion) is finite, discrete and distinguishable; it is the unlimited amount of tape and runtime that gives it an unbounded amount of storage space.
   −
机器的每一部分(即。它的状态、符号集合和在任何给定时间使用过的磁带)和它的行为(如打印、擦除和磁带运动)是有限的、离散的和可区分的,正是无限量的磁带和运行时给了它无限量的存储空间。
+
机器的每一部分(即它的状态、符号集合和在任何给定时间使用过的磁带)及其动作(如打印、擦除和磁带运动)是有限的、离散的和可区分的,正是磁带和运行时间的无限量使它具有无限制的存储空间。
   −
* A ''tape'' divided into cells, one next to the other. Each cell contains a symbol from some finite alphabet. The alphabet contains a special blank symbol (here written as '0') and one or more other symbols. The tape is assumed to be arbitrarily extendable to the left and to the right, so that the Turing machine is always supplied with as much tape as it needs for its computation. Cells that have not been written before are assumed to be filled with the blank symbol. In some models the tape has a left end marked with a special symbol; the tape extends or is indefinitely extensible to the right.
+
==Formal definition==
 +
正式定义
 +
Following {{harvtxt|Hopcroft|Ullman|1979|p=148}}, a (one-tape) Turing machine can be formally defined as a 7-[[tuple]] <math>M = \langle Q, \Gamma, b, \Sigma, \delta, q_0, F \rangle</math> where
   −
* A ''head'' that can read and write symbols on the tape and move the tape left and right one (and only one) cell at a time. In some models the head moves and the tape is stationary.
+
Following , Hopcroft & Ullman (1979, p. 148), a (one-tape) Turing machine can be formally defined as a 7-tuple <math>M = \langle Q, \Gamma, b, \Sigma, \delta, q_0, F \rangle</math> where
   −
* A ''state register'' that stores the state of the Turing machine, one of finitely many. Among these is the special ''start state'' with which the state register is initialized. These states, writes Turing, replace the "state of mind" a person performing computations would ordinarily be in.
+
按照Hopcroft & Ullman(1979,p.148)的说法,一个(单带)图灵机可以被正式定义为一个七元组  <math>M = \langle Q, \Gamma, b, \Sigma, \delta, q_0, F \rangle</math> 其中
   −
Following , a (one-tape) Turing machine can be formally defined as a 7-tuple <math>M = \langle Q, \Gamma, b, \Sigma, \delta, q_0, F \rangle</math> where
+
* <math>Q</math> is a finite, non-empty set of ''states'';
   −
接下来,一个(单带)图灵机可以被正式定义为一个七元组 < math > m = langle q,Gamma,b,Sigma,delta,q _ 0,f rangle </math > 其中
+
<math>Q</math> 是一个有限的、非空的状态集。
   −
* A finite ''table''<ref>Occasionally called an ''action table'' or ''transition function''.</ref> of instructions<ref>Usually quintuples [5-tuples]: q<sub>i</sub>a<sub>j</sub>→q<sub>i1</sub>a<sub>j1</sub>d<sub>k</sub>, but sometimes quadruples [4-tuples].</ref> that, given the ''state''(q<sub>i</sub>) the machine is currently in ''and'' the ''symbol''(a<sub>j</sub>) it is reading on the tape (symbol currently under the head), tells the machine to do the following ''in sequence'' (for the 5-tuple models):
+
* <math>\Gamma</math> is a finite, non-empty set of ''tape alphabet symbols'';
   −
# Either erase or write a symbol (replacing a<sub>j</sub> with a<sub>j1</sub>).
+
<math>\Gamma</math> 是一个有限的、非空的磁带字母符号集。
   −
# Move the head (which is described by d<sub>k</sub> and can have values: 'L' for one step left ''or'' 'R' for one step right ''or'' 'N' for staying in the same place).
+
* <math>b \in \Gamma</math> is the ''blank symbol'' (the only symbol allowed to occur on the tape infinitely often at any step during the computation);
   −
# Assume the same or a ''new state'' as prescribed (go to state q<sub>i1</sub>).
+
<math>b \in \Gamma</math> 是空白符号(在计算过程中的任何一步,唯一允许在磁带上无限频繁出现的符号)。
   −
In the 4-tuple models, erasing or writing a symbol (a<sub>j1</sub>) and moving the head left or right (d<sub>k</sub>) are specified as separate instructions. The table tells the machine to (ia) erase or write a symbol ''or'' (ib) move the head left or right, ''and then'' (ii) assume the same or a new state as prescribed, but not both actions (ia) and (ib) in the same instruction. In some models, if there is no entry in the table for the current combination of symbol and state, then the machine will halt; other models require all entries to be filled.
+
* <math>\Sigma\subseteq\Gamma\setminus\{b\}</math> is the set of ''input symbols'', that is, the set of symbols allowed to appear in the initial tape contents;
    +
<math>\Sigma\subseteq\Gamma\setminus\{b\}</math> 是输入符号的集合,即允许在初始磁带内容中出现的符号的集合。
    +
* <math>q_0 \in Q</math> is the ''initial state'';
   −
Every part of the machine (i.e. its state, symbol-collections, and used tape at any given time) and its actions (such as printing, erasing and tape motion) is ''finite'', ''discrete'' and ''distinguishable''; it is the unlimited amount of tape and runtime that gives it an unbounded amount of [[Computer storage|storage space]].
+
<math>q_0 \in Q</math> 是初始状态。
    +
* <math>F \subseteq Q</math> is the set of ''final states'' or ''accepting states''. ’’’<font color=’’#ff8000’’> The initial tape contents is said to be ''accepted'' by <math>M</math> if it eventually halts in a state from <math>F</math>. </font>’’’
    +
<math>F \subseteq Q</math> 是最终状态或接受状态的集合。’’’<font color=’’#ff8000’’> 如果最初的磁带内容最终在 <math>F</math>的状态下停止,则被称为 <math>M</math>''接受''。 </font>’’’
   −
==Formal definition==
+
* <math>\delta: (Q \setminus F) \times \Gamma \not\to Q \times \Gamma \times \{L,R\}</math> is a [[partial function]] called the ''[[State transition system|transition function]]'', where L is left shift, R is right shift. If <math>\delta</math> is not defined on the current state and the current tape symbol, then the machine halts;
   −
When executed, the machine will either halt with some string remaining on the tape, or continue executing forever. If it halts, the final values on the tape are regarded as the output. A variant of the Turing machine has an accept state and a reject state which both halt the machine, and the sole output is which of those states the machine ends up on (or it may never halt). This variant can effectively output a longer string by taking in an integer that tells it which bit of the string to output.
+
<math>\delta: (Q \setminus F) \times \Gamma \not\to Q \times \Gamma \times \{L,R\}</math> 是一个局部函数,称为过渡函数,其中L为左移,R为右移。如果 <math>\delta</math> 在当前状态和当前磁带符号上没有被定义,那么机器就会停止。
   −
执行时,机器要么停止,磁带上还有一些字符串,要么永远继续执行。如果停止,磁带上的最终值被视为输出。图灵机的一个变种有一个接受状态和一个拒绝状态,这两个状态都停止了机器,唯一的输出是机器最终处于哪个状态(或者它可能永远不会停止)。这种变体通过接受一个整数来告诉它输出字符串的哪个位,从而可以有效地输出较长的字符串。
+
In addition, the Turing machine can also have a reject state to make rejection more explicit. In that case there are three possibilities: accepting, rejecting, and running forever. Another possibility is to regard the final values on the tape as the output. However, if the only output is the final state the machine ends up in (or never halting), the machine can still effectively output a longer string by taking in an integer that tells it which bit of the string to output.
   −
Following {{harvtxt|Hopcroft|Ullman|1979|p=148}}, a (one-tape) Turing machine can be formally defined as a 7-[[tuple]] <math>M = \langle Q, \Gamma, b, \Sigma, \delta, q_0, F \rangle</math> where
+
此外,图灵机还可以有一个拒绝状态,以使拒绝更加明确。在这种情况下,存在三种可能:接受、拒绝和永远运行。另一种可能是将磁带上的最终值视为输出。但是,如果唯一的输出是机器最终进入的状态(或永不停止),则机器仍可以通过接受一个整数来有效地输出一个较长的字符串,该整数告诉它要输出字符串的哪一位。
   −
* <math>Q</math> is a finite, non-empty set of ''states'';
+
A relatively uncommon variant allows "no shift", say N, as a third element of the set of directions <math>\{L,R\}</math>.
    
A relatively uncommon variant allows "no shift", say N, as a third element of the set of directions <math>\{L,R\}</math>.
 
A relatively uncommon variant allows "no shift", say N, as a third element of the set of directions <math>\{L,R\}</math>.
   −
一个相对不常见的变体允许“ no shift” ,比如 n,作为方向集合{ math > { l,r } </math > 的第三个元素。
+
相对不常见的变体允许“ 不移位” ,比如 n,作为方向集{ math > { l,r } </math > 的第三个元素。
   −
* <math>\Gamma</math> is a finite, non-empty set of ''tape alphabet symbols'';
+
The 7-tuple for the 3-state [[busy beaver]] looks like this (see more about this busy beaver at [[Turing machine examples]]):
   −
* <math>b \in \Gamma</math> is the ''blank symbol'' (the only symbol allowed to occur on the tape infinitely often at any step during the computation);
+
状态三的穷忙的七元模拟组是这样的(更多关于穷忙的内容请看图灵机实例)。
   −
The 7-tuple for the 3-state busy beaver looks like this (see more about this busy beaver at Turing machine examples):
+
* <math>Q = \{ \mbox{A}, \mbox{B}, \mbox{C}, \mbox{HALT} \}</math> (states);
   −
三态繁忙海狸的七元组看起来像这样(更多关于这个繁忙海狸的图灵机例子) :
+
<math>Q = \{ \mbox{A}, \mbox{B}, \mbox{C}, \mbox{HALT} \}</math> (状态);
   −
* <math>\Sigma\subseteq\Gamma\setminus\{b\}</math> is the set of ''input symbols'', that is, the set of symbols allowed to appear in the initial tape contents;
+
* <math>\Gamma = \{ 0, 1 \}</math> (tape alphabet symbols);
   −
* <math>q_0 \in Q</math> is the ''initial state'';
+
<math>\Gamma = \{ 0, 1 \}</math> (磁带字母符号);
   −
* <math>F \subseteq Q</math> is the set of ''final states'' or ''accepting states''. The initial tape contents is said to be ''accepted'' by <math>M</math> if it eventually halts in a state from <math>F</math>.
+
* <math>b = 0</math> (blank symbol);
   −
* <math>\delta: (Q \setminus F) \times \Gamma \not\to Q \times \Gamma \times \{L,R\}</math> is a [[partial function]] called the ''[[State transition system|transition function]]'', where L is left shift, R is right shift. If <math>\delta</math> is not defined on the current state and the current tape symbol, then the machine halts;<ref>p.149; in particular, Hopcroft and Ullman assume that <math>\delta</math> is undefined on all states from <math>F</math></ref>
+
<math>b = 0</math> (空白符号);
    +
* <math>\Sigma = \{ 1 \}</math> (input symbols);
    +
<math>\Sigma = \{ 1 \}</math>(输入符号);
   −
When executed, the machine will either halt with some string remaining on the tape, or continue executing forever. If it halts, the final values on the tape are regarded as the output. A variant of the Turing machine has an accept state and a reject state which both halt the machine, and the sole output is which of those states the machine ends up on (or it may never halt). This variant can effectively output a longer string by taking in an integer that tells it which bit of the string to output.
+
* <math>q_0 = \mbox{A}</math> (initial state);
    +
<math>q_0 = \mbox{A}</math> (初始状态);
    +
* <math>F = \{ \mbox{HALT} \}</math> (final states);
   −
A relatively uncommon variant allows "no shift", say N, as a third element of the set of directions <math>\{L,R\}</math>.
+
<math>F = \{ \mbox{HALT} \}</math>(最终状态);
    +
* <math>\delta = </math> see state-table below (transition function).
    +
<math>\delta = </math> 请参阅下面的状态表(转换功能)。
    
Initially all tape cells are marked with <math>0</math>.
 
Initially all tape cells are marked with <math>0</math>.
   −
最初所有的磁带单元格都用 < math > 0 </math > 标记。
+
Initially all tape cells are marked with <math>0</math>.
   −
The 7-tuple for the 3-state [[busy beaver]] looks like this (see more about this busy beaver at [[Turing machine examples]]):
+
最初,所有的磁带单元格都用 < math > 0 </math > 标记。
 
  −
* <math>Q = \{ \mbox{A}, \mbox{B}, \mbox{C}, \mbox{HALT} \}</math> (states);
      
{| class="wikitable" style="text-align:center"
 
{| class="wikitable" style="text-align:center"
    
{ | class = “ wikitable” style = “ text-align: center”
 
{ | class = “ wikitable” style = “ text-align: center”
  −
* <math>\Gamma = \{ 0, 1 \}</math> (tape alphabet symbols);
      
|+ State table for 3 state, 2 symbol busy beaver
 
|+ State table for 3 state, 2 symbol busy beaver
   −
| + 3个状态的状态表,2个符号忙碌的海狸
+
| + 3状态2符号穷忙的状态表
 
  −
* <math>b = 0</math> (blank symbol);
      
! rowspan="2" | Tape symbol
 
! rowspan="2" | Tape symbol
    
!Rowspan = “2” | 磁带符号
 
!Rowspan = “2” | 磁带符号
  −
* <math>\Sigma = \{ 1 \}</math> (input symbols);
      
! colspan="3" | Current state A
 
! colspan="3" | Current state A
   −
!Colspan = “3” | 当前状态 a
+
!Colspan = “3” | 当前状态 A
 
  −
* <math>q_0 = \mbox{A}</math> (initial state);
      
! colspan="3" | Current state B
 
! colspan="3" | Current state B
   −
!Colspan = “3” | 当前状态 b
+
!Colspan = “3” | 当前状态 B
 
  −
* <math>F = \{ \mbox{HALT} \}</math> (final states);
      
! colspan="3" | Current state C
 
! colspan="3" | Current state C
   −
!Colspan = “3” | 当前状态 c
+
!Colspan = “3” | 当前状态 C
 
  −
* <math>\delta = </math> see state-table below (transition function).
      
|- style="font-size:9pt"
 
|- style="font-size:9pt"
    
|-style = “ font-size: 9 pt”
 
|-style = “ font-size: 9 pt”
  −
      
| Write symbol
 
| Write symbol
   −
| 写符号
+
| 写入符号
 
  −
Initially all tape cells are marked with <math>0</math>.
      
| Move tape
 
| Move tape
    
移动磁带
 
移动磁带
  −
      
| Next state
 
| Next state
   −
下一个州
+
下一个状态
   −
{| class="wikitable" style="text-align:center"
+
| Write symbol
 
  −
| Write symbol
      
| 写入符号
 
| 写入符号
  −
|+ State table for 3 state, 2 symbol busy beaver
      
| Move tape
 
| Move tape
    
移动磁带
 
移动磁带
  −
! rowspan="2" | Tape symbol
      
| Next state
 
| Next state
   −
下一个州
+
下一个状态
 
  −
! colspan="3" | Current state A
      
| Write symbol
 
| Write symbol
    
| 写入符号
 
| 写入符号
  −
! colspan="3" | Current state B
      
| Move tape
 
| Move tape
    
移动磁带
 
移动磁带
  −
! colspan="3" | Current state C
      
| Next state
 
| Next state
   −
下一个州
+
下一个状态
 
  −
|- style="font-size:9pt"
  −
 
  −
|-
      
|-
 
|-
  −
| Write symbol
  −
   
| 0
 
| 0
  −
| 0
  −
  −
| Move tape
  −
   
| 1
 
| 1
 
+
| R
 +
| '''B'''
 +
| 1
 +
| L
 +
| '''A'''
 +
| 1
 +
| L
 +
| '''B'''
 +
|-
 +
| 1
 
| 1
 
| 1
 +
| L
 +
| '''C'''
 +
| 1
 +
| R
 +
| '''B'''
 +
| 1
 +
| R
 +
| '''HALT'''
   −
| Next state
+
| '''停止'''
   −
| R
+
|}
   −
| r
+
==Additional details required to visualize or implement Turing machines==
   −
| Write symbol
+
可视化或实现图灵机所需的其他细节
   −
| B
+
In the words of van Emde Boas (1990), p.&nbsp;6: "The set-theoretical object [his formal seven-tuple description similar to the above] provides only partial information on how the machine will behave and what its computations will look like."
   −
| b
+
In the words of van Emde Boas (1990), p.&nbsp;6: "The set-theoretical object [his formal seven-tuple description similar to the above] provides only partial information on how the machine will behave and what its computations will look like."
   −
| Move tape
+
用范·埃姆德·博阿斯 van Emde Boas (1990)的话来说,第6页: “集合理论对象(类似于上面的形式七元组描述)只提供了关于机器将如何运行以及它的计算将是什么样子的部分信息。”
   −
| 1
+
For instance,
   −
| 1
+
For instance,
 +
例如,
   −
| Next state
+
* There will need to be many decisions on what the symbols actually look like, and a failproof way of reading and writing symbols indefinitely.
   −
| L
+
符号到底是什么样子的,需要有很多决定,也需要有一种万无一失的方法来无限期地读写符号。
   −
| l
+
* The shift left and shift right operations may shift the tape head across the tape, but when actually building a Turing machine it is more practical to make the tape slide back and forth under the head instead.
   −
| Write symbol
+
左移和右移操作可能会使磁头在磁带上移动,但在实际构建图灵机时,更实际的做法是让磁带在磁头下来回滑动。
   −
| A
+
* The tape can be finite, and automatically extended with blanks as needed (which is closest to the mathematical definition), but it is more common to think of it as stretching infinitely at one or both ends and being pre-filled with blanks except on the explicitly given finite fragment the tape head is on.  (This is, of course, not implementable in practice.)  The tape ''cannot'' be fixed in length, since that would not correspond to the given definition and would seriously limit the range of computations the machine can perform to those of a [[linear bounded automaton]] if the tape was proportional to the input size, or [[finite state machine]] if it was strictly fixed-length.
   −
我会的
+
磁带可以是有限的,并根据需要自动延伸出空白(这是最接近数学定义的),但更常见的是将其视为在一端或两端无限延伸,除了磁头所在的明确给定的有限片段外,都会被预先填充空白。(当然,这在实践中是无法实现的。)磁带的长度不能是固定的,因为那不符合给定的定义,而且会严重限制机器可以执行的计算范围,如果磁带与输入大小成正比,则为’’’<font color=’’#ff8000’’> 线性有界自动机 linear bounded automaton</font>’’’的计算范围,如果磁带是严格的固定长度,则为’’’<font color=’’#ff8000’’>有限状态机 finite state machine</font>’’’的计算范围。
   −
| Move tape
+
===Alternative definitions===
 +
其他定义
   −
| 1
+
Definitions in literature sometimes differ slightly, to make arguments or proofs easier or clearer, but this is always done in such a way that the resulting machine has the same computational power. For example, the set could be changed from <math>\{L,R\}</math> to <math>\{L,R,N\}</math>, where ''N'' ("None" or "No-operation") would allow the machine to stay on the same tape cell instead of moving left or right. This would not increase the machine's computational power.
   −
| 1
+
文献中的定义有时会稍有不同,以使论证或证明更容易或更清晰,但这总是以这样的方式进行的,即所得机器具有相同的计算能力。例如,集合可以从 <math>\{L,R\}</math> 改为 <math>\{L,R,N\}</math>其中N("无 "或 "无操作")将允许机器停留在同一磁带单元上,而不需要左右移动。这不会增加机器的计算能力。
   −
| Next state
+
The most common convention represents each "Turing instruction" in a "Turing table" by one of nine 5-tuples, per the convention of Turing/Davis (Turing (1936) in ''The Undecidable'', p.&nbsp;126-127 and Davis (2000) p.&nbsp;152):
   −
| L
+
The most common convention represents each "Turing instruction" in a "Turing table" by one of nine 5-tuples, per the convention of Turing/Davis (Turing (1936) in The Undecidable, p.&nbsp;126-127 and Davis (2000) p.&nbsp;152):
   −
| l
+
按照Turing/Davis(Turing(1936)在The Undecidable,第126-127页和戴维斯(2000)中的约定),最常见的约定由九个5元组之一表示“ 图灵表”中的每个“ 图灵指令” 。第152页):
   −
|-
+
: (definition 1): '''(q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>/E/N, L/R/N, q<sub>m</sub>)'''
   −
| B
+
(definition 1): (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>/E/N, L/R/N, q<sub>m</sub>)
   −
| b
+
(定义1) : (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>/E/N, L/R/N, q<sub>m</sub>)
 +
:: '''(''' current state '''q<sub>i</sub>''' ''',''' symbol scanned '''S<sub>j</sub>''' ''',''' print symbol '''S<sub>k</sub>'''/erase '''E'''/none '''N''' ''',''' move_tape_one_square left '''L'''/right '''R'''/none '''N''' ''',''' new state '''q<sub>m</sub>''' ''')'''
   −
| 0
+
( current state q<sub>i</sub> , symbol scanned S<sub>j</sub> , print symbol S<sub>k</sub>/erase E/none N , move_tape_one_square left L/right R/none N , new state q<sub>m</sub> )
   −
|-
+
(当前状态 q<sub>i</sub> , 已扫描 符号S<sub>j</sub> , 打印符号S<sub>k</sub>/擦除 E/无 N , move_tape_one_square left L/right R/none N , 新状态 q<sub>m</sub> )
   −
|-
     −
| 1
+
Other authors (Minsky (1967) p.&nbsp;119, Hopcroft and Ullman (1979) p.&nbsp;158, Stone (1972) p.&nbsp;9) adopt a different convention, with new state '''q<sub>m</sub>''' listed immediately after the scanned symbol S<sub>j</sub>:
   −
| 1
+
Other authors (Minsky (1967) p.&nbsp;119, Hopcroft and Ullman (1979) p.&nbsp;158, Stone (1972) p.&nbsp;9) adopt a different convention, with new state q<sub>m</sub> listed immediately after the scanned symbol S<sub>j</sub>:
   −
| 1
+
其他作者(Minsky(1967)第119页,霍普克罗夫特Hopcroft和乌尔曼Ullman(1979)第158页,斯通Stone(1972)第9页)采用了另一种约定,在扫描符号s </sub > j </sub > 之后立即列出新状态q </sub > m </sub > :
   −
| R
+
: (definition 2): '''(q<sub>i</sub>, S<sub>j</sub>, q<sub>m</sub>, S<sub>k</sub>/E/N, L/R/N)'''
   −
| 1
+
(definition 2): (q<sub>i</sub>, S<sub>j</sub>, q<sub>m</sub>, S<sub>k</sub>/E/N, L/R/N)
   −
| 1
+
(定义2) : (q < sub > i </sub > ,s < sub > j </sub > ,q < sub > m </sub > ,s < sub > k </sub >/E/N,L/R/N)
   −
| '''B'''
+
:: '''(''' current state '''q<sub>i</sub>''' ''',''' symbol scanned '''S<sub>j</sub>''' ''',''' new state '''q<sub>m</sub>''' ''',''' print symbol '''S<sub>k</sub>'''/erase '''E'''/none '''N''' ''',''' move_tape_one_square left '''L'''/right '''R'''/none '''N''' ''')'''
   −
| L
+
( current state q<sub>i</sub> , symbol scanned S<sub>j</sub> , new state q<sub>m</sub> , print symbol S<sub>k</sub>/erase E/none N , move_tape_one_square left L/right R/none N )
   −
| l
+
(当前状态 q <sub> i </sub > ,符号扫描 s < sub > j </sub > ,新状态 q < sub > m </sub > ,打印符号 s < sub > k </sub >/擦除 E/无 n,move _ tape one _ square left L/right R/none n)
   −
| 1
+
For the remainder of this article "definition 1" (the Turing/Davis convention) will be used.
   −
| C
+
For the remainder of this article "definition 1" (the Turing/Davis convention) will be used.
   −
| c
+
本文的其余部分将使用“定义1”(Turing/Davis约定)。
   −
| L
+
|+ Example: state table for the 3-state 2-symbol busy beaver reduced to 5-tuples
   −
| 1
+
| + 示例: 将3状态2符号穷忙的状态表减少为5元组
   −
| 1
  −
  −
| '''A'''
  −
  −
| R
  −
  −
| r
      +
{| class="wikitable" style="text-align: center"
 +
|+ Example: state table for the 3-state 2-symbol busy beaver reduced to 5-tuples
 +
! Current state
 +
当前状态
 +
! Scanned symbol
 +
扫描符号
 +
!
 +
! Print symbol
 +
打印符号
 +
! Move tape
 +
移动磁带
 +
! Final (i.e. next) state
 +
最终(即下一个)状态
 +
! 5-tuples
 +
5元组
 +
|-
 +
| '''A'''
 +
| 0
 +
|
 
| 1
 
| 1
 
+
| R
| B
+
| '''B'''
 
+
| ('''A''', 0, 1, R, '''B''')
| b
+
|-
 
+
| '''A'''
| L
  −
 
   
| 1
 
| 1
 
+
|
 
| 1
 
| 1
 
+
| L
| '''B'''
+
| '''C'''
 
+
| ('''A''', 1, 1, L, '''C''')
| R
+
|-
 
+
| '''B'''
| r
+
| 0
 
+
|
 +
| 1
 +
| L
 +
| '''A'''
 +
| ('''B''', 0, 1, L, '''A''')
 
|-
 
|-
 
+
| '''B'''
| HALT
  −
 
  −
| HALT
  −
 
   
| 1
 
| 1
 
+
|
|}
  −
 
  −
|}
  −
 
   
| 1
 
| 1
 +
| R
 +
| '''B'''
 +
| ('''B''', 1, 1, R, '''B''')
 +
|-
 +
| '''C'''
 +
| 0
 +
|
 +
| 1
 +
| L
 +
| '''B'''
 +
| ('''C''', 0, 1, L, '''B''')
 +
|-
 +
| '''C'''
 +
| 1
 +
|
 +
| 1
 +
| N
 +
| '''H'''
 +
| ('''C''', 1, 1, N, '''H''')
 +
|}
   −
| L
  −
  −
| '''C'''
  −
  −
In the words of van Emde Boas (1990), p.&nbsp;6: "The set-theoretical object [his formal seven-tuple description similar to the above] provides only partial information on how the machine will behave and what its computations will look like."
     −
用 van Emde Boas (1990)的话来说,第6页: “集合理论对象(类似于上面的形式七元组描述)只提供了关于机器如何运行以及它的计算将是什么样子的部分信息。”
+
In the following table, Turing's original model allowed only the first three lines that he called N1, N2, N3 (cf. Turing in ''The Undecidable'', p.&nbsp;126). He allowed for erasure of the "scanned square" by naming a 0th symbol S<sub>0</sub> = "erase" or "blank", etc. However, he did not allow for non-printing, so every instruction-line includes "print symbol S<sub>k</sub>" or "erase" (cf. footnote 12 in Post (1947), ''The Undecidable'', p.&nbsp;300). The abbreviations are Turing's (''The Undecidable'', p.&nbsp;119). Subsequent to Turing's original paper in 1936–1937, machine-models have allowed all nine possible types of five-tuples:
   −
| 1
+
In the following table, Turing's original model allowed only the first three lines that he called N1, N2, N3 (cf. Turing in The Undecidable, p.&nbsp;126). He allowed for erasure of the "scanned square" by naming a 0th symbol S<sub>0</sub> = "erase" or "blank", etc. However, he did not allow for non-printing, so every instruction-line includes "print symbol S<sub>k</sub>" or "erase" (cf. footnote 12 in Post (1947), The Undecidable, p.&nbsp;300). The abbreviations are Turing's (The Undecidable, p.&nbsp;119). Subsequent to Turing's original paper in 1936–1937, machine-models have allowed all nine possible types of five-tuples:
 
  −
| R
  −
 
  −
For instance,
  −
 
  −
比如说,
  −
 
  −
| '''B'''
  −
 
  −
| 1
  −
 
  −
| R
  −
 
  −
| '''HALT'''
  −
 
  −
|}
  −
 
  −
 
  −
 
  −
Definitions in literature sometimes differ slightly, to make arguments or proofs easier or clearer, but this is always done in such a way that the resulting machine has the same computational power. For example, the set could be changed from <math>\{L,R\}</math> to <math>\{L,R,N\}</math>, where N ("None" or "No-operation") would allow the machine to stay on the same tape cell instead of moving left or right. This would not increase the machine's computational power.
  −
 
  −
文献中的定义有时略有不同,以使论证或证明更容易或更清楚,但这总是以这样的方式进行,得到的机器有相同的计算能力。例如,集合可以从 < math > { l,r } </math > 更改为 < math > { l,r,n } </math > ,其中 n (“ None”或“ No-operation”)将允许机器保持在同一磁带单元上,而不是向左或向右移动。这不会增加机器的计算能力。
  −
 
  −
==Additional details required to visualize or implement Turing machines==
  −
 
  −
In the words of van Emde Boas (1990), p.&nbsp;6: "The set-theoretical object [his formal seven-tuple description similar to the above] provides only partial information on how the machine will behave and what its computations will look like."
  −
 
  −
The most common convention represents each "Turing instruction" in a "Turing table" by one of nine 5-tuples, per the convention of Turing/Davis (Turing (1936) in The Undecidable, p.&nbsp;126-127 and Davis (2000) p.&nbsp;152):
  −
 
  −
根据图灵/戴维斯(图灵(1936)在《无法判定》中的约定,第126-127页和戴维斯(2000)第152页,最常见的约定表示“图灵表”中的每个“图灵指令”由9个5元组中的一个组成:
  −
 
  −
 
  −
 
  −
For instance,
  −
 
  −
(definition 1): (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>/E/N, L/R/N, q<sub>m</sub>)
  −
 
  −
(定义1) : (q < sub > i </sub > ,s < sub > j </sub > ,s < sub > k </sub >/E/N,L/R/N,q < sub > m </sub >)
  −
 
  −
* There will need to be many decisions on what the symbols actually look like, and a failproof way of reading and writing symbols indefinitely.
  −
 
  −
( current state q<sub>i</sub> , symbol scanned S<sub>j</sub> , print symbol S<sub>k</sub>/erase E/none N , move_tape_one_square left L/right R/none N , new state q<sub>m</sub> )
  −
 
  −
(当前状态 q < sub > i </sub > ,符号扫描 s < sub > j </sub > ,打印符号 s < sub > k </sub >/erase E/none n,move _ tape one square left L/right R/none n,新状态 q < sub > m </sub >)
  −
 
  −
* The shift left and shift right operations may shift the tape head across the tape, but when actually building a Turing machine it is more practical to make the tape slide back and forth under the head instead.
  −
 
  −
* The tape can be finite, and automatically extended with blanks as needed (which is closest to the mathematical definition), but it is more common to think of it as stretching infinitely at one or both ends and being pre-filled with blanks except on the explicitly given finite fragment the tape head is on.  (This is, of course, not implementable in practice.)  The tape ''cannot'' be fixed in length, since that would not correspond to the given definition and would seriously limit the range of computations the machine can perform to those of a [[linear bounded automaton]] if the tape was proportional to the input size, or [[finite state machine]] if it was strictly fixed-length.
  −
 
  −
Other authors (Minsky (1967) p.&nbsp;119, Hopcroft and Ullman (1979) p.&nbsp;158, Stone (1972) p.&nbsp;9) adopt a different convention, with new state q<sub>m</sub> listed immediately after the scanned symbol S<sub>j</sub>:
  −
 
  −
其他作者(明斯基(1967)第119页,霍普克罗夫特和乌尔曼(1979)第158页,斯通(1972)第9页)采用了不同的约定,新状态 q </sub > m </sub > 列出后立即扫描符号 s </sub > j </sub > :
  −
 
  −
 
  −
 
  −
(definition 2): (q<sub>i</sub>, S<sub>j</sub>, q<sub>m</sub>, S<sub>k</sub>/E/N, L/R/N)
  −
 
  −
(定义2) : (q < sub > i </sub > ,s < sub > j </sub > ,q < sub > m </sub > ,s < sub > k </sub >/E/N,L/R/N)
  −
 
  −
===Alternative definitions===
  −
 
  −
( current state q<sub>i</sub> , symbol scanned S<sub>j</sub> , new state q<sub>m</sub> , print symbol S<sub>k</sub>/erase E/none N , move_tape_one_square left L/right R/none N )
  −
 
  −
(当前状态 q < sub > i </sub > ,符号扫描 s < sub > j </sub > ,新状态 q < sub > m </sub > ,打印符号 s < sub > k </sub >/erase E/none n,move _ tape one _ square left L/right R/none n)
  −
 
  −
Definitions in literature sometimes differ slightly, to make arguments or proofs easier or clearer, but this is always done in such a way that the resulting machine has the same computational power. For example, the set could be changed from <math>\{L,R\}</math> to <math>\{L,R,N\}</math>, where ''N'' ("None" or "No-operation") would allow the machine to stay on the same tape cell instead of moving left or right. This would not increase the machine's computational power.
  −
 
  −
 
  −
 
  −
For the remainder of this article "definition 1" (the Turing/Davis convention) will be used.
  −
 
  −
本文的其余部分将使用“定义1”(图灵/戴维斯约定)
  −
 
  −
The most common convention represents each "Turing instruction" in a "Turing table" by one of nine 5-tuples, per the convention of Turing/Davis (Turing (1936) in ''The Undecidable'', p.&nbsp;126-127 and Davis (2000) p.&nbsp;152):
  −
 
  −
 
  −
 
  −
{| class="wikitable" style="text-align: center"
  −
 
  −
{ | class = “ wikitable” style = “ text-align: center”
  −
 
  −
: (definition 1): '''(q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>/E/N, L/R/N, q<sub>m</sub>)'''
  −
 
  −
|+ Example: state table for the 3-state 2-symbol busy beaver reduced to 5-tuples
  −
 
  −
| + 示例: 将3状态2符号忙海狸的状态表减少为5元组
  −
 
  −
:: '''(''' current state '''q<sub>i</sub>''' ''',''' symbol scanned '''S<sub>j</sub>''' ''',''' print symbol '''S<sub>k</sub>'''/erase '''E'''/none '''N''' ''',''' move_tape_one_square left '''L'''/right '''R'''/none '''N''' ''',''' new state '''q<sub>m</sub>''' ''')'''
  −
 
  −
! Current state
  −
 
  −
!当前状态
      +
在下表中,图灵最初的模型只允许前三行,他称之为 N1,N2,N3。参见图灵在The Undecidable一书中,第126页)。他通过命名第0个符号 s < sub > 0 </sub > = “ 擦除”或“ 空白”等,允许擦除“扫描方块”。但是,他不允许不打印,所以每条指令行都包括“打印符号 s < sub > k </sub > ”或“ 擦除”(参见Post(1947),The Undecidable,第300页中的脚注12 )。这些缩写是图灵的(The Undecidable,第119页)。在图灵于1936-1937年发表原始论文之后,机器模型已经允许所有九种可能的五元组类型:
    +
{| class="wikitable" style="text-align: center"
 +
|-
 +
!
 +
! Current m-configuration<br />(Turing state)
 +
当前的m配置(图灵状态)
 +
! Tape symbol
 +
磁带符号
 +
! Print-operation
 +
打印
 +
! Tape-motion
 +
磁带运动
 +
! Final m-configuration<br />(Turing state)
 +
最终的M配置(图灵状态)
 +
! 5-tuple
 +
5元组
 +
! 5-tuple comments
 +
5元组注释
 +
! 4-tuple
 +
4元组
 +
|-
 +
| N1
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| Print(S<sub>k</sub>)
 +
| Left L
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, L, q<sub>m</sub>)
 +
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
 +
|
 +
|-
 +
| N2
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| Print(S<sub>k</sub>)
 +
| Right R
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, R, q<sub>m</sub>)
 +
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
 +
|
 +
|-
 +
| N3
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| Print(S<sub>k</sub>)
 +
| None N
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, N, q<sub>m</sub>)
 +
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
 +
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, q<sub>m</sub>)
 +
|-
 +
| 4
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| None N
 +
| Left L
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, N, L, q<sub>m</sub>)
 +
|
 +
| (q<sub>i</sub>, S<sub>j</sub>, L, q<sub>m</sub>)
 +
|-
 +
| 5
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| None N
 +
| Right R
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, N, R, q<sub>m</sub>)
 +
|
 +
| (q<sub>i</sub>, S<sub>j</sub>, R, q<sub>m</sub>)
 +
|-
 +
| 6
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| None N
 +
| None N
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, N, N, q<sub>m</sub>)
 +
| Direct "jump"
 +
| (q<sub>i</sub>, S<sub>j</sub>, N, q<sub>m</sub>)
 +
|-
 +
| 7
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| Erase
 +
| Left L
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, E, L, q<sub>m</sub>)
 +
|
 +
|
 +
|-
 +
| 8
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| Erase
 +
| Right R
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, E, R, q<sub>m</sub>)
 +
|
 +
|
 +
|-
 +
| 9
 +
| q<sub>i</sub>
 +
| S<sub>j</sub>
 +
| Erase
 +
| None N
 +
| q<sub>m</sub>
 +
| (q<sub>i</sub>, S<sub>j</sub>, E, N, q<sub>m</sub>)
 +
|
 +
| (q<sub>i</sub>, S<sub>j</sub>, E, q<sub>m</sub>)
 +
|}
   −
! Scanned symbol
+
Any Turing table (list of instructions) can be constructed from the above nine 5-tuples. For technical reasons, the three non-printing or "N" instructions (4, 5, 6) can usually be dispensed with. For examples see Turing machine examples.
   −
!扫描的符号
+
任何 图灵 表(指令列表)都可以由上面的9个5元组构成。由于技术原因,通常可以省去三个不打印或“ N”指令(4、5、6)。有关示例,请参见图灵机示例。
   −
Other authors (Minsky (1967) p.&nbsp;119, Hopcroft and Ullman (1979) p.&nbsp;158, Stone (1972) p.&nbsp;9) adopt a different convention, with new state '''q<sub>m</sub>''' listed immediately after the scanned symbol S<sub>j</sub>:
+
| S<sub>j</sub>
   −
!
+
| Erase
   −
!
+
Less frequently the use of 4-tuples are encountered: these represent a further atomization of the Turing instructions (cf. Post (1947), Boolos & Jeffrey (1974, 1999), Davis-Sigal-Weyuker (1994)); also see more at Post–Turing machine.
   −
: (definition 2): '''(q<sub>i</sub>, S<sub>j</sub>, q<sub>m</sub>, S<sub>k</sub>/E/N, L/R/N)'''
+
较少遇到使用4元组的情况:这些代表了图灵机指令的进一步原子化(参见Post(1947),Boolos & Jeffrey(1974,1999),Davis-Sigal-Weyuker(1994));也可参见更多的图灵机。
   −
! Print symbol
+
===The "state"===
 +
“状态”
 +
The word "state" used in context of Turing machines can be a source of confusion, as it can mean two things. Most commentators after Turing have used "state" to mean the name/designator of the current instruction to be performed—i.e. the contents of the state register. But Turing (1936) made a strong distinction between a record of what he called the machine's "m-configuration", and the machine's (or person's) "state of progress" through the computation - the current state of the total system. What Turing called "the state formula" includes both the current instruction and ''all'' the symbols on the tape:
   −
!打印符号
+
The word "state" used in context of Turing machines can be a source of confusion, as it can mean two things. Most commentators after Turing have used "state" to mean the name/designator of the current instruction to be performed—i.e. the contents of the state register. But Turing (1936) made a strong distinction between a record of what he called the machine's "m-configuration", and the machine's (or person's) "state of progress" through the computation - the current state of the total system. What Turing called "the state formula" includes both the current instruction and all the symbols on the tape:
   −
:: '''(''' current state '''q<sub>i</sub>''' ''',''' symbol scanned '''S<sub>j</sub>''' ''',''' new state '''q<sub>m</sub>''' ''',''' print symbol '''S<sub>k</sub>'''/erase '''E'''/none '''N''' ''',''' move_tape_one_square left '''L'''/right '''R'''/none '''N''' ''')'''
+
在图灵机的情况中使用 "状态 "一词可能会引起混淆,因为它可以有两种含义。Turing之后的大多数评论家都用 "状态 "来表示当前要执行的指令的名称/代号--即状态寄存器的内容。但Turing(1936)对他所谓的机器 "m配置 "的记录,和机器(或人)通过计算的 "进展状态"--即整个系统的当前状态--作了强烈的区分。Turing所说的 "状态公式 "既包括当前指令,也包括磁带上的所有符号。
   −
! Move tape
+
{{quote|Thus the state of progress of the computation at any stage is completely determined by the note of instructions and the symbols on the tape. That is, the '''state of the system''' may be described by a single expression (sequence of symbols) consisting of the symbols on the tape followed by Δ (which we suppose not to appear elsewhere) and then by the note of instructions. This expression is called the 'state formula'.|''The Undecidable'', pp. 139–140, ’’’<font color=’’#32CD32’’> emphasis added </font>’’’}}
   −
!移动磁带
+
因此,在任何阶段,计算的进展状态完全由指令符和磁带上的符号决定。也就是说,系统的状态可以用一个单一的表达式(符号序列)来描述,这个表达式是由磁带上的符号组成的,后面是Δ(我们假定它不会出现在其他地方),然后是指令符。这个表达式称为 "状态公式"。
    +
- The Undecidable》,第139-140页,’’’<font color=’’#32CD32’’> 强调是后加的</font>’’’。
    +
Earlier in his paper Turing carried this even further: he gives an example where he placed a symbol of the current "m-configuration"—the instruction's label—beneath the scanned square, together with all the symbols on the tape (The Undecidable, p.&nbsp;121); this he calls "the complete configuration" (The Undecidable, p.&nbsp;118). To print the "complete configuration" on one line, he places the state-label/m-configuration to the left of the scanned symbol.
   −
! Final (i.e. next) state
+
早些时候,图灵在他的论文中进行了进一步的研究:他举了一个例子,在该示例中,他把当前 "m-构型 "的符号(指令的标签)和磁带上的所有符号一起放在扫描的方块下面(The Undecidable,第121页);他把这个称为 "完整的构型"(The Undecidable,第118页)。为了将 "完整配置 "打印在一行,他将状态标签/m-配置放在扫描符号的左边。
   −
!最终决定(即。下一步)状态
+
A variant of this is seen in Kleene (1952) where Kleene shows how to write the Gödel number of a machine's "situation": he places the "m-configuration" symbol q<sub>4</sub> over the scanned square in roughly the center of the 6 non-blank squares on the tape (see the Turing-tape figure in this article) and puts it to the right of the scanned square. But Kleene refers to "q<sub>4</sub>" itself as "the machine state" (Kleene, p.&nbsp;374-375). Hopcroft and Ullman call this composite the "instantaneous description" and follow the Turing convention of putting the "current state" (instruction-label, m-configuration) to the left of the scanned symbol (p.&nbsp;149).
   −
For the remainder of this article "definition 1" (the Turing/Davis convention) will be used.
+
在Kleene(1952)中可以看到这样的一个变体,Kleene展示了如何写出一台机器的 "情况 "的’’’<font color=’’#ff8000’’> 哥德尔数Gödel number </font>’’’:他把 "m-配置 "符号q<sub>4</sub>放在磁带上6个非空白方格的大致中心的扫描方格上(见本文图灵-磁带图),并把它放在扫描方格的右边。但Kleene把 "q<sub>4</sub> "本身称为 "机器状态"(Kleene,第374-375页)。Hopcroft和Ullman把这种组合称为 "瞬时描述",并遵循图灵约定,把 "当前状态"(指令标签,m-配置)放在扫描符号的左边(第149页)。
   −
! 5-tuples
+
Example: total state of 3-state 2-symbol busy beaver after 3 "moves" (taken from example "run" in the figure below):
   −
!5元组
+
:: 1'''A'''1
    +
示例:3次“移动”后,三态2符号穷忙的总状态(取自下图中的示例“运行”):
    +
:: 1'''A'''1
   −
|-
+
This means: after three moves the tape has ... 000110000 ... on it, the head is scanning the right-most 1, and the state is '''A'''. Blanks (in this case represented by "0"s) can be part of the total state as shown here: '''B'''01; the tape has a single 1 on it, but the head is scanning the 0 ("blank") to its left and the state is '''B'''.
   −
|-
+
This means: after three moves the tape has ... 000110000 ... on it, the head is scanning the right-most 1, and the state is A. Blanks (in this case represented by "0"s) can be part of the total state as shown here: B01; the tape has a single 1 on it, but the head is scanning the 0 ("blank") to its left and the state is B.
   −
{| class="wikitable" style="text-align: center"
+
这意味着:经过三次移动后,磁带上有......000110000......,磁头正在扫描最右边的1,状态为A。空白(在这种情况下用 "0 "表示)可以成为总状态的一部分,如图所示。B01;磁带上有一个 "1",但磁头正在扫描它左边的 "0"("空白"),状态是B。
   −
| A
+
"State" in the context of Turing machines should be clarified as to which is being described: (''i'') the current instruction, or (''ii'') the list of symbols on the tape together with the current instruction, or (''iii'') the list of symbols on the tape together with the current instruction placed to the left of the scanned symbol or to the right of the scanned symbol.
   −
我会的
+
"State" in the context of Turing machines should be clarified as to which is being described: (i) the current instruction, or (ii) the list of symbols on the tape together with the current instruction, or (iii) the list of symbols on the tape together with the current instruction placed to the left of the scanned symbol or to the right of the scanned symbol.
   −
|+ Example: state table for the 3-state 2-symbol busy beaver reduced to 5-tuples
+
图灵机情况中,应阐明 "状态 "是哪种状态。(i)当前指令,或(ii)磁带上的符号列表连同当前指令,或(iii)磁带上的符号列表连同当前指令放在扫描符号的左边或扫描符号的右边。
   −
| 0
     −
| 0
+
Turing's biographer Andrew Hodges (1983: 107) has noted and discussed this confusion.
   −
! Current state
+
图灵的传记作者安德鲁 · 霍奇斯Andrew Hodges (1983:107)注意到并讨论了这种混淆。
 
  −
|
      +
===Turing machine "state" diagrams===
 +
图灵机的状态图
 +
{|class="wikitable"
 +
|+ The table for the 3-state busy beaver ("P" = print/write a "1")
 +
3状态穷忙的表格("P" = 打印/写入 a "1")
 +
|-
 +
! Tape symbol
 +
磁带符号
 +
! colspan="3" | Current state A
 +
当前状态A
 +
! colspan="3" | Current state B
 +
当前状态B
 +
! colspan="3" | Current state C
 +
当前状态C
 +
|-
 
|
 
|
 +
| Write symbol
 +
写入符号
 +
| Move tape
 +
移动磁带
 +
| Next state
 +
下一个状态
 +
| Write symbol
 +
写入符号
 +
| Move tape
 +
移动磁带
 +
| Next state
 +
下一个状态
 +
| Write symbol
 +
写入符号
 +
| Move tape
 +
移动磁带
 +
| Next state
 +
下一个状态
 +
|-
 +
| '''0'''
 +
| P
 +
| R
 +
| '''B'''
 +
| P
 +
| L
 +
| '''A'''
 +
| P
 +
| L
 +
| '''B'''
 +
|-
 +
| '''1'''
 +
| P
 +
| L
 +
| '''C'''
 +
| P
 +
| R
 +
| '''B'''
 +
| P
 +
| R
 +
| '''HALT'''
 +
|}
   −
! Scanned symbol
  −
  −
| 1
  −
  −
| 1
  −
  −
!
  −
  −
| R
  −
  −
| r
     −
! Print symbol
+
[[File:State diagram 3 state busy beaver 2B.svg|thumb|500px|right|The "3-state busy beaver" Turing machine in a [[Finite State Machine|finite state representation]]. Each circle represents a "state" of the table—an "m-configuration" or "instruction". "Direction" of a state ''transition'' is shown by an arrow. The label (e.g. '''0/P,R''') near the outgoing state (at the "tail" of the arrow) specifies the scanned symbol that causes a particular transition (e.g. '''0''') followed by a slash '''/''', followed by the subsequent "behaviors" of the machine, e.g. "'''P''' '''P'''rint" then move tape "'''R''' '''R'''ight". No general accepted format exists. The convention shown is after McClusky (1965), Booth (1967), Hill, and Peterson (1974).]]
   −
| B
+
"3态穷忙"图灵机的有限状态表示。每个圆圈代表表的一个 "状态"--一个 "m-配置 "或 "指令"。状态转换的 "方向 "用箭头表示。出状态附近的标签(如0/P,R)(在箭头的 "尾部")指定了引起特定转换的扫描符号(如0),后面是斜线/,接着是机器的后续 "行为",如 "P打印 "然后移动磁带 "R右"。没有普遍接受的格式存在。所显示的约定是以McClusky(1965)、Booth(1967)、Hill和Peterson(1974)为蓝本。
   −
| b
+
To the right: the above table as expressed as a "state transition" diagram.
   −
! Move tape
+
右边:上面的表格表示为"状态转换 "图。
   −
| (A, 0, 1, R, B)
+
Usually large tables are better left as tables (Booth, p.&nbsp;74). They are more readily simulated by computer in tabular form (Booth, p.&nbsp;74). However, certain concepts—e.g. machines with "reset" states and machines with repeating patterns (cf. Hill and Peterson p.&nbsp;244ff)—can be more readily seen when viewed as a drawing.
   −
| (a,0,1,r,b)
+
Usually large tables are better left as tables (Booth, p.&nbsp;74). They are more readily simulated by computer in tabular form (Booth, p.&nbsp;74). However, certain concepts—e.g. machines with "reset" states and machines with repeating patterns (cf. Hill and Peterson p.&nbsp;244ff)—can be more readily seen when viewed as a drawing.
   −
! Final (i.e. next) state
+
通常大表最好是以表的形式留下(Booth,第74页)。它们更容易由计算机以表格形式模拟出来(Booth,p.74)。然而,某些概念,例如具有 "复位 "状态的机器和具有重复模式的机器(参见Hill和Peterson p. 244ff)在被视为图纸时更容易被看到。
   −
|-
     −
|-
+
Whether a drawing represents an improvement on its table must be decided by the reader for the particular context. See [[Finite state machine]] for more.
   −
! 5-tuples
+
Whether a drawing represents an improvement on its table must be decided by the reader for the particular context. See Finite state machine for more.
   −
| A
+
图纸是否代表了对其表的改进,必须由读者针对特定的情况来决定。详见有限状态机。
   −
我会的
     −
|-
+
[[File:Moves of a 3-state Busy Beaver.jpg|thumbnail|500px|right|The evolution of the busy-beaver's computation starts at the top and proceeds to the bottom.]]i
   −
| 1
+
The evolution of the busy-beaver's computation starts at the top and proceeds to the bottom.
   −
| 1
+
穷忙的计算进化从顶部开始,一直到底部。
   −
| '''A'''
+
The reader should again be cautioned that such diagrams represent a snapshot of their table frozen in time, not the course ("trajectory") of a computation through time and space. While every time the busy beaver machine "runs" it will always follow the same state-trajectory, this is not true for the "copy" machine that can be provided with variable input "parameters".
   −
|
+
再次提醒读者,这种图表示的是在时间上冻结的表的快照,而不是计算在时间和空间上的过程("轨迹")。虽然穷忙的机器每次 "运行 "都会遵循相同的状态轨迹,但对于可以为变量输入“参数”提供信息的“复制”机器而言,情况并非如此。
   −
|
+
The diagram "Progress of the computation" shows the three-state busy beaver's "state" (instruction) progress through its computation from start to finish. On the far right is the Turing "complete configuration" (Kleene "situation"<!-- Stuation? Not Situation? Is that the right word? Yes, it is, cf. page 375 for example "The Godel number of the stiuation..." and then he shows a tape, etc. This usage runs throughout the chapter. wvbailey~~~~ --><!--So is it "stuation" or "stiuation"?-->, Hopcroft–Ullman "instantaneous description") at each step. If the machine were to be stopped and cleared to blank both the "state register" and entire tape, these "configurations" could be used to rekindle a computation anywhere in its progress (cf. Turing (1936) The Undecidable, pp.&nbsp;139–140).
   −
| 0
+
“计算进度 "图显示了三态穷忙从开始到结束的计算过程中的 "状态"(指令)进度。最右边是每一步的图灵 "完整配置"(Kleene "情况",Hopcroft-Ullman "瞬时描述")。如果机器被停止并清空 "状态寄存器 "和整个磁带,则可以使用这些“配置”在其进行中的任何地方重新启动计算(参见Turing(1936)The Undecidable 第139– 140页)。
   −
| 1
     −
| 1
+
==Models equivalent to the Turing machine model==
 +
等价于图灵机的模型
 +
Many machines that might be thought to have more computational capability than a simple universal Turing machine can be shown to have no more power (Hopcroft and Ullman p.&nbsp;159, cf. Minsky (1967)). They might compute faster, perhaps, or use less memory, or their instruction set might be smaller, but they cannot compute more powerfully (i.e. more mathematical functions). (Recall that the Church–Turing thesis hypothesizes this to be true for any kind of machine: that anything that can be "computed" can be computed by some Turing machine.)
   −
|
+
许多可能被认为比简单的通用图灵机有更多计算能力的机器,实际上并没有更多的能力(Hopcroft和Ullman p. nbsp;159, cf. Minsky(1967))。它们可能计算得更快,或者使用更少的内存,或者它们的指令集可能更小,但是它们不能更强大地计算(即更多的数学函数)。(回想一下,’’’<font color=’’#ff8000’’>Church–Turing理论Church–Turing thesis </font>’’’ Church–Turing 论文假设这对任何机器都是正确的:任何可以被“计算”的东西都可以被某些图灵机器计算。)
   −
| L
+
A Turing machine is equivalent to a single-stack pushdown automaton (PDA) that has been made more flexible and concise by relaxing the last-in-first-out requirement of its stack. In addition, a Turing machine is also equivalent to a two-stack PDA with standard last-in-first-out semantics, by using one stack to model the tape left of the head and the other stack for the tape to the right.
   −
| l
+
图灵机相当于单堆栈’’’<font color=’’#ff8000’’>下推自动机 pushdown automaton</font>’’’(PDA) ,它通过放宽其栈中的“后进先出”要求,使其更加灵活和简洁。此外,通过使用一个堆栈对磁头左侧的磁带进行建模,使用另一个堆栈对磁头右侧的磁带进行建模,图灵机也等效于具有标准“后进先出”语义的双堆栈 PDA。
   −
| 1
+
At the other extreme, some very simple models turn out to be Turing-equivalent, i.e. to have the same computational power as the Turing machine model.
   −
| C
+
在另一个极端,一些非常简单的模型变成了’’’<font color=’’#ff8000’’>图灵等价Turing-equivalent </font>’’’模型,即具有与图灵机模型相同的计算能力。
   −
| c
     −
| R
+
Common equivalent models are the multi-tape Turing machine, multi-track Turing machine, machines with input and output, and the non-deterministic Turing machine (NDTM) as opposed to the deterministic Turing machine (DTM) for which the action table has at most one entry for each combination of symbol and state.
   −
| (A, 1, 1, L, C)
+
常见的等价模型是’’’<font color=’’#ff8000’’>多带图灵机 multi-tape Turing machine</font>’’’、’’’<font color=’’#ff8000’’>多道图灵机 multi-track Turing machine</font>’’’、有输入和输出的机器,以及与确定型图灵机(DTM)相对的’’’<font color=’’#ff8000’’> 非确定型图灵机 non-deterministic Turing machine  </font>’’’(NDTM) ,后者的动作表对于每个符号和状态组合最多只有一个条目。
   −
| (a,1,1,l,c)
+
Read-only, right-moving Turing machines are equivalent to DFAs (as well as NFAs by conversion using the NDFA to DFA conversion algorithm).
   −
| '''B'''
+
只读、右移动的图灵机相当于 DFAs (以及通过使用 NDFA 到 DFA 转换算法转换的 NFA)。
   −
|-
     −
|-
+
For practical and didactical intentions the equivalent register machine can be used as a usual assembly programming language.
   −
| ('''A''', 0, 1, R, '''B''')
+
对于实际的和教学的意图,等价的’’’<font color=’’#ff8000’’> 寄存器机器register machine </font>’’’可以作为通常的汇编’’’<font color=’’#ff8000’’> 编程语言programming language</font>’’’使用。
   −
| B
+
An interesting question is whether the computation model represented by concrete programming languages is Turing equivalent. While the computation of a real computer is based on finite states and thus not capable to simulate a Turing machine, programming languages themselves do not necessarily have this limitation. Kirner et al., 2009 have shown that among the general-purpose programming languages some are Turing complete while others are not. For example, ANSI C is not Turing-equivalent, as all instantiations of ANSI C (different instantiations are possible as the standard deliberately leaves certain behaviour undefined for legacy reasons) imply a finite-space memory. This is because the size of memory reference data types, called pointers, is accessible inside the language. However, other programming languages like Pascal do not have this feature, which allows them to be Turing complete in principle. It is just Turing complete in principle, as memory allocation in a programming language is allowed to fail, which means the programming language can be Turing complete when ignoring failed memory allocations, but the compiled programs executable on a real computer cannot.
   −
| b
+
一个有趣的问题是用具体编程语言表示的计算模型是否是图灵等价的。虽然真实计算机的计算是基于有限状态的,因此无法模拟图灵机,但编程语言本身并不一定具有这种限制。Kirner等人,2009年的研究表明,在通用编程语言中,有些语言是图灵完备的,而有些则不是。例如,’’’<font color=’’#ff8000’’> ANSI C</font>’’’ 并不等同于图灵机,因为ANSI C的所有实例(由于标准出于遗留的原因,故意不定义某些行为,所以可以有不同的实例)都意味着有限空间的内存。这是因为内存引用数据类型的大小,称为指针,可以在语言内部访问。然而,其他编程语言,如’’’<font color=’’#ff8000’’> Pascal</font>’’’ ,则没有这个功能,这使得它们在原则上是图灵等价的。只是原则上是图灵等价的,因为编程语言中的内存分配是允许失败的,也就是说,当忽略失败的内存分配时,编程语言可以是图灵等价的,但在真实计算机上可执行的编译程序却不能。
   −
|-
+
==Choice c-machines, oracle o-machines==
 +
选择c型机、oracle o型机
 +
Early in his paper (1936) Turing makes a distinction between an "automatic machine"—its "motion ... completely determined by the configuration" and a "choice machine":
   −
| 0
+
Early in his paper (1936) Turing makes a distinction between an "automatic machine"—its "motion ... completely determined by the configuration" and a "choice machine":
   −
| 0
+
早在他的论文中(1936年),Turing就对 "运动......完全由配置决定 "的 "自动机"和 "选择机 "进行了区分:
 +
——Solitude意译
 +
{{quote|...whose motion is only partially determined by the configuration ... When such a machine reaches one of these ambiguous configurations, it cannot go on until some arbitrary choice has been made by an external operator. This would be the case if we were using machines to deal with axiomatic systems.|''The Undecidable'', p. 118}}
   −
| '''A'''
+
...它的运动只是部分由配置决定…当这样一台机器达到其中一种不明确的配置时,它不能继续运行,直到外部操作者做出任意的选择。如果我们使用机器来处理公理系统,就会出现这种情况
 +
  ——The Undecidable,第118页
   −
|
+
Turing (1936) does not elaborate further except in a footnote in which he describes how to use an a-machine to "find all the provable formulae of the [Hilbert] calculus" rather than use a choice machine. He "suppose[s] that the choices are always between two possibilities 0 and 1. Each proof will then be determined by a sequence of choices i<sub>1</sub>, i<sub>2</sub>, ..., i<sub>n</sub> (i<sub>1</sub> = 0 or 1, i<sub>2</sub> = 0 or 1, ..., i<sub>n</sub> = 0 or 1), and hence the number 2<sup>n</sup> + i<sub>1</sub>2<sup>n-1</sup> + i<sub>2</sub>2<sup>n-2</sup> + ... +i<sub>n</sub> completely determines the proof. The automatic machine carries out successively proof 1, proof 2, proof 3, ..." (Footnote ‡, The Undecidable, p.&nbsp;138)
   −
|
+
Turing(1936)除了在脚注中描述了如何使用a-machine来“找到所有希尔伯特微积分的可证明公式”,而不是使用选择机之外,没有做进一步的说明。他"假设选择总是在0和1之间。那么每个证明将由i<sub>1</sub>, i<sub>2</sub>, ..., i<sub>n</sub> (i<sub>1</sub> = 0 或 1, i<sub>2</sub> = 0 或 1, ..., i<sub>n</sub> = 0 或 1) 的选择序列决定,因此数字 2<sup>n</sup> + i<sub>1</sub>2<sup>n-1</sup> + i<sub>2</sub>2<sup>n-2</sup> + ... +i<sub>n</sub> 完全决定了证明。自动机依次执行验证1、验证2、验证3,……”(侧重于脚注,The Undecidable,第138页)
   −
| 1
+
This is indeed the technique by which a deterministic (i.e., a-) Turing machine can be used to mimic the action of a nondeterministic Turing machine; Turing solved the matter in a footnote and appears to dismiss it from further consideration.
   −
| 1
+
这确实是一种技术,通过这种技术,一个确定型的(即a -)图灵机可以用来模拟一个非确定型的图灵机的动作; Turing在脚注中解决了这个问题,似乎把它从进一步的考虑中剔除了。
   −
| 1
+
An oracle machine or o-machine is a Turing a-machine that pauses its computation at state "o" while, to complete its calculation, it "awaits the decision" of "the oracle"—an unspecified entity "apart from saying that it cannot be a machine" (Turing (1939), The Undecidable, p.&nbsp;166–168).
   −
|
+
预言机或 o-machine 是一种图灵机器,它将计算暂停在“ o”状态,同时,为了完成计算,它“等待”“oracle”(一个未指定的实体” ,除了说它不可能是一台机器”的决定(Turing(1939) ,The undecutable,p. 166-168)。
   −
| L
     −
| l
+
==Universal Turing machines==
 +
通用图灵机
   −
| 1
+
{{Main|Universal Turing machine}}
 +
主条目:’’’<font color=’’#ff8000’’>通用图灵机 Universal Turing machine</font>’’’
   −
| A
+
[[File:Model of a Turing machine.jpg|thumb|An implementation of a Turing machine]]
   −
我会的
+
An implementation of a Turing machine
   −
| L
+
图灵机的实现
   −
| (B, 0, 1, L, A)
+
As Turing wrote in The Undecidable, p.&nbsp;128 (italics added):
   −
| (b,0,1,l,a)
+
正如图灵在The Undecidable一书中所写,第128页(斜体) :
   −
| '''C'''
     −
|-
+
{{quote|It is possible to invent a ''single machine'' which can be used to compute ''any'' computable sequence. If this machine '''U''' is supplied with the tape on the beginning of which is written the string of quintuples separated by semicolons of some computing machine '''M''', then '''U''' will compute the same sequence as '''M'''.}}
   −
|-
+
我们可以发明一个机器,用来计算任何可计算的序列。如果向这台机器U提供一盘磁带,磁带的开头写着某台计算机M的一串用分号隔开的五元组,那么U将计算出与M相同的序列。
   −
| ('''A''', 1, 1, L, '''C''')
+
This finding is now taken for granted, but at the time (1936) it was considered astonishing. The model of computation that Turing called his "universal machine"—"U" for short—is considered by some (cf. Davis (2000)) to have been the fundamental theoretical breakthrough that led to the notion of the stored-program computer.
   −
| B
+
这一发现现在被认为是理所当然的,但在当时(1936年) ,它被认为是惊人的。Turing称之为“通用机器”(缩写为“U”)的计算模型被一些人(参见Davis(2000))认为是产生存储程序计算机概念的基础理论突破。
   −
| b
+
{{quote|Turing's paper ... contains, in essence, the invention of the modern computer and some of the programming techniques that accompanied it.|Minsky (1967), p. 104}}
   −
|-
+
图灵的论文......实质上包含了现代计算机的发明以及伴随着它的一些编程技术。
   −
| 1
+
——Minsky(1967),第104页
   −
| 1
+
In terms of computational complexity, a multi-tape universal Turing machine need only be slower by logarithmic factor compared to the machines it simulates. This result was obtained in 1966 by F. C. Hennie and R. E. Stearns. (Arora and Barak, 2009, theorem 1.9)
   −
| '''B'''
+
就计算复杂度而言,多带通用图灵机与它所模拟的机器相比,只需要慢上一个对数系数。这个结果是由F.C.Hennie和R.E.Stearns在1966年得到的。(Arora and Barak,2009,定理1.9)
   −
|
+
==Comparison with real machines==
 +
与真实机器的比较
   −
|
+
[[File:Lego Turing Machine.jpg|thumb|A Turing machine realization using [[Lego]] pieces]]
   −
| 0
+
A Turing machine realization using [[Lego pieces]]
   −
| 1
+
使用乐高积木实现的图灵机
   −
| 1
+
It is often said{{By whom|date=February 2016}} that Turing machines, unlike simpler automata, are as powerful as real machines, and are able to execute any operation that a real program can. What is neglected in this statement is that, because a real machine can only have a finite number of ''configurations'', this "real machine" is really nothing but a [[finite state machine]]. On the other hand, Turing machines are equivalent to machines that have an unlimited amount of storage space for their computations.
   −
|
+
It is often said that Turing machines, unlike simpler automata, are as powerful as real machines, and are able to execute any operation that a real program can. What is neglected in this statement is that, because a real machine can only have a finite number of configurations, this "real machine" is really nothing but a finite state machine. On the other hand, Turing machines are equivalent to machines that have an unlimited amount of storage space for their computations.
   −
| R
+
人们常说,图灵机不同于简单的自动机,它和真正的机器一样强大,能够执行真实程序所能执行的任何操作。在这句话中被忽略的是,由于真实的机器只能有有限数量的配置,这个“真实的机器”其实只是一个有限的状态机。另一方面,图灵机相当于拥有无限存储空间进行计算的机器。
   −
| r
+
There are a number of ways to explain why Turing machines are useful models of real computers:
   −
| 1
+
有很多方法可以解释为什么图灵机是 真实计算机的有用模型:
   −
| B
+
# Anything a real computer can compute, a Turing machine can also compute. For example: "A Turing machine can simulate any type of subroutine found in programming languages, including recursive procedures and any of the known parameter-passing mechanisms" (Hopcroft and Ullman p.&nbsp;157). A large enough FSA can also model any real computer, disregarding IO. Thus, a statement about the limitations of Turing machines will also apply to real computers.
   −
| b
+
1. Anything a real computer can compute, a Turing machine can also compute. For example: "A Turing machine can simulate any type of subroutine found in programming languages, including recursive procedures and any of the known parameter-passing mechanisms" (Hopcroft and Ullman p.&nbsp;157). A large enough FSA can also model any real computer, disregarding IO. Thus, a statement about the limitations of Turing machines will also apply to real computers.
   −
| L
+
凡是真实计算机能计算的东西,图灵机也能计算。例如:"图灵机可以模拟真实的计算机,也可以计算真实的计算机。"图灵机可以模拟编程语言中任何类型的子程序,包括递归程序和任何已知的参数传递机制" (Hopcroft and Ullman 第157页)。一个足够大的FSA也可以模拟任何真实的计算机,而不用考虑IO。因此,关于图灵机的局限性的说法也将适用于真实计算机。
   −
| (B, 1, 1, R, B)
     −
| (b,1,1,r,b)
+
# The difference lies only with the ability of a Turing machine to manipulate an unbounded amount of data. However, given a finite amount of time, a Turing machine (like a real machine) can only manipulate a finite amount of data.
   −
| '''A'''
+
2.The difference lies only with the ability of a Turing machine to manipulate an unbounded amount of data. However, given a finite amount of time, a Turing machine (like a real machine) can only manipulate a finite amount of data.
   −
|-
+
区别只在于图灵机操纵无限制的数据量的能力。然而,给定有限的时间,图灵机(像真实的机器一样)只能处理有限的数据量。
   −
|-
+
# Like a Turing machine, a real machine can have its storage space enlarged as needed, by acquiring more disks or other storage media.
   −
| ('''B''', 0, 1, L, '''A''')
+
3.Like a Turing machine, a real machine can have its storage space enlarged as needed, by acquiring more disks or other storage media.
   −
| C
+
像图灵机一样,真实的机器可以根据需要,通过获取更多的磁盘或其他存储介质来扩大其存储空间。
   −
| c
+
# Descriptions of real machine programs using simpler abstract models are often much more complex than descriptions using Turing machines. For example, a Turing machine describing an algorithm may have a few hundred states, while the equivalent deterministic finite automaton (DFA) on a given real machine has quadrillions. This makes the DFA representation infeasible to analyze.
   −
|-
+
4.Descriptions of real machine programs using simpler abstract models are often much more complex than descriptions using Turing machines. For example, a Turing machine describing an algorithm may have a few hundred states, while the equivalent deterministic finite automaton (DFA) on a given real machine has quadrillions. This makes the DFA representation infeasible to analyze.
   −
| 0
+
使用较简单的抽象模型对真机程序的描述往往比使用图灵机的描述要复杂得多。例如,描述算法的图灵机可能有几百个状态,而给定实际机器上的等效确定性有限自动机(DFA)却有四千亿个状态。这使得DFA的表示方式无法分析。
   −
| 0
+
# Turing machines describe algorithms independent of how much memory they use. There is a limit to the memory possessed by any current machine, but this limit can rise arbitrarily in time. Turing machines allow us to make statements about algorithms which will (theoretically) hold forever, regardless of advances in ''conventional'' computing machine architecture.
   −
| '''B'''
+
5. Turing machines describe algorithms independent of how much memory they use. There is a limit to the memory possessed by any current machine, but this limit can rise arbitrarily in time. Turing machines allow us to make statements about algorithms which will (theoretically) hold forever, regardless of advances in conventional computing machine architecture.
   −
|
+
图灵机描述的算法与它们使用多少内存无关。当前任何一台机器所拥有的内存都是有限制的,但这个限制可以随着时间的推移而任意上升。图灵机让我们可以对算法做出(理论上)永恒的陈述,无论传统计算机架构如何进步。
   −
|
+
# Turing machines simplify the statement of algorithms. Algorithms running on Turing-equivalent abstract machines are usually more general than their counterparts running on real machines, because they have arbitrary-precision data types available and never have to deal with unexpected conditions (including, but not limited to, running [[out of memory]]).
   −
| 1
+
6.Turing machines simplify the statement of algorithms. Algorithms running on Turing-equivalent abstract machines are usually more general than their counterparts running on real machines, because they have arbitrary-precision data types available and never have to deal with unexpected conditions (including, but not limited to, running out of memory).
   −
| 1
+
图灵机简化了算法的陈述。运行在图灵机等效的抽象机上的算法通常比运行在真实机器上的同类算法更通用,因为它们有任意精度的数据类型可用,而且永远不用处理意外情况(包括但不限于内存耗尽)。
   −
| 1
+
[[File:Turingmachine.jpg|thumb|An experimental prototype of a Turing machine]]
   −
|
+
An experimental prototype of a Turing machine
   −
| L
+
图灵机的实验原型
   −
| l
+
===Limitations of Turing machines===
 +
图灵机的局限性
   −
| 1
     −
| B
+
====Computational complexity theory====
 +
计算复杂性理论
   −
| b
+
{{further|Computational complexity theory}}
   −
| R
+
A limitation of Turing machines is that they do not model the strengths of a particular arrangement well. For instance, modern stored-program computers are actually instances of a more specific form of [[abstract machine]] known as the [[random-access stored-program machine]] or RASP machine model. Like the [[universal Turing machine]], the RASP stores its "program" in "memory" external to its finite-state machine's "instructions". Unlike the universal Turing machine, the RASP has an infinite number of distinguishable, numbered but unbounded "registers"—memory "cells" that can contain any integer (cf. Elgot and Robinson (1964), Hartmanis (1971), and in particular Cook-Rechow (1973); references at [[random access machine]]). The RASP's finite-state machine is equipped with the capability for indirect addressing (e.g., the contents of one register can be used as an address to specify another register); thus the RASP's "program" can address any register in the register-sequence. The upshot of this distinction is that there are computational optimizations that can be performed based on the memory indices, which are not possible in a general Turing machine; thus when Turing machines are used as the basis for bounding running times, a 'false lower bound' can be proven on certain algorithms' running times (due to the false simplifying assumption of a Turing machine). An example of this is [[binary search]], an algorithm that can be shown to perform more quickly when using the RASP model of computation rather than the Turing machine model.
   −
| (C, 0, 1, L, B)
+
A limitation of Turing machines is that they do not model the strengths of a particular arrangement well. For instance, modern stored-program computers are actually instances of a more specific form of abstract machine known as the random-access stored-program machine or RASP machine model. Like the universal Turing machine, the RASP stores its "program" in "memory" external to its finite-state machine's "instructions". Unlike the universal Turing machine, the RASP has an infinite number of distinguishable, numbered but unbounded "registers"—memory "cells" that can contain any integer (cf. Elgot and Robinson (1964), Hartmanis (1971), and in particular Cook-Rechow (1973); references at random access machine). The RASP's finite-state machine is equipped with the capability for indirect addressing (e.g., the contents of one register can be used as an address to specify another register); thus the RASP's "program" can address any register in the register-sequence. The upshot of this distinction is that there are computational optimizations that can be performed based on the memory indices, which are not possible in a general Turing machine; thus when Turing machines are used as the basis for bounding running times, a 'false lower bound' can be proven on certain algorithms' running times (due to the false simplifying assumption of a Turing machine). An example of this is binary search, an algorithm that can be shown to perform more quickly when using the RASP model of computation rather than the Turing machine model.
   −
| (c,0,1,l,b)
+
图灵机的一个局限性在于它们不能很好地模拟特定排列的优势。例如,现代存储程序计算机实际上是一种更具体的抽象机器的实例,这种抽象机器被称为随机存取存储程序机器或 RASP 机器模型。与通用图灵机一样,RASP 将其“程序”存储在有限状态机的“指令”之外的“内存”中。与通用图灵机不同的是,RASP 具有无限数量可区分的、有编号但无限制的“寄存器”ー可以包含任何整数的内存 "单元"(参见Elgot和Robinson(1964),Hartmanis(1971),特别是Cook-Rechow(1973);参考随机存取机) RASP 的有限状态机可以间接寻址(例如,一个寄存器的内容可以用作另一个寄存器的地址) ,因此当图灵机被用作约束运行时间的基础时,可以证明某些算法的运行时间有一个 "假下限"(由于图灵机的假简化假设)。这方面的一个例子是二进制搜索,当使用 RASP 计算模型而不是图灵机模型时,可以证明这种算法的运行速度更快。
   −
| '''B'''
+
====Concurrency====
 +
并发性
 +
Another limitation of Turing machines is that they do not model concurrency well. For example, there is a bound on the size of integer that can be computed by an always-halting nondeterministic Turing machine starting on a blank tape. (See article on [[unbounded nondeterminism]].) By contrast, there are always-halting concurrent systems with no inputs that can compute an integer of unbounded size. (A process can be created with local storage that is initialized with a count of 0 that concurrently sends itself both a stop and a go message. When it receives a go message, it increments its count by 1 and sends itself a go message. When it receives a stop message, it stops with an unbounded number in its local storage.)
   −
|-
+
Another limitation of Turing machines is that they do not model concurrency well. For example, there is a bound on the size of integer that can be computed by an always-halting nondeterministic Turing machine starting on a blank tape. (See article on unbounded nondeterminism.) By contrast, there are always-halting concurrent systems with no inputs that can compute an integer of unbounded size. (A process can be created with local storage that is initialized with a count of 0 that concurrently sends itself both a stop and a go message. When it receives a go message, it increments its count by 1 and sends itself a go message. When it receives a stop message, it stops with an unbounded number in its local storage.)
   −
|-
+
图灵机的另一个局限性是它们不能很好地模拟并发性。例如,可以由始终停止的非确定型图灵机从空白磁带上开始计算整数大小的界限。(见关于无界非决定论的文章)相比之下,有一些没有输入的总是停止的并发系统可以计算无界大小的整数。(可以用本地存储创建一个进程,这个进程的初始化计数为0,它同时给自己发送一个停止和继续的消息。当它收到一个继续消息时,它将自己的计数增加1,并给自己发送一个继续消息。当它收到停止消息时,它在本地存储中以一个无限制的数字停止)。)
   −
| ('''B''', 1, 1, R, '''B''')
+
====Interaction====
 +
交互
   −
| C
+
In the early days of computing, computer use was typically limited to [[batch processing]], i.e., non-interactive tasks, each producing output data from given input data. Computability theory, which studies computability of functions from inputs to outputs, and for which Turing machines were invented, reflects this practice.
   −
| c
+
In the early days of computing, computer use was typically limited to batch processing, i.e., non-interactive tasks, each producing output data from given input data. Computability theory, which studies computability of functions from inputs to outputs, and for which Turing machines were invented, reflects this practice.
   −
|-
+
在计算机的早期,计算机的使用通常仅限于批处理,即非交互式任务,每个任务从给定的输入数据中产生输出数据。可计算性理论研究从输入到输出的函数的可计算性,图灵机就是为此而发明的,它反映了这种做法。
   −
| 1
+
Since the 1970s, [[interactivity|interactive]] use of computers became much more common.  In principle, it is possible to model this by having an external agent read from the tape and write to it at the same time as a Turing machine, but this rarely matches how interaction actually happens; therefore, when describing interactivity, alternatives such as [[Input/output automaton|I/O automata]] are usually preferred.
   −
| 1
+
Since the 1970s, interactive use of computers became much more common.  In principle, it is possible to model this by having an external agent read from the tape and write to it at the same time as a Turing machine, but this rarely matches how interaction actually happens; therefore, when describing interactivity, alternatives such as I/O automata are usually preferred.
   −
| '''C'''
+
自20世纪70年代以来,计算机的交互式使用变得更加普遍。原则上,可以通过让外部代理与图灵机同时从磁带中读出并写入磁带的方式进行建模,但这很少与交互的实际发生方式相吻合;因此,在描述交互性时,通常首选I/O自动机等替代程序。
   −
|
     −
|
+
==History==
 +
历史
 +
{{See also|Algorithm|Church–Turing thesis}}
   −
| 0
+
They were described in 1936 by [[Alan Turing]].
   −
| 1
+
They were described in 1936 by Alan Turing.
   −
| 1
+
Alan Turing在1936年描述了它们。
   −
|
+
===Historical background: computational machinery===
 +
历史背景:计算机器
   −
| N
+
[[Robin Gandy]] (1919–1995)—a student of Alan Turing (1912–1954), and his lifelong friend—traces the lineage of the notion of "calculating machine" back to [[Charles Babbage]] (circa 1834) and actually proposes "Babbage's Thesis":
   −
| n
+
Robin Gandy (1919–1995)—a student of Alan Turing (1912–1954), and his lifelong friend—traces the lineage of the notion of "calculating machine" back to Charles Babbage (circa 1834) and actually proposes "Babbage's Thesis":
   −
| 1
+
罗宾•甘迪Robin Gandy (1919-1995)是 Alan Turing (1912-1954)的学生,也是他一生的朋友,他将“计算机器”这一概念的渊源追溯到 查尔斯•巴贝奇Charles Babbage (大约1834年) ,并提出了“ 巴贝奇论” :
   −
| H
+
{{quote|''That the whole of development and operations of analysis are now capable of being executed by machinery''.|(italics in Babbage as cited by Gandy, p. 54)}}
   −
我们会找到他的
+
整个发展和分析的操作现在都可以由机器来执行.
   −
| L
+
Gandy's analysis of Babbage's [[Analytical Engine]] describes the following five operations (cf. p.&nbsp;52–53):
   −
| (C, 1, 1, N, H)
+
Gandy's analysis of Babbage's Analytical Engine describes the following five operations (cf. p.&nbsp;52–53):
   −
| (c,1,1,n,h)
+
甘迪对巴贝奇分析机的分析描述了以下五种操作(参见。第52-53页) :
   −
| '''B'''
+
# The arithmetic functions +, −, ×, where − indicates "proper" subtraction {{nowrap|''x'' ''y'' {{=}} 0}} if {{nowrap|''y'' ≥ ''x''}}.
   −
|}
+
The arithmetic functions +, −, ×, where − indicates "proper" subtraction  0}} if  {{nowrap|''y'' ≥ ''x''}}.
 +
算术函数 + ,-,× ,其中-表示“适当的”减法x-y=0,如果y ≥x。
   −
|}
+
# Any sequence of operations is an operation.
   −
| ('''C''', 0, 1, L, '''B''')
+
Any sequence of operations is an operation.
   −
|-
+
任何运算序列都是一个运算。
   −
In the following table, Turing's original model allowed only the first three lines that he called N1, N2, N3 (cf. Turing in The Undecidable, p.&nbsp;126). He allowed for erasure of the "scanned square" by naming a 0th symbol S<sub>0</sub> = "erase" or "blank", etc. However, he did not allow for non-printing, so every instruction-line includes "print symbol S<sub>k</sub>" or "erase" (cf. footnote 12 in Post (1947), The Undecidable, p.&nbsp;300). The abbreviations are Turing's (The Undecidable, p.&nbsp;119). Subsequent to Turing's original paper in 1936–1937, machine-models have allowed all nine possible types of five-tuples:
+
# Iteration of an operation (repeating n times an operation P).
   −
在下表中,图灵的原始模型只允许前三行,他称之为 N1,N2,N3。图灵在不可判定的,126页)。通过命名第0个符号 s < sub > 0 </sub > = “ erase”或“ blank”等,他允许擦除“扫描的正方形”。然而,他不允许非打印,因此每个指令行包括“打印符号 s < sub > k </sub > ”或“ erase”(参见。后注12(1947) ,无法判定的,第300页)。这些缩写是图灵的(无法判定的,p. 119)。在图灵1936-1937年的原始论文之后,机器模型允许所有九种可能的五元组类型:
+
Iteration of an operation (repeating n times an operation P). Iteration of an operation (repeating n times an operation P).
   −
| '''C'''
+
操作的迭代(重复 n 次操作 p)。
   −
| 1
+
# Conditional iteration (repeating n times an operation P conditional on the "success" of test T).
   −
{| class="wikitable" style="text-align: center"
+
Conditional iteration (repeating n times an operation P conditional on the "success" of test T).
   −
{ | class = “ wikitable” style = “ text-align: center”
+
条件迭代(以测试 t 的“成功”为条件重复 n 次操作 p)。
   −
|
+
# Conditional transfer (i.e., conditional "[[goto]]").
   −
|-
+
Conditional transfer (i.e., conditional "goto").
   −
|-
+
条件转移(即有条件的“ goto”)。
   −
| 1
+
Gandy states that "the functions which can be calculated by (1), (2), and (4) are precisely those which are [[Turing computable]]." (p.&nbsp;53). He cites other proposals for "universal calculating machines" including those of [[Percy Ludgate]] (1909), [[Leonardo Torres y Quevedo]] (1914), [[Maurice d'Ocagne]] (1922), [[Louis Couffignal]] (1933), [[Vannevar Bush]] (1936), [[Howard Aiken]] (1937). However:
   −
!
+
Gandy states that "the functions which can be calculated by (1), (2), and (4) are precisely those which are Turing computable." (p.&nbsp;53). He cites other proposals for "universal calculating machines" including those of Percy Ludgate (1909), Leonardo Torres y Quevedo (1914), Maurice d'Ocagne (1922), Louis Couffignal (1933), Vannevar Bush (1936), Howard Aiken (1937). However:
   −
!
+
Gandy指出: “可由(1)、(2)和(4)计算出来的函数恰恰是那些图灵可计算的函数。”(p. 53).他引用了其他关于“通用计算机”的提议,包括珀西 · 卢德盖特Percy Ludgate (1909年)、莱昂纳多 · 托雷斯 · 奎维多Leonardo Torres y Quevedo(1914年)、莫里斯 · d’奥卡涅Maurice d'Ocagne (1922年)、路易斯 · 库夫尼纳尔Louis Couffignal(1933年)、万尼瓦尔 · 布什Vannevar Bush (1936年)、霍华德 · 艾肯Howard Aiken(1937年)。然而:
   −
| N
+
{{quote|… the emphasis is on programming a fixed iterable sequence of arithmetical operations. The fundamental importance of conditional iteration and conditional transfer for a general theory of calculating machines is not recognized…|Gandy p. 55}}
   −
! Current m-configuration<br />(Turing state)
+
...强调的是一个固定的可迭代的算术运算序列的编程。没有认识到条件迭代和条件转移对一般计算机理论的根本重要性......。
   −
!当前 m 配置 < br/> (图灵状态)
+
- Gandy,第55页
   −
| '''H'''
+
===The Entscheidungsproblem (the "decision problem"): Hilbert's tenth question of 1900===
   −
! Tape symbol
+
“决策问题”:希尔伯特Hilbert 1900年提出的第10号问题
 +
With regard to [[Hilbert's problems]] posed by the famous mathematician [[David Hilbert]] in 1900, an aspect of problem #10 had been floating about for almost 30 years before it was framed precisely. Hilbert's original expression for #10 is as follows:
   −
!磁带符号
+
With regard to Hilbert's problems posed by the famous mathematician David Hilbert in 1900, an aspect of problem #10 had been floating about for almost 30 years before it was framed precisely. Hilbert's original expression for #10 is as follows:
   −
| ('''C''', 1, 1, N, '''H''')
     −
! Print-operation
     −
!打印操作
+
关于著名数学家大卫•希尔伯特David Hilbert在1900年提出的Hilbert问题,10号问题的一个方面已经浮动了近30年,才被准确地框定下来。希尔伯特对10号问题的原始表达式如下。
   −
|}
+
{{quote|'''10. Determination of the solvability of a Diophantine equation'''. Given a [[Diophantine equation]] with any number of unknown quantities and with rational integral coefficients: To devise a process according to which it can be determined in a finite number of operations whether the equation is solvable in rational integers.
   −
! Tape-motion
+
丢番图方程可解性的确定。给定一个具有任意数量未知量且有理积分系数的丢番图方程。设计一个过程,根据这个过程,可以在有限的运算次数中 确定方程是否可以用有理整数来解。
   −
!磁带运动
+
The Entscheidungsproblem [decision problem for [[first-order logic]]] is solved when we know a procedure that allows for any given logical expression to decide by finitely many operations its validity or satisfiability ... The Entscheidungsproblem must be considered the main problem of mathematical logic.|quoted, with this translation and the original German, in Dershowitz and Gurevich, 2008}}
    +
The Entscheidungsproblem [decision problem for first-order logic] is solved when we know a procedure that allows for any given logical expression to decide by finitely many operations its validity or satisfiability ... The Entscheidungsproblem must be considered the main problem of mathematical logic.|quoted, with this translation and the original German, in Dershowitz and Gurevich, 2008}}
    +
当我们知道一个程序,允许任何给定的逻辑表达式通过有限多的操作来决定其有效性或可满足性时,判定问题[一阶逻辑的决策问题]就被解决了。可判定性问题必须被认为是数理逻辑的主要问题。—2008年,德尔肖维茨Dershowitz和古列维奇Gurevich引用了此译文和德文原文
   −
! Final m-configuration<br />(Turing state)
+
By 1922, this notion of "[[Entscheidungsproblem]]" had developed a bit, and [[Heinrich Behmann|H. Behmann]] stated that
   −
!最终 m 配置 < br/> (图灵状态)
+
By 1922, this notion of "Entscheidungsproblem" had developed a bit, and H. Behmann stated that
   −
In the following table, Turing's original model allowed only the first three lines that he called N1, N2, N3 (cf. Turing in ''The Undecidable'', p.&nbsp;126). He allowed for erasure of the "scanned square" by naming a 0th symbol S<sub>0</sub> = "erase" or "blank", etc. However, he did not allow for non-printing, so every instruction-line includes "print symbol S<sub>k</sub>" or "erase" (cf. footnote 12 in Post (1947), ''The Undecidable'', p.&nbsp;300). The abbreviations are Turing's (''The Undecidable'', p.&nbsp;119). Subsequent to Turing's original paper in 1936–1937, machine-models have allowed all nine possible types of five-tuples:
+
到了1922年,这个“可判定问题”的概念有了些许发展,h. Behmann 指出:
   −
! 5-tuple
+
{{quote|...&nbsp;most general form of the Entscheidungsproblem [is] as follows:
   −
!五元组
+
{{quote|...&nbsp;most general form of the Entscheidungsproblem [is] as follows:
    +
判定问题的一般形式如下:
    +
<blockquote>A quite definite generally applicable prescription is required which will allow one to decide in a finite number of steps the truth or falsity of a given purely logical assertion ...</blockquote>|Gandy p. 57, quoting Behmann}}
 +
{{quote|Behmann remarks that ... the general problem is equivalent to the problem of deciding which mathematical propositions are 规定true.|''ibid.''}}
 +
{{quote|If one were able to solve the Entscheidungsproblem then one would have a "procedure for solving many (or even all) mathematical problems".|''ibid.'', p. 92}}
   −
! 5-tuple comments
+
<blockquote>A quite definite generally applicable prescription is required which will allow one to decide in a finite number of steps the truth or falsity of a given purely logical assertion ...</blockquote>|Gandy p. 57, quoting Behmann}}
   −
!5-tuple 注释
+
需要一个相当明确的、普遍适用的处方,它将允许人们在有限的步骤中决定一个给定的纯逻辑论断的真假... ..
 +
—Gandy,第57页,引用Behmann的话。
   −
{| class="wikitable" style="text-align: center"
+
{{quote|Behmann remarks that ... the general problem is equivalent to the problem of deciding which mathematical propositions are true.|''ibid.''}}
   −
! 4-tuple
+
Behmann指出,......一般问题相当于决定哪些数学命题是真的问题。
 +
—同上
 +
{{quote|If one were able to solve the Entscheidungsproblem then one would have a "procedure for solving many (or even all) mathematical problems".|''ibid.'', p. 92}}
   −
!四元组
+
如果一能够解决判定问题,那么人们就会有一个 "解决许多(甚至所有)数学问题的程序"。
   −
|-
+
- 同上,第92页
   −
|-
+
By the 1928 international congress of mathematicians, Hilbert "made his questions quite precise. First, was mathematics ''[[Completeness (logic)|complete]]'' ... Second, was mathematics ''[[Consistency proof|consistent]]'' ... And thirdly, was mathematics ''[[Decidability (logic)|decidable]]''?" (Hodges p.&nbsp;91, Hawking p.&nbsp;1121). The first two questions were answered in 1930 by [[Kurt Gödel]] at the very same meeting where Hilbert delivered his retirement speech (much to the chagrin of Hilbert); the third—the Entscheidungsproblem—had to wait until the mid-1930s.
   −
|-
+
By the 1928 international congress of mathematicians, Hilbert "made his questions quite precise. First, was mathematics complete ... Second, was mathematics consistent ... And thirdly, was mathematics decidable?" (Hodges p.&nbsp;91, Hawking p.&nbsp;1121). The first two questions were answered in 1930 by Kurt Gödel at the very same meeting where Hilbert delivered his retirement speech (much to the chagrin of Hilbert); the third—the Entscheidungsproblem—had to wait until the mid-1930s.
   −
!
+
到了1928年的国际数学家大会,Hilbert把他的问题说得非常精确。第一,数学是完整的吗? 第二,数学是一致的吗? 第三,数学是可判定的吗? ”(Hodges p. 91,Hawking p. 1121)。1930年,在Hilbert发表退休演讲的同一次会议上,库尔特 · 哥德尔(Kurt Gödel)回答了前两个问题(这让Hilbert颇为懊恼) ; 而第三个问题(判定问题)不得不等到上世纪30年代中期。
   −
| N1
+
The problem was that an answer first required a precise definition of "''definite general applicable prescription''", which Princeton professor [[Alonzo Church]] would come to call "[[effective calculability]]", and in 1928 no such definition existed. But over the next 6–7 years [[Emil Post]] developed his definition of a worker moving from room to room writing and erasing marks per a list of instructions (Post 1936), as did Church and his two students [[Stephen Kleene]] and [[J. B. Rosser]] by use of Church's [[lambda-calculus]] and Gödel's [[recursion theory]] (1934). Church's paper (published 15 April 1936) showed that the Entscheidungsproblem was indeed "undecidable" and beat Turing to the punch by almost a year (Turing's paper submitted 28 May 1936, published January 1937). In the meantime, Emil Post submitted a brief paper in the fall of 1936, so Turing at least had priority over Post. While Church refereed Turing's paper, Turing had time to study Church's paper and add an Appendix where he sketched a proof that Church's lambda-calculus and his machines would compute the same functions.
   −
| n 1
+
The problem was that an answer first required a precise definition of "definite general applicable prescription", which Princeton professor Alonzo Church would come to call "effective calculability", and in 1928 no such definition existed. But over the next 6–7 years Emil Post developed his definition of a worker moving from room to room writing and erasing marks per a list of instructions (Post 1936), as did Church and his two students Stephen Kleene and J. B. Rosser by use of Church's lambda-calculus and Gödel's recursion theory (1934). Church's paper (published 15 April 1936) showed that the Entscheidungsproblem was indeed "undecidable" and beat Turing to the punch by almost a year (Turing's paper submitted 28 May 1936, published January 1937). In the meantime, Emil Post submitted a brief paper in the fall of 1936, so Turing at least had priority over Post. While Church refereed Turing's paper, Turing had time to study Church's paper and add an Appendix where he sketched a proof that Church's lambda-calculus and his machines would compute the same functions.
   −
! Current m-configuration<br />(Turing state)
+
问题在于,要回答这个问题,首先需要对“明确的通用规则”下一个精确定义。后来,普林斯顿大学的教授阿朗佐•丘奇Alonzo Church将其称为“有效可计算性”,而在1928年并不存在这样的定义。但在接下来的6-7年里,埃米尔•波斯特Emil Post 发展了他的定义,即一个工人按照一张指令表从一个房间移动到另一个房间书写和擦除标记(1936),Church和他的两个学生斯蒂芬•克莱恩Stephen Kleene和 j.B. Rosser也是如此, 利用 Church 的 λ微积分和哥德尔的递归理论。Church的论文(发表于1936年4月15日)表明,判定问题确实是“无法判定的” ,比Turing早了将近一年(Turing的论文1936年5月28日提交,1937年1月发表)。与此同时,Emil Post 在1936年秋天提交了一篇简短的论文,所以图灵至少比波斯特更有优先权。当丘奇评审图灵的论文时,图灵有时间研究丘奇的论文,并在附录中添加了一个草图,证明Church的λ 微积分和他的机器可以计算同样的函数。
   −
| q<sub>i</sub>
+
{{quote|But what Church had done was something rather different, and in a certain sense weaker. ... the Turing construction was more direct, and provided an argument from first principles, closing the gap in Church's demonstration.|Hodges p. 112}}
   −
| q < sub > i </sub >
+
但Church所做的是完全不同的事情,而且在某种意义上是较弱的。......Turing的构造更直接,并提供了最初原则的论据,从而弥补了 Church证明中的空白。
   −
! Tape symbol
+
—Hodges,第112页
   −
| S<sub>j</sub>
+
And Post had only proposed a definition of [[Church–Turing thesis|calculability]] and criticized Church's "definition", but had proved nothing.
   −
| s < sub > j </sub >
+
And Post had only proposed a definition of calculability and criticized Church's "definition", but had proved nothing.
   −
! Print-operation
+
Post只是提出了一个可计算性的定义,并批评了Church的“定义” ,但没有证明任何事情。
   −
| Print(S<sub>k</sub>)
+
===Alan Turing's a-machine===
   −
| 列印(s < sub > k </sub >)
+
Alan Turing的机器
   −
! Tape-motion
+
In the spring of 1935, Turing as a young Master's student at [[King's College Cambridge]], [[UK]], took on the challenge; he had been stimulated by the lectures of the logician [[M. H. A. Newman]] "and learned from them of Gödel's work and the Entscheidungsproblem ... Newman used the word 'mechanical' ... In his obituary of Turing 1955 Newman writes:
   −
| Left L
+
In the spring of 1935, Turing as a young Master's student at King's College Cambridge, UK, took on the challenge; he had been stimulated by the lectures of the logician M. H. A. Newman "and learned from them of Gödel's work and the Entscheidungsproblem ... Newman used the word 'mechanical' ... In his obituary of Turing 1955 Newman writes:
   −
左 l
+
1935年春天,Turing作为英国剑桥大学国王学院的一名年轻的硕士生接受了这个挑战,他曾受到逻辑学家 纽曼m. h. a. Newman 的演讲的鼓舞,从他们那里学到了哥德尔的作品和判定问题。在Turing1955年的讣告中,Newman写道:
   −
! Final m-configuration<br />(Turing state)
+
{{quote|To the question 'what is a "mechanical" process?' Turing returned the characteristic answer 'Something that can be done by a machine' and he embarked on the highly congenial task of analysing the general notion of a computing machine.|Gandy, p. 74}}
   −
| q<sub>m</sub>
+
对于 "什么是'机械'过程 "?图灵回答了一个特有的答案'可以由机器完成的事情',然后他开始着手分析计算机的一般概念。
   −
| q < sub > m </sub >
+
—Gandy,第74页
   −
! 5-tuple
+
Gandy states that:
   −
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, L, q<sub>m</sub>)
+
Gandy states that:
   −
| (q < sub > i </sub > ,s < sub > j </sub > ,s < sub > k </sub > ,l,q < sub > m </sub >)
+
甘迪表示:
   −
! 5-tuple comments
+
{{quote|I suppose, but do not know, that Turing, right from the start of his work, had as his goal a proof of the undecidability of the Entscheidungsproblem. He told me that the 'main idea' of the paper came to him when he was lying in Grantchester meadows in the summer of 1935. The 'main idea' might have either been his analysis of computation or his realization that there was a universal machine, and so a [[Cantor's diagonal argument|diagonal argument]] to prove unsolvability.|''ibid.'', p. 76}}
   −
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
+
我想,但我不知道,图灵,从他的工作开始,就把证明判定问题的不可判定性作为他的目标。他告诉我,1935年夏天,当他躺在格兰切斯特草地的时候,他想到了这篇论文的'主要想法'。这个 "主要想法 "可能是他对计算的分析,也可能是他意识到有一个普遍的机器,因此有一个对角线论证来证明不可解性。
   −
| “空白” = s < sub > 0 </sub > ,1 = s < sub > 1 </sub > 等。
+
- 同上,第76页
   −
! 4-tuple
+
While Gandy believed that Newman's statement above is "misleading", this opinion is not shared by all. Turing had a lifelong interest in machines: "Alan had dreamt of inventing typewriters as a boy; [his mother] Mrs. Turing had a typewriter; and he could well have begun by asking himself what was meant by calling a typewriter 'mechanical'" (Hodges p.&nbsp;96). While at Princeton pursuing his PhD, Turing built a Boolean-logic multiplier (see below). His PhD thesis, titled "[[Systems of Logic Based on Ordinals]]", contains the following definition of "a computable function":
   −
|
+
While Gandy believed that Newman's statement above is "misleading", this opinion is not shared by all. Turing had a lifelong interest in machines: "Alan had dreamt of inventing typewriters as a boy; [his mother] Mrs. Turing had a typewriter; and he could well have begun by asking himself what was meant by calling a typewriter 'mechanical'" (Hodges p.&nbsp;96). While at Princeton pursuing his PhD, Turing built a Boolean-logic multiplier (see below). His PhD thesis, titled "Systems of Logic Based on Ordinals", contains the following definition of "a computable function":
   −
|
+
虽然Gandy认为Newman的上述言论有“误导性” ,但并非所有人都赞同这一观点。Turing一生都对机器有着浓厚的兴趣: “Alan从小就梦想发明打字机; (他的母亲)图灵夫人有一台打字机; 他很可能一开始就问自己,把打字机称为'机械'是什么意思"(Hodges p.96)。在普林斯顿攻读博士学位时,图灵制造了一个布尔逻辑乘法器(见下文)。他的博士论文题为 "基于序数的逻辑系统",包含了 "可计算函数 "的如下定义。
   −
|-
+
{{quote|It was stated above that 'a function is effectively calculable if its values can be found by some purely mechanical process'. We may take this statement literally, understanding by a purely mechanical process one which could be carried out by a machine. It is possible to give a mathematical description, in a certain normal form, of the structures of these machines. The development of these ideas leads to the author's definition of a computable function, and to an identification of computability with effective calculability. It is not difficult, though somewhat laborious, to prove that these three definitions [the 3rd is the λ-calculus] are equivalent.|Turing (1939) in ''The Undecidable'', p. 160}}
   −
|-
+
上面说过,"如果一个函数的值可以通过某种纯粹的机械过程找到,那么这个函数就是有效的可计算函数"。我们可以从字面上理解这句话,将纯机械过程理解为可以由机器完成的过程。可以用一定的正常形式对这些机器的结构进行数学描述。这些思想的发展导致了作者对可计算函数的定义,以及对可计算性与有效可计算性的认同。要证明这三个定义第3个是λ可计算性是等价的,虽然有些费力。
   −
|-
+
- 图灵(1939)在The Undecidable一书中,第160页。
   −
| N1
+
When Turing returned to the UK he ultimately became jointly responsible for breaking the German secret codes created by encryption machines called "The Enigma"; he also became involved in the design of the ACE ([[Automatic Computing Engine]]), "[Turing's] ACE proposal was effectively self-contained, and its roots lay not in the [[EDVAC]] [the USA's initiative], but in his own universal machine" (Hodges p.&nbsp;318). Arguments still continue concerning the origin and nature of what has been named by Kleene (1952) [[Turing's Thesis]]. But what Turing ''did prove'' with his computational-machine model appears in his paper "[[On Computable Numbers, with an Application to the Entscheidungsproblem]]" (1937):
   −
| N2
+
When Turing returned to the UK he ultimately became jointly responsible for breaking the German secret codes created by encryption machines called "The Enigma"; he also became involved in the design of the ACE (Automatic Computing Engine), "[Turing's] ACE proposal was effectively self-contained, and its roots lay not in the EDVAC [the USA's initiative], but in his own universal machine" (Hodges p.&nbsp;318). Arguments still continue concerning the origin and nature of what has been named by Kleene (1952) Turing's Thesis. But what Turing did prove with his computational-machine model appears in his paper "On Computable Numbers, with an Application to the Entscheidungsproblem" (1937):
   −
2
+
当Turing回到英国后,他他最终成为了破译德国密码“英格玛”的共同负责人的加密机所创造的德国秘密密码;他还参与了ACE(自动计算引擎)的设计,"Turing的ACE提案实际上是自成一体的,它的根源不在于EDVAC,而在于他自己的通用机器"(Hodges p.318)。关于被Kleene(1952)命名为图灵论文的起源和性质的争论仍在继续。但图灵用他的计算机模型确实证明了什么,出现在他的论文《论可计算的数字,以及对可判定性的应用》(1937)中:
   −
| q<sub>i</sub>
+
{{quote|[that] the Hilbert Entscheidungsproblem can have no solution ... I propose, therefore to show that there can be no general process for determining whether a given formula U of the functional calculus K is provable, i.e. that there can be no machine which, supplied with any one U of these formulae, will eventually say whether U is provable.|from Turing's paper as reprinted in ''The Undecidable'', p. 145}}
   −
| q<sub>i</sub>
+
希尔伯特-恩赐问题不可能有解......。因此,我提出要证明,不可能有一个一般的过程来确定函数微积分K的一个给定公式U是否可证明,也就是说,不可能有一台机器在提供任何一个公式U的情况下,最终会说出U是否可证明。
   −
| q < sub > i </sub >
+
- 摘自Turing的论文,详见The Undecidable,第145页。
   −
| S<sub>j</sub>
+
Turing's example (his second proof): If one is to ask for a general procedure to tell us: "Does this machine ever print 0", the question is "undecidable".
   −
| S<sub>j</sub>
+
Turing的例子(他的第二个证明):如果有人要求用一般程序来告诉我们:“这台机器是否曾经打印过0”,这个问题就是“无法确定的”。
   −
| s < sub > j </sub >
+
===1937–1970: The "digital computer", the birth of "computer science"==
   −
| Print(S<sub>k</sub>)
+
1937–1970: "数字计算机","计算机科学 "的诞生。
   −
| Print(S<sub>k</sub>)
+
In 1937, while at Princeton working on his PhD thesis, Turing built a digital (Boolean-logic) multiplier from scratch, making his own electromechanical relays (Hodges p.&nbsp;138). "Alan's task was to embody the logical design of a Turing machine in a network of relay-operated switches ..." (Hodges p.&nbsp;138). While Turing might have been just initially curious and experimenting, quite-earnest work in the same direction was going in Germany ([[Konrad Zuse]] (1938)), and in the United States ([[Howard Aiken]]) and [[George Stibitz]] (1937); the fruits of their labors were used by both the Axis and Allied militaries in [[World War II]] (cf. Hodges p.&nbsp;298–299). In the early to mid-1950s [[Hao Wang (academic)|Hao Wang]] and [[Marvin Minsky]] reduced the Turing machine to a simpler form (a precursor to the [[Post–Turing machine]] of [[Martin Davis (mathematician)|Martin Davis]]); simultaneously European researchers were reducing the new-fangled [[electronic computer]] to a computer-like theoretical object equivalent to what was now being called a "Turing machine". In the late 1950s and early 1960s, the coincidentally parallel developments of Melzak and Lambek (1961), Minsky (1961), and Shepherdson and Sturgis (1961) carried the European work further and reduced the Turing machine to a more friendly, computer-like abstract model called the [[counter machine]]; Elgot and Robinson (1964), Hartmanis (1971), Cook and Reckhow (1973) carried this work even further with the [[register machine]] and [[random-access machine]] models—but basically all are just multi-tape Turing machines with an arithmetic-like instruction set.
   −
| 列印(s < sub > k </sub >)
+
In 1937, while at Princeton working on his PhD thesis, Turing built a digital (Boolean-logic) multiplier from scratch, making his own electromechanical relays (Hodges p.&nbsp;138). "Alan's task was to embody the logical design of a Turing machine in a network of relay-operated switches ..." (Hodges p.&nbsp;138). While Turing might have been just initially curious and experimenting, quite-earnest work in the same direction was going in Germany (Konrad Zuse (1938)), and in the United States (Howard Aiken) and George Stibitz (1937); the fruits of their labors were used by both the Axis and Allied militaries in World War II (cf. Hodges p.&nbsp;298–299). In the early to mid-1950s Hao Wang and Marvin Minsky reduced the Turing machine to a simpler form (a precursor to the Post–Turing machine of Martin Davis); simultaneously European researchers were reducing the new-fangled electronic computer to a computer-like theoretical object equivalent to what was now being called a "Turing machine". In the late 1950s and early 1960s, the coincidentally parallel developments of Melzak and Lambek (1961), Minsky (1961), and Shepherdson and Sturgis (1961) carried the European work further and reduced the Turing machine to a more friendly, computer-like abstract model called the counter machine; Elgot and Robinson (1964), Hartmanis (1971), Cook and Reckhow (1973) carried this work even further with the register machine and random-access machine models—but basically all are just multi-tape Turing machines with an arithmetic-like instruction set.
   −
| Left L
+
1937年,在普林斯顿写博士论文的时候,Turing从零开始制造了一个数字(布尔逻辑)乘法器,自制了机电继电器(Hodges p. 138)。“Alan的任务是将图灵机的逻辑设计体现在继电器操作的开关网络中......”(Hodges p. 138)。虽然Turing最初可能只是好奇和试验,但是在德国(Konrad Zuse,1938年)和美国(Howard Aiken,1937年)都在朝着同一个方向努力,他们的劳动成果被轴心国和盟国的军队在二战中使用。Hodges p. 298-299)。在20世纪50年代早期到中期,Hao Wang 和 Marvin Minsky 将图灵机简化为一种更简单的形式(它是 Martin Davis 的后图灵机的前身) ; 与此同时,欧洲研究人员将这种新型电子计算机简化为一种类似于计算机的理论物体,相当于现在所说的“图灵机”。在20世纪50年代后期和60年代初期, Melzak 和 Lambek (1961)、 Minsky (1961)和 Shepherdson and Sturgis (1961)等人不约而同地同步发展,进一步推进了欧洲的工作,并将图灵机简化为一个更友好的、类似计算机的抽象模型,称为计数器; Elgot 和 Robinson (1964)、 Hartmanis (1971)、 Cook 和 Reckhow (1973)将这项工作进一步推进到寄存器和随机存取机器模型ーー但基本上所有这些都只是带有类似算术指令集的多带图灵机。
   −
| Right R
+
===1970–present: the Turing machine as a model of computation===
   −
| 右 r
+
1970年至今:作为计算模型的图灵机
   −
| q<sub>m</sub>
+
Today, the counter, register and random-access machines and their sire the Turing machine continue to be the models of choice for theorists investigating questions in the [[theory of computation]]. In particular, [[computational complexity theory]] makes use of the Turing machine:
   −
| q<sub>m</sub>
+
Today, the counter, register and random-access machines and their sire the Turing machine continue to be the models of choice for theorists investigating questions in the theory of computation. In particular, computational complexity theory makes use of the Turing machine:
   −
| q < sub > m </sub >
+
今天,计数器、寄存器和随机存取机以及它们的祖先图灵机仍然是理论家们研究计算理论问题的首选模型。特别是,计算复杂性理论利用了图灵机。
   −
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, L, q<sub>m</sub>)
+
{{quote|Depending on the objects one likes to manipulate in the computations (numbers like nonnegative integers or alphanumeric strings), two models have obtained a dominant position in machine-based complexity theory:
   −
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, R, q<sub>m</sub>)
+
{{quote|Depending on the objects one likes to manipulate in the computations (numbers like nonnegative integers or alphanumeric strings), two models have obtained a dominant position in machine-based complexity theory:
   −
| (q < sub > i </sub > ,s < sub > j </sub > ,s < sub > k </sub > ,r,q < sub > m </sub >)
+
根据人们在计算中喜欢操作的对象(非负整数或字母数字串等数字),有两种模型在基于机器的复杂性理论中获得了主导地位:
   −
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
     −
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
+
<blockquote>''the off-line multitape Turing machine''..., which represents the standard model for string-oriented computation, and the ''random access machine (RAM)'' as introduced by Cook and Reckhow ..., which models the idealized Von Neumann style computer.</blockquote>|van Emde Boas 1990:4}}
   −
| “空白” = s < sub > 0 </sub > ,1 = s < sub > 1 </sub > 等。
+
<blockquote>the off-line multitape Turing machine..., which represents the standard model for string-oriented computation, and the random access machine (RAM) as introduced by Cook and Reckhow ..., which models the idealized Von Neumann style computer.</blockquote>|van Emde Boas 1990:4}}
   −
|
     −
|
+
离线多带图灵机... ,它代表了面向字符串计算的标准模型,以及 Cook 和 Reckhow... 提出的随机存取机(RAM) ,它是理想化的冯诺依曼式计算机的模型。
 +
- van Emde Boas 1990:4
   −
|
+
{{quote|Only in the related area of analysis of algorithms this role is taken over by the RAM model.|van Emde Boas 1990:16}}
   −
|-
+
只有在算法分析的相关领域,这个角色才被RAM模型所取代。
   −
|-
+
- van Emde Boas 1990:16
   −
|-
+
==See also==
 +
另请参见
   −
| N2
+
{{divcol|colwidth=22em}}
   −
| N3
+
* [[Arithmetical hierarchy]] 算术层次结构
   −
| N3
+
* [[Bekenstein bound]], showing the impossibility of infinite-tape Turing machines of finite size and bounded energy 贝肯斯坦约束,表明不可能出现有限大小和有限能量的无限带图灵机。
   −
| q<sub>i</sub>
+
* [[BlooP and FlooP]] BlooP 和 FlooP
   −
| q<sub>i</sub>
+
* [[Busy beaver]]穷忙
   −
| q < sub > i </sub >
+
* [[Chaitin constant]] or [[Omega (computer science)]] for information relating to the halting problem
 +
Chaitin常数或Omega(计算机科学)以获取有关停止问题的信息。
   −
| S<sub>j</sub>
+
* [[Chinese Room]] 中式客房
   −
| S<sub>j</sub>
+
* [[Conway's Game of Life]], a Turing-complete cellular automaton
   −
| s < sub > j </sub >
+
康威生命游戏,一个图灵完备的细胞自动机
   −
| Print(S<sub>k</sub>)
+
* [[Digital infinity]]
   −
| Print(S<sub>k</sub>)
+
数字无限
   −
| 列印(s < sub > k </sub >)
+
* [[The Emperor's New Mind]]
   −
| Right R
+
皇帝的新脑
   −
| None N
+
* [[Enumerator (in theoretical computer science)]] 枚举器(理论计算机科学)
   −
| None n
+
* [[Genetix]] Genetix
   −
| q<sub>m</sub>
+
* ''[[Gödel, Escher, Bach: An Eternal Golden Braid]]'', a famous book that discusses, among other topics, the Church–Turing thesis
   −
| q<sub>m</sub>
+
哥德尔、埃舍尔、巴赫:《永恒的金带》,这是一本讨论Church–Turing论等话题的名著。
   −
| q < sub > m </sub >
+
* [[Halting problem]], for more references 停机问题,更多参考
   −
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, R, q<sub>m</sub>)
+
* [[Harvard architecture]] 哈佛结构
   −
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, N, q<sub>m</sub>)
+
* [[Imperative programming]] 命令式编程
   −
| (q < sub > i </sub > ,s < sub > j </sub > ,s < sub > k </sub > ,n,q < sub > m </sub >)
+
* [[Langton's ant]] and [[Turmite]]s, simple two-dimensional analogues of the Turing machine 兰顿蚁和图米特,图灵机的简单二维类比
   −
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
+
* [[List of things named after Alan Turing]] 以Alan Turing命名的事物列表
   −
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
+
* [[Modified Harvard architecture]] 修改后的哈佛结构
   −
| “空白” = s < sub > 0 </sub > ,1 = s < sub > 1 </sub > 等。
+
* [[Probabilistic Turing machine]] 概率图灵机
   −
|
+
* [[Random-access Turing machine]] 随机存取图灵机
   −
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, q<sub>m</sub>)
+
* [[Quantum Turing machine]] 量子图灵机
   −
| (q < sub > i </sub > ,s < sub > j </sub > ,s < sub > k </sub > ,q < sub > m </sub >)
+
* [[Claude Shannon]], another leading thinker in information theory
 
  −
|-
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
| N3
  −
 
  −
| 4
  −
 
  −
| 4
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q < sub > i </sub >
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| s < sub > j </sub >
  −
 
  −
| Print(S<sub>k</sub>)
  −
 
  −
| None N
  −
 
  −
| None n
  −
 
  −
| None N
  −
 
  −
| Left L
  −
 
  −
左 l
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q < sub > m </sub >
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, N, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, N, L, q<sub>m</sub>)
  −
 
  −
| (q < sub > i </sub > ,s < sub > j </sub > ,n,l,q < sub > m </sub >)
  −
 
  −
| "blank" = S<sub>0</sub>, 1=S<sub>1</sub>, etc.
  −
 
  −
|
  −
 
  −
|
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, S<sub>k</sub>, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, L, q<sub>m</sub>)
  −
 
  −
| (q < sub > i </sub > ,s < sub > j </sub > ,l,q < sub > m </sub >)
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
| 4
  −
 
  −
| 5
  −
 
  −
| 5
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q < sub > i </sub >
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| s < sub > j </sub >
  −
 
  −
| None N
  −
 
  −
| None N
  −
 
  −
| None n
  −
 
  −
| Left L
  −
 
  −
| Right R
  −
 
  −
| 右 r
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q < sub > m </sub >
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, N, L, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, N, R, q<sub>m</sub>)
  −
 
  −
| (q < sub > i </sub > ,s < sub > j </sub > ,n,r,q < sub > m </sub >)
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, L, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, R, q<sub>m</sub>)
  −
 
  −
| (q < sub > i </sub > ,s < sub > j </sub > ,r,q < sub > m </sub >)
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
| 5
  −
 
  −
| 6
  −
 
  −
| 6
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q < sub > i </sub >
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| s < sub > j </sub >
  −
 
  −
| None N
  −
 
  −
| None N
  −
 
  −
| None n
  −
 
  −
| Right R
  −
 
  −
| None N
  −
 
  −
| None n
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q < sub > m </sub >
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, N, R, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, N, N, q<sub>m</sub>)
  −
 
  −
| (q < sub > i </sub > ,s < sub > j </sub > ,n,q < sub > m </sub >)
  −
 
  −
|
  −
 
  −
| Direct "jump"
  −
 
  −
| 直接“跳”
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, R, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, N, q<sub>m</sub>)
  −
 
  −
| (q < sub > i </sub > ,s < sub > j </sub > ,n,q < sub > m </sub >)
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
| 6
  −
 
  −
| 7
  −
 
  −
| 7
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q < sub > i </sub >
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| s < sub > j </sub >
  −
 
  −
| None N
  −
 
  −
| Erase
  −
 
  −
擦除
  −
 
  −
| None N
  −
 
  −
| Left L
  −
 
  −
左 l
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q < sub > m </sub >
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, N, N, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, E, L, q<sub>m</sub>)
  −
 
  −
(q < sub > i </sub > ,s < sub > j </sub > ,e,l,q < sub > m </sub >)
  −
 
  −
| Direct "jump"
  −
 
  −
|
  −
 
  −
|
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, N, q<sub>m</sub>)
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
| 7
  −
 
  −
| 8
  −
 
  −
| 8
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q < sub > i </sub >
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| s < sub > j </sub >
  −
 
  −
| Erase
  −
 
  −
| Erase
  −
 
  −
擦除
  −
 
  −
| Left L
  −
 
  −
| Right R
  −
 
  −
| 右 r
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q < sub > m </sub >
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, E, L, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, E, R, q<sub>m</sub>)
  −
 
  −
(q < sub > i </sub > ,s < sub > j </sub > ,e,r,q < sub > m </sub >)
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
| 8
  −
 
  −
| 9
  −
 
  −
| 9
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q<sub>i</sub>
  −
 
  −
| q < sub > i </sub >
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| s < sub > j </sub >
  −
 
  −
| Erase
  −
 
  −
| Erase
  −
 
  −
擦除
  −
 
  −
| Right R
  −
 
  −
| None N
  −
 
  −
| None n
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| q < sub > m </sub >
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, E, R, q<sub>m</sub>)
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, E, N, q<sub>m</sub>)
  −
 
  −
(q < sub > i </sub > ,s < sub > j </sub > ,e,n,q < sub > m </sub >)
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|
  −
 
  −
|
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, E, q<sub>m</sub>)
  −
 
  −
| (q < sub > i </sub > ,s < sub > j </sub > ,e,q < sub > m </sub >)
  −
 
  −
|-
  −
 
  −
|}
  −
 
  −
|}
  −
 
  −
| 9
  −
 
  −
| q<sub>i</sub>
  −
 
  −
Any Turing table (list of instructions) can be constructed from the above nine 5-tuples. For technical reasons, the three non-printing or "N" instructions (4, 5, 6) can usually be dispensed with. For examples see Turing machine examples.
  −
 
  −
任何 Turing 表(指令列表)都可以由上面的9个5元组构成。由于技术原因,三个非打印或“ n”指令(4,5,6)通常可以省略。有关例子,请参阅图灵机的例子。
  −
 
  −
| S<sub>j</sub>
  −
 
  −
| Erase
  −
 
  −
Less frequently the use of 4-tuples are encountered: these represent a further atomization of the Turing instructions (cf. Post (1947), Boolos & Jeffrey (1974, 1999), Davis-Sigal-Weyuker (1994)); also see more at Post–Turing machine.
  −
 
  −
遇到4元组使用的频率较低: 这些代表了图灵指令的进一步原子化(参见。Post (1947) ,Boolos & Jeffrey (1974,1999) ,Davis-Sigal-Weyuker (1994) ;.
  −
 
  −
| None N
  −
 
  −
| q<sub>m</sub>
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, E, N, q<sub>m</sub>)
  −
 
  −
The word "state" used in context of Turing machines can be a source of confusion, as it can mean two things. Most commentators after Turing have used "state" to mean the name/designator of the current instruction to be performed—i.e. the contents of the state register. But Turing (1936) made a strong distinction between a record of what he called the machine's "m-configuration", and the machine's (or person's) "state of progress" through the computation - the current state of the total system. What Turing called "the state formula" includes both the current instruction and all the symbols on the tape:
  −
 
  −
在图灵机上下文中使用的“状态”这个词可能会引起混淆,因为它可能意味着两件事。图灵之后的大多数评论员都使用“ state”来表示当前要执行的指令的名称/指示器ーー即。国家登记册的内容。但是图灵(1936)在他所谓的机器“ m 配置”的记录和机器(或人)通过计算的“进展状态”——整个系统的当前状态——之间做出了很大的区别。图灵所说的“状态公式”包括当前指令和磁带上的所有符号:
  −
 
  −
|
  −
 
  −
| (q<sub>i</sub>, S<sub>j</sub>, E, q<sub>m</sub>)
  −
 
  −
|}
  −
 
  −
 
  −
 
  −
Earlier in his paper Turing carried this even further: he gives an example where he placed a symbol of the current "m-configuration"—the instruction's label—beneath the scanned square, together with all the symbols on the tape (The Undecidable, p.&nbsp;121); this he calls "the complete configuration" (The Undecidable, p.&nbsp;118). To print the "complete configuration" on one line, he places the state-label/m-configuration to the left of the scanned symbol.
  −
 
  −
在论文的前面,图灵进一步阐述了这个观点: 他举了一个例子,他把当前“ m 配置”(指令的标签)的一个符号和磁带上的所有符号(无法判定,第121页)放在了扫描的正方形下面,他称之为“完整配置”(无法判定,第118页)。为了在一行上打印“完整配置” ,他将 state-label/m-configuration 放在扫描符号的左侧。
  −
 
  −
Any Turing table (list of instructions) can be constructed from the above nine 5-tuples. For technical reasons, the three non-printing or "N" instructions (4, 5, 6) can usually be dispensed with. For examples see [[Turing machine examples]].
  −
 
  −
 
  −
 
  −
A variant of this is seen in Kleene (1952) where Kleene shows how to write the Gödel number of a machine's "situation": he places the "m-configuration" symbol q<sub>4</sub> over the scanned square in roughly the center of the 6 non-blank squares on the tape (see the Turing-tape figure in this article) and puts it to the right of the scanned square. But Kleene refers to "q<sub>4</sub>" itself as "the machine state" (Kleene, p.&nbsp;374-375). Hopcroft and Ullman call this composite the "instantaneous description" and follow the Turing convention of putting the "current state" (instruction-label, m-configuration) to the left of the scanned symbol (p.&nbsp;149).
  −
 
  −
在 Kleene (1952年) ,Kleene 展示了如何写出机器“状态”的哥德尔数: 他将“ m 配置”符号 q < sub > 4 </sub > 放置在磁带上6个非空白方块的中心,并将其放置在被扫描方块的右侧。但 Kleene 将“ q < sub > 4 </sub > ”本身称为“机器状态”(Kleene,p. 374-375)。霍普克罗夫特和乌尔曼称这种组合为“瞬时描述” ,并遵循图灵约定,将“当前状态”(指令-标签,m-配置)放在扫描符号的左侧(第149页)。
  −
 
  −
Less frequently the use of 4-tuples are encountered: these represent a further atomization of the Turing instructions (cf. Post (1947), Boolos & Jeffrey (1974, 1999), Davis-Sigal-Weyuker (1994)); also see more at [[Post–Turing machine]].
  −
 
  −
 
  −
 
  −
Example: total state of 3-state 2-symbol busy beaver after 3 "moves" (taken from example "run" in the figure below):
  −
 
  −
例如: 3个状态2个符号的忙碌海狸在3个“ move”之后的总状态(取自下图中的“ run”示例) :
  −
 
  −
===The "state"===
  −
 
  −
1A1
  −
 
  −
1A1
  −
 
  −
The word "state" used in context of Turing machines can be a source of confusion, as it can mean two things. Most commentators after Turing have used "state" to mean the name/designator of the current instruction to be performed—i.e. the contents of the state register. But Turing (1936) made a strong distinction between a record of what he called the machine's "m-configuration", and the machine's (or person's) "state of progress" through the computation - the current state of the total system. What Turing called "the state formula" includes both the current instruction and ''all'' the symbols on the tape:
  −
 
  −
This means: after three moves the tape has ... 000110000 ... on it, the head is scanning the right-most 1, and the state is A. Blanks (in this case represented by "0"s) can be part of the total state as shown here: B01; the tape has a single 1 on it, but the head is scanning the 0 ("blank") to its left and the state is B.
  −
 
  −
这意味着: 三步之后,磁带有... 000110000... 在它上面,磁头正在扫描最右边的1,状态是 a。空格(在这里用“0”表示)可以是总状态的一部分,如下所示: B01; 磁带上有一个单独的1,但磁头正在扫描其左边的0(“空白”) ,状态是 b。
  −
 
  −
 
  −
 
  −
{{quote|Thus the state of progress of the computation at any stage is completely determined by the note of instructions and the symbols on the tape. That is, the '''state of the system''' may be described by a single expression (sequence of symbols) consisting of the symbols on the tape followed by Δ (which we suppose not to appear elsewhere) and then by the note of instructions. This expression is called the 'state formula'.|''The Undecidable'', pp. 139–140, emphasis added}}
  −
 
  −
"State" in the context of Turing machines should be clarified as to which is being described: (i) the current instruction, or (ii) the list of symbols on the tape together with the current instruction, or (iii) the list of symbols on the tape together with the current instruction placed to the left of the scanned symbol or to the right of the scanned symbol.
  −
 
  −
图灵机上下文中的”状态”应当澄清: (i)当前指令,或者(ii)磁带上的符号列表连同当前指令,或者(iii)磁带上的符号列表连同扫描符号左侧或扫描符号右侧的当前指令。
  −
 
  −
 
  −
 
  −
Earlier in his paper Turing carried this even further: he gives an example where he placed a symbol of the current "m-configuration"—the instruction's label—beneath the scanned square, together with all the symbols on the tape (''The Undecidable'', p.&nbsp;121); this he calls "the ''complete configuration''" (''The Undecidable'', p.&nbsp;118). To print the "complete configuration" on one line, he places the state-label/m-configuration to the ''left'' of the scanned symbol.
  −
 
  −
Turing's biographer Andrew Hodges (1983: 107) has noted and discussed this confusion.
  −
 
  −
图灵的传记作者安德鲁 · 霍奇斯(1983:107)注意到并讨论了这种混淆。
  −
 
  −
 
  −
 
  −
A variant of this is seen in Kleene (1952) where [[Stephen Cole Kleene|Kleene]] shows how to write the [[Gödel number]] of a machine's "situation": he places the "m-configuration" symbol q<sub>4</sub> over the scanned square in roughly the center of the 6 non-blank squares on the tape (see the Turing-tape figure in this article) and puts it to the ''right'' of the scanned square. But Kleene refers to "q<sub>4</sub>" itself as "the machine state" (Kleene, p.&nbsp;374-375). Hopcroft and Ullman call this composite the "instantaneous description" and follow the Turing convention of putting the "current state" (instruction-label, m-configuration) to the ''left'' of the scanned symbol (p.&nbsp;149).
  −
 
  −
 
  −
 
  −
'''Example: total state of 3-state 2-symbol busy beaver after 3 "moves"''' (taken from example "run" in the figure below):
  −
 
  −
{|class="wikitable"
  −
 
  −
{ | class = “ wikitable”
  −
 
  −
:: 1'''A'''1
  −
 
  −
|+ The table for the 3-state busy beaver ("P" = print/write a "1")
  −
 
  −
| + 3州繁忙海狸的桌子(“ p” = 打印/写一个“1”)
  −
 
  −
This means: after three moves the tape has ... 000110000 ... on it, the head is scanning the right-most 1, and the state is '''A'''. Blanks (in this case represented by "0"s) can be part of the total state as shown here: '''B'''01; the tape has a single 1 on it, but the head is scanning the 0 ("blank") to its left and the state is '''B'''.
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
 
  −
 
  −
! Tape symbol
  −
 
  −
!磁带符号
  −
 
  −
"State" in the context of Turing machines should be clarified as to which is being described: (''i'') the current instruction, or (''ii'') the list of symbols on the tape together with the current instruction, or (''iii'') the list of symbols on the tape together with the current instruction placed to the left of the scanned symbol or to the right of the scanned symbol.
  −
 
  −
! colspan="3" | Current state A
  −
 
  −
!Colspan = “3” | 当前状态 a
  −
 
  −
 
  −
 
  −
! colspan="3" | Current state B
  −
 
  −
!Colspan = “3” | 当前状态 b
  −
 
  −
Turing's biographer Andrew Hodges (1983: 107) has noted and discussed this confusion.
  −
 
  −
! colspan="3" | Current state C
  −
 
  −
!Colspan = “3” | 当前状态 c
  −
 
  −
 
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
===Turing machine "state" diagrams===
  −
 
  −
|
  −
 
  −
|
  −
 
  −
 
  −
 
  −
| Write symbol
  −
 
  −
| 写入符号
  −
 
  −
{|class="wikitable"
  −
 
  −
| Move tape
  −
 
  −
移动磁带
  −
 
  −
|+ The table for the 3-state busy beaver ("P" = print/write a "1")
  −
 
  −
| Next state
  −
 
  −
下一个州
  −
 
  −
|-
  −
 
  −
| Write symbol
  −
 
  −
| 写入符号
  −
 
  −
! Tape symbol
  −
 
  −
| Move tape
  −
 
  −
移动磁带
  −
 
  −
! colspan="3" | Current state A
  −
 
  −
| Next state
  −
 
  −
下一个州
  −
 
  −
! colspan="3" | Current state B
  −
 
  −
| Write symbol
  −
 
  −
| 写入符号
  −
 
  −
! colspan="3" | Current state C
  −
 
  −
| Move tape
  −
 
  −
移动磁带
  −
 
  −
|-
  −
 
  −
| Next state
  −
 
  −
下一个州
  −
 
  −
|
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
| Write symbol
  −
 
  −
| 0
  −
 
  −
| 0
  −
 
  −
| Move tape
  −
 
  −
| P
  −
 
  −
| p
  −
 
  −
| Next state
  −
 
  −
| R
  −
 
  −
| r
  −
 
  −
| Write symbol
  −
 
  −
| B
  −
 
  −
| b
  −
 
  −
| Move tape
  −
 
  −
| P
  −
 
  −
| p
  −
 
  −
| Next state
  −
 
  −
| L
  −
 
  −
| l
  −
 
  −
| Write symbol
  −
 
  −
| A
  −
 
  −
我会的
  −
 
  −
| Move tape
  −
 
  −
| P
  −
 
  −
| p
  −
 
  −
| Next state
  −
 
  −
| L
  −
 
  −
| l
  −
 
  −
|-
  −
 
  −
| B
  −
 
  −
| b
  −
 
  −
| '''0'''
  −
 
  −
|-
  −
 
  −
|-
  −
 
  −
| P
  −
 
  −
| 1
  −
 
  −
| 1
  −
 
  −
| R
  −
 
  −
| P
  −
 
  −
| p
  −
 
  −
| '''B'''
  −
 
  −
| L
  −
 
  −
| l
  −
 
  −
| P
  −
 
  −
| C
  −
 
  −
| c
  −
 
  −
| L
  −
 
  −
| P
  −
 
  −
| p
  −
 
  −
| '''A'''
  −
 
  −
| R
  −
 
  −
| r
  −
 
  −
| P
  −
 
  −
| B
  −
 
  −
| b
  −
 
  −
| L
  −
 
  −
| P
  −
 
  −
| p
  −
 
  −
| '''B'''
  −
 
  −
| R
  −
 
  −
| r
  −
 
  −
|-
  −
 
  −
| HALT
  −
 
  −
| HALT
  −
 
  −
| '''1'''
  −
 
  −
|}
  −
 
  −
|}
  −
 
  −
| P
  −
 
  −
| L
  −
 
  −
finite state representation. Each circle represents a "state" of the table—an "m-configuration" or "instruction". "Direction" of a state transition is shown by an arrow. The label (e.g. 0/P,R) near the outgoing state (at the "tail" of the arrow) specifies the scanned symbol that causes a particular transition (e.g. 0) followed by a slash /, followed by the subsequent "behaviors" of the machine, e.g. "P Print" then move tape "R Right". No general accepted format exists. The convention shown is after McClusky (1965), Booth (1967), Hill, and Peterson (1974).]]
  −
 
  −
有限状态表示。每个圆圈表示一个表的“状态”ーー一个“ m 配置”或“指令”。状态转换的“方向”用箭头表示。标签(例如:。0/P,r)指定导致特定转换的扫描符号(例如:。0)后跟斜线/,后跟机器的后续“行为” ,例如:。“ p 打印”然后移动磁带“ r 右”。没有普遍接受的格式存在。这个展览是在麦克卢斯基(1965) ,布斯(1967) ,希尔和彼得森(1974)之后展出的
  −
 
  −
| '''C'''
  −
 
  −
| P
  −
 
  −
To the right: the above table as expressed as a "state transition" diagram.
  −
 
  −
向右: 以上表格用“状态转换”图表示。
  −
 
  −
| R
  −
 
  −
| '''B'''
  −
 
  −
Usually large tables are better left as tables (Booth, p.&nbsp;74). They are more readily simulated by computer in tabular form (Booth, p.&nbsp;74). However, certain concepts—e.g. machines with "reset" states and machines with repeating patterns (cf. Hill and Peterson p.&nbsp;244ff)—can be more readily seen when viewed as a drawing.
  −
 
  −
通常大的桌子最好留作桌子(Booth,第74页)。它们更容易被计算机以表格的形式模拟(Booth,74页)。然而,某些概念ーー例如。具有“复位”状态的机器和具有重复模式的机器(参见。希尔和彼得森 p. 244ff)---- 更容易被看作是一幅画。
  −
 
  −
| P
  −
 
  −
| R
  −
 
  −
Whether a drawing represents an improvement on its table must be decided by the reader for the particular context. See Finite state machine for more.
  −
 
  −
绘图是否代表对其表的改进,必须由读者根据特定的上下文来决定。有关更多信息,请参见有限状态机。
  −
 
  −
| '''HALT'''
  −
 
  −
|}
  −
 
  −
The evolution of the busy-beaver's computation starts at the top and proceeds to the bottom.
  −
 
  −
忙碌海狸计算的进化从顶部开始,一直到底部。
  −
 
  −
 
  −
 
  −
[[File:State diagram 3 state busy beaver 2B.svg|thumb|500px|right|The "3-state busy beaver" Turing machine in a [[Finite State Machine|finite state representation]]. Each circle represents a "state" of the table—an "m-configuration" or "instruction". "Direction" of a state ''transition'' is shown by an arrow. The label (e.g. '''0/P,R''') near the outgoing state (at the "tail" of the arrow) specifies the scanned symbol that causes a particular transition (e.g. '''0''') followed by a slash '''/''', followed by the subsequent "behaviors" of the machine, e.g. "'''P''' '''P'''rint" then move tape "'''R''' '''R'''ight". No general accepted format exists. The convention shown is after McClusky (1965), Booth (1967), Hill, and Peterson (1974).]]
  −
 
  −
The reader should again be cautioned that such diagrams represent a snapshot of their table frozen in time, not the course ("trajectory") of a computation through time and space. While every time the busy beaver machine "runs" it will always follow the same state-trajectory, this is not true for the "copy" machine that can be provided with variable input "parameters".
  −
 
  −
读者应该再次注意,这样的图表代表了它们的表在时间上冻结的快照,而不是通过时间和空间计算的过程(“轨迹”)。虽然每次繁忙的海狸机器“运行”它总是遵循相同的状态轨迹,这是不正确的“复制”机器,可以提供可变的输入“参数”。
  −
 
  −
 
  −
 
  −
To the right: the above table as expressed as a "state transition" diagram.
  −
 
  −
The diagram "Progress of the computation" shows the three-state busy beaver's "state" (instruction) progress through its computation from start to finish. On the far right is the Turing "complete configuration" (Kleene "situation"<!-- Stuation? Not Situation? Is that the right word? Yes, it is, cf. page 375 for example "The Godel number of the stiuation..." and then he shows a tape, etc. This usage runs throughout the chapter. wvbailey~~~~ --><!--So is it "stuation" or "stiuation"?-->, Hopcroft–Ullman "instantaneous description") at each step. If the machine were to be stopped and cleared to blank both the "state register" and entire tape, these "configurations" could be used to rekindle a computation anywhere in its progress (cf. Turing (1936) The Undecidable, pp.&nbsp;139–140).
  −
 
  −
图表“计算进度”显示了三态繁忙海狸的“状态”(指令)进度通过其计算从开始到结束。最右边是图灵“完整配置”(Kleene“情况” < ! -- 研究?不是形势?这个词对吗?是的,没错。例如,第375页“ The Godel number of The stiuation... ” ,然后他展示了一个磁带,等等。这个用法贯穿整个章节。所以它是“研究”还是“退化” ? ——霍普克罗夫特-乌尔曼“瞬间描述”)在每一步。如果机器被停止并清空“状态寄存器”和整个磁带,这些“配置”可用于在其进程的任何地方重新启动计算(参见。图灵(1936) The undecutable,pp. 139-140)。
  −
 
  −
 
  −
 
  −
Usually large tables are better left as tables (Booth, p.&nbsp;74). They are more readily simulated by computer in tabular form (Booth, p.&nbsp;74). However, certain concepts—e.g. machines with "reset" states and machines with repeating patterns (cf. Hill and Peterson p.&nbsp;244ff)—can be more readily seen when viewed as a drawing.
  −
 
  −
 
  −
 
  −
Whether a drawing represents an improvement on its table must be decided by the reader for the particular context. See [[Finite state machine]] for more.
  −
 
  −
 
  −
 
  −
Many machines that might be thought to have more computational capability than a simple universal Turing machine can be shown to have no more power (Hopcroft and Ullman p.&nbsp;159, cf. Minsky (1967)). They might compute faster, perhaps, or use less memory, or their instruction set might be smaller, but they cannot compute more powerfully (i.e. more mathematical functions). (Recall that the Church–Turing thesis hypothesizes this to be true for any kind of machine: that anything that can be "computed" can be computed by some Turing machine.)
  −
 
  −
许多机器,可能被认为比一个简单的通用图灵机有更多的计算能力,可以证明没有更多的权力(霍普克罗夫特和 Ullman p. 159,参考 f。明斯基(1967))。他们可能计算得更快,或者使用更少的内存,或者他们的指令集可能更小,但是他们不能计算得更有力(即。更多的数学函数)。(回想一下,丘奇-图灵的论点假设这对任何机器都是正确的: 任何可以被“计算”的东西都可以被一些图灵机计算出来。)
  −
 
  −
[[File:Moves of a 3-state Busy Beaver.jpg|thumbnail|500px|right|The evolution of the busy-beaver's computation starts at the top and proceeds to the bottom.]]
  −
 
  −
 
  −
 
  −
A Turing machine is equivalent to a single-stack pushdown automaton (PDA) that has been made more flexible and concise by relaxing the last-in-first-out requirement of its stack. In addition, a Turing machine is also equivalent to a two-stack PDA with standard last-in-first-out semantics, by using one stack to model the tape left of the head and the other stack for the tape to the right.
  −
 
  −
图灵机相当于一个单堆栈下推自动机(PDA) ,通过放松堆栈中“先入先出”的要求,使其更加灵活和简洁。此外,通过使用一个堆栈对磁头左侧的磁带进行建模,而使用右侧的另一个堆栈对磁带进行建模,图灵机也等价于具有标准“后进先出”语义的双堆栈 PDA。
  −
 
  −
The reader should again be cautioned that such diagrams represent a snapshot of their table frozen in time, ''not'' the course ("trajectory") of a computation ''through'' time and space. While every time the busy beaver machine "runs" it will always follow the same state-trajectory, this is not true for the "copy" machine that can be provided with variable input "parameters".
  −
 
  −
 
  −
 
  −
At the other extreme, some very simple models turn out to be Turing-equivalent, i.e. to have the same computational power as the Turing machine model.
  −
 
  −
在另一个极端,一些非常简单的模型被证明是图灵等价的,例如。具有与图灵机模型相同的计算能力。
  −
 
  −
The diagram "Progress of the computation" shows the three-state busy beaver's "state" (instruction) progress through its computation from start to finish. On the far right is the Turing "complete configuration" (Kleene "situation"<!-- Stuation? Not Situation? Is that the right word? Yes, it is, cf. page 375 for example "The Godel number of the stiuation..." and then he shows a tape, etc. This usage runs throughout the chapter. wvbailey~~~~ --><!--So is it "stuation" or "stiuation"?-->, Hopcroft–Ullman "instantaneous description") at each step. If the machine were to be stopped and cleared to blank both the "state register" and entire tape, these "configurations" could be used to rekindle a computation anywhere in its progress (cf. Turing (1936) ''The Undecidable'', pp.&nbsp;139–140).
  −
 
  −
 
  −
 
  −
Common equivalent models are the multi-tape Turing machine, multi-track Turing machine, machines with input and output, and the non-deterministic Turing machine (NDTM) as opposed to the deterministic Turing machine (DTM) for which the action table has at most one entry for each combination of symbol and state.
  −
 
  −
常见的等效模型是多磁带图灵机、多轨图灵机、具有输入和输出的机器,以及与确定性图灵机(DTM)相对的非确定型图灵机(NDTM) ,后者的动作表对于每个符号和状态组合最多只有一个条目。
  −
 
  −
==Models equivalent to the Turing machine model==
  −
 
  −
{{See also|Turing machine equivalents|Register machine|Post–Turing machine}}
  −
 
  −
Read-only, right-moving Turing machines are equivalent to DFAs (as well as NFAs by conversion using the NDFA to DFA conversion algorithm).
  −
 
  −
只读、右移动的图灵机相当于 DFAs (以及通过使用 NDFA 到 DFA 转换算法转换的 nfa)。
  −
 
  −
 
  −
 
  −
Many machines that might be thought to have more computational capability than a simple universal Turing machine can be shown to have no more power (Hopcroft and Ullman p.&nbsp;159, cf. Minsky (1967)). They might compute faster, perhaps, or use less memory, or their instruction set might be smaller, but they cannot compute more powerfully (i.e. more mathematical functions). (Recall that the [[Church–Turing thesis]] ''hypothesizes'' this to be true for any kind of machine: that anything that can be "computed" can be computed by some Turing machine.)
  −
 
  −
For practical and didactical intentions the equivalent register machine can be used as a usual assembly programming language.
  −
 
  −
对于实际的和教学的意图,等价的寄存器机可以作为一个通常的汇编程序语言使用。
  −
 
  −
 
  −
 
  −
A Turing machine is equivalent to a single-stack [[pushdown automaton]] (PDA) that has been made more flexible and concise by relaxing the [[LIFO (computing)|last-in-first-out]] requirement of its stack. In addition, a Turing machine is also equivalent to a two-stack PDA with standard [[LIFO (computing)|last-in-first-out]] semantics, by using one stack to model the tape left of the head and the other stack for the tape to the right.
  −
 
  −
An interesting question is whether the computation model represented by concrete programming languages is Turing equivalent. While the computation of a real computer is based on finite states and thus not capable to simulate a Turing machine, programming languages themselves do not necessarily have this limitation. Kirner et al., 2009 have shown that among the general-purpose programming languages some are Turing complete while others are not. For example, ANSI C is not Turing-equivalent, as all instantiations of ANSI C (different instantiations are possible as the standard deliberately leaves certain behaviour undefined for legacy reasons) imply a finite-space memory. This is because the size of memory reference data types, called pointers, is accessible inside the language. However, other programming languages like Pascal do not have this feature, which allows them to be Turing complete in principle.
  −
 
  −
一个有趣的问题是,用具体的编程语言表示的计算模型是否是图灵等价的。虽然真实计算机的计算是基于有限状态的,因此不能模拟图灵机,但是编程语言本身并不一定有这个限制。Kirner 等人在2009年的研究表明,在通用编程语言中,有些是图灵完备语言,而有些则不是。例如,ANSI c 不是图灵等效的,因为 ANSI c 的所有实例化(不同的实例化是可能的,因为标准由于遗留原因故意不定义某些行为)意味着有限的空间内存。这是因为内存引用数据类型(称为指针)的大小可以在语言中访问。然而,其他编程语言,比如 Pascal 没有这个特性,这使得它们原则上可以是图灵完整的。
  −
 
  −
 
  −
 
  −
It is just Turing complete in principle, as memory allocation in a programming language is allowed to fail, which means the programming language can be Turing complete when ignoring failed memory allocations, but the compiled programs executable on a real computer cannot.
  −
 
  −
这只是图灵完成的原则,因为一种编程语言的内存分配是允许失败的,这意味着当忽略失败的内存分配时,编程语言可以是图灵完成的,但是在真正的计算机上编译的可执行程序不能。
  −
 
  −
At the other extreme, some very simple models turn out to be [[Turing completeness|Turing-equivalent]], i.e. to have the same computational power as the Turing machine model.
  −
 
  −
 
  −
 
  −
Common equivalent models are the [[multi-tape Turing machine]], [[multi-track Turing machine]], machines with input and output, and the [[Non-deterministic Turing machine|''non-deterministic'' Turing machine]] (NDTM) as opposed to the ''deterministic'' Turing machine (DTM) for which the action table has at most one entry for each combination of symbol and state.
  −
 
  −
Early in his paper (1936) Turing makes a distinction between an "automatic machine"—its "motion ... completely determined by the configuration" and a "choice machine":
  −
 
  −
早在他的论文(1936)中,图灵区分了“自动机器”ーー它的“运动... ... 完全由配置决定”和“选择机器” :
  −
 
  −
 
  −
 
  −
[[Read-only right moving Turing machines|Read-only, right-moving Turing machines]] are equivalent to [[Deterministic finite automaton|DFAs]] (as well as [[Nondeterministic finite automaton|NFAs]] by conversion using the [[NDFA to DFA conversion algorithm]]).
  −
 
  −
 
  −
 
  −
For practical and didactical intentions the equivalent [[register machine]] can be used as a usual [[Assembly language|assembly]] [[programming language]].
  −
 
  −
Turing (1936) does not elaborate further except in a footnote in which he describes how to use an a-machine to "find all the provable formulae of the [Hilbert] calculus" rather than use a choice machine. He "suppose[s] that the choices are always between two possibilities 0 and 1. Each proof will then be determined by a sequence of choices i<sub>1</sub>, i<sub>2</sub>, ..., i<sub>n</sub> (i<sub>1</sub> = 0 or 1, i<sub>2</sub> = 0 or 1, ..., i<sub>n</sub> = 0 or 1), and hence the number 2<sup>n</sup> + i<sub>1</sub>2<sup>n-1</sup> + i<sub>2</sub>2<sup>n-2</sup> + ... +i<sub>n</sub> completely determines the proof. The automatic machine carries out successively proof 1, proof 2, proof 3, ..." (Footnote ‡, The Undecidable, p.&nbsp;138)
  −
 
  −
图灵(1936)没有进一步阐述,除了在一个脚注中,他描述了如何使用一台机器“找到[希尔伯特]微积分的所有可证明的公式” ,而不是使用选择机器。他“假设总是在两种可能性0和1之间做出选择。每个证明将由一系列选项决定,i < sub > 1 </sub > ,i < sub > 2 </sub > ,... ,i < sub > n </sub > (i < sub > 1 </sub > 1 </sub > = 0或1,i < sub > 2 </sub > = 0或1,... ,i < sub > n </sub > = 0或1) ,因此数字2 < sup > n </sup > i </sup > 1 </sub > 2 </sub > n </sub > 2 </sub > 2 </sub > 2 </sub > 2 < n-2/> </2/> + i < i < </sub > 完全决定了证明。自动机器依次进行证明1,证明2,证明3,... ”(脚注‡ ,无法判定,第138页)
  −
 
  −
 
  −
 
  −
An interesting question is whether the computation model represented by concrete [[programming languages]] is Turing equivalent. While the computation of a real computer is based on finite states and thus not capable to simulate a Turing machine, programming languages themselves do not necessarily have this limitation. Kirner et al., 2009 have shown that among the general-purpose programming languages some are Turing complete while others are not. For example, [[ANSI C]] is not Turing-equivalent, as all instantiations of ANSI C (different instantiations are possible as the standard deliberately leaves certain behaviour undefined for legacy reasons) imply a finite-space memory. This is because the size of memory reference data types, called ''pointers'', is accessible inside the language. However, other programming languages like [[Pascal (programming language)|Pascal]] do not have this feature, which allows them to be Turing complete in principle.
  −
 
  −
This is indeed the technique by which a deterministic (i.e., a-) Turing machine can be used to mimic the action of a nondeterministic Turing machine; Turing solved the matter in a footnote and appears to dismiss it from further consideration.
  −
 
  −
这确实是一种技术,通过这种技术,一个确定性的(例如,a -)图灵机可以用来模拟一个不确定的图灵机的动作; 图灵在脚注中解决了这个问题,似乎把它从进一步的考虑中剔除了。
  −
 
  −
It is just Turing complete in principle, as [[memory allocation]] in a programming language is allowed to fail, which means the programming language can be Turing complete when ignoring failed memory allocations, but the compiled programs executable on a real computer cannot.
  −
 
  −
 
  −
 
  −
An oracle machine or o-machine is a Turing a-machine that pauses its computation at state "o" while, to complete its calculation, it "awaits the decision" of "the oracle"—an unspecified entity "apart from saying that it cannot be a machine" (Turing (1939), The Undecidable, p.&nbsp;166–168).
  −
 
  −
甲骨文机器或 o-machine 是一种图灵机器,它将计算暂停在“ o”状态,同时,为了完成计算,它“等待”“甲骨文”的决定——一个未指定的实体” ,除了说它不可能是一台机器”(图灵(1939) ,The undecutable,p. 166-168)。
  −
 
  −
==Choice c-machines, oracle o-machines==
  −
 
  −
Early in his paper (1936) Turing makes a distinction between an "automatic machine"—its "motion ... completely determined by the configuration" and a "choice machine":
  −
 
  −
 
  −
 
  −
{{quote|...whose motion is only partially determined by the configuration ... When such a machine reaches one of these ambiguous configurations, it cannot go on until some arbitrary choice has been made by an external operator. This would be the case if we were using machines to deal with axiomatic systems.|''The Undecidable'', p. 118}}
  −
 
  −
 
  −
 
  −
An implementation of a Turing machine
  −
 
  −
图灵机的一种实现
  −
 
  −
Turing (1936) does not elaborate further except in a footnote in which he describes how to use an a-machine to "find all the provable formulae of the [Hilbert] calculus" rather than use a choice machine. He "suppose[s] that the choices are always between two possibilities 0 and 1. Each proof will then be determined by a sequence of choices i<sub>1</sub>, i<sub>2</sub>, ..., i<sub>n</sub> (i<sub>1</sub> = 0 or 1, i<sub>2</sub> = 0 or 1, ..., i<sub>n</sub> = 0 or 1), and hence the number 2<sup>n</sup> + i<sub>1</sub>2<sup>n-1</sup> + i<sub>2</sub>2<sup>n-2</sup> + ... +i<sub>n</sub> completely determines the proof. The automatic machine carries out successively proof 1, proof 2, proof 3, ..." (Footnote ‡, ''The Undecidable'', p.&nbsp;138)
  −
 
  −
As Turing wrote in The Undecidable, p.&nbsp;128 (italics added):
  −
 
  −
正如图灵在《无法判定》一书中所写,第128页(斜体) :
  −
 
  −
 
  −
 
  −
This is indeed the technique by which a deterministic (i.e., a-) Turing machine can be used to mimic the action of a [[nondeterministic Turing machine]]; Turing solved the matter in a footnote and appears to dismiss it from further consideration.
  −
 
  −
 
  −
 
  −
This finding is now taken for granted, but at the time (1936) it was considered astonishing. The model of computation that Turing called his "universal machine"—"U" for short—is considered by some (cf. Davis (2000)) to have been the fundamental theoretical breakthrough that led to the notion of the stored-program computer.
  −
 
  −
这一发现现在被认为是理所当然的,但在当时(1936年) ,它被认为是惊人的。将图灵称为“通用机器”的计算模型——“ u”简称为计算模型。戴维斯(2000)的基本理论突破,导致了储存程式计算机的概念。
  −
 
  −
An [[oracle machine]] or o-machine is a Turing a-machine that pauses its computation at state "'''o'''" while, to complete its calculation, it "awaits the decision" of "the oracle"—an unspecified entity "apart from saying that it cannot be a machine" (Turing (1939), ''The Undecidable'', p.&nbsp;166–168).
  −
 
  −
 
  −
 
  −
==Universal Turing machines==
  −
 
  −
{{Main|Universal Turing machine}}
  −
 
  −
In terms of computational complexity, a multi-tape universal Turing machine need only be slower by logarithmic factor compared to the machines it simulates. This result was obtained in 1966 by F. C. Hennie and R. E. Stearns. (Arora and Barak, 2009, theorem 1.9)
  −
 
  −
在计算复杂度方面,一个多磁带通用图灵机只需要比它模拟的机器的对数因子慢一些。这个结果是在1966年由 F.C.Hennie 和 R.e. Stearns 获得的。(Arora and Barak,2009,定理1.9)
  −
 
  −
 
  −
 
  −
[[File:Model of a Turing machine.jpg|thumb|An implementation of a Turing machine]]
  −
 
  −
As Turing wrote in ''The Undecidable'', p.&nbsp;128 (italics added):
  −
 
  −
A Turing machine realization using [[Lego pieces]]
  −
 
  −
使用[[乐高零件]]实现图灵机
  −
 
  −
{{quote|It is possible to invent a ''single machine'' which can be used to compute ''any'' computable sequence. If this machine '''U''' is supplied with the tape on the beginning of which is written the string of quintuples separated by semicolons of some computing machine '''M''', then '''U''' will compute the same sequence as '''M'''.}}
  −
 
  −
It is often said that Turing machines, unlike simpler automata, are as powerful as real machines, and are able to execute any operation that a real program can. What is neglected in this statement is that, because a real machine can only have a finite number of configurations, this "real machine" is really nothing but a finite state machine. On the other hand, Turing machines are equivalent to machines that have an unlimited amount of storage space for their computations.
  −
 
  −
人们常说,图灵机不同于简单的自动机,它和真正的机器一样强大,能够执行真正的程序所能执行的任何操作。在这个陈述中被忽略的是,因为一个真实的机器只能有有限数量的配置,这个“真实的机器”实际上只是一个有限的状态机。另一方面,图灵机相当于拥有无限存储空间进行计算的机器。
  −
 
  −
 
  −
 
  −
This finding is now taken for granted, but at the time (1936) it was considered astonishing. The model of computation that Turing called his "universal machine"—"'''U'''" for short—is considered by some (cf. Davis (2000)) to have been the fundamental theoretical breakthrough that led to the notion of the [[stored-program computer]].
  −
 
  −
There are a number of ways to explain why Turing machines are useful models of real computers:
  −
 
  −
有很多方法可以解释为什么图灵机是真正计算机的有用模型:
  −
 
  −
 
  −
 
  −
{{quote|Turing's paper ... contains, in essence, the invention of the modern computer and some of the programming techniques that accompanied it.|Minsky (1967), p. 104}}
  −
 
  −
Anything a real computer can compute, a Turing machine can also compute. For example: "A Turing machine can simulate any type of subroutine found in programming languages, including recursive procedures and any of the known parameter-passing mechanisms" (Hopcroft and Ullman p.&nbsp;157). A large enough FSA can also model any real computer, disregarding IO. Thus, a statement about the limitations of Turing machines will also apply to real computers.
  −
 
  −
任何一台真正的计算机可以计算的东西,图灵机也可以计算。例如: “图灵机可以模拟在编程语言中发现的任何类型的子例程,包括递归过程和任何已知的参数传递机制”(Hopcroft 和 Ullman p. 157)。一个足够大的 FSA 还可以模拟任何真正的计算机,而不用考虑 IO。因此,关于图灵机局限性的陈述也将适用于真正的计算机。
  −
 
  −
 
  −
 
  −
The difference lies only with the ability of a Turing machine to manipulate an unbounded amount of data. However, given a finite amount of time, a Turing machine (like a real machine) can only manipulate a finite amount of data.
  −
 
  −
区别仅仅在于图灵机操作无限量数据的能力。然而,在有限的时间内,图灵机(就像真正的机器)只能处理有限数量的数据。
  −
 
  −
In terms of [[Computational complexity theory|computational complexity]], a multi-tape universal Turing machine need only be slower by [[logarithm]]ic factor compared to the machines it simulates. This result was obtained in 1966 by F. C. Hennie and [[R. E. Stearns]]. (Arora and Barak, 2009, theorem 1.9)
  −
 
  −
Like a Turing machine, a real machine can have its storage space enlarged as needed, by acquiring more disks or other storage media.
  −
 
  −
像图灵机一样,真正的机器可以根据需要扩大存储空间,方法是获取更多的磁盘或其他存储介质。
  −
 
  −
 
  −
 
  −
Descriptions of real machine programs using simpler abstract models are often much more complex than descriptions using Turing machines. For example, a Turing machine describing an algorithm may have a few hundred states, while the equivalent deterministic finite automaton (DFA) on a given real machine has quadrillions. This makes the DFA representation infeasible to analyze.
  −
 
  −
使用简单的抽象模型描述真实机器程序通常比使用图灵机描述复杂得多。例如,一台描述算法的图灵机可能有几百种状态,而给定实际机器上的等价确定有限状态自动机(DFA)有千万亿。这使得 DFA 表示法无法进行分析。
  −
 
  −
==Comparison with real machines==
  −
 
  −
Turing machines describe algorithms independent of how much memory they use. There is a limit to the memory possessed by any current machine, but this limit can rise arbitrarily in time. Turing machines allow us to make statements about algorithms which will (theoretically) hold forever, regardless of advances in conventional computing machine architecture.
  −
 
  −
图灵机描述的算法与它们使用的内存量无关。任何当前的机器所拥有的内存都是有限的,但是这个限制随着时间的推移可以任意上升。图灵机允许我们对算法做出永恒的陈述(理论上) ,而不管传统计算机体系结构的进步如何。
  −
 
  −
[[File:Lego Turing Machine.jpg|thumb|A Turing machine realization using [[Lego]] pieces]]
  −
 
  −
Turing machines simplify the statement of algorithms. Algorithms running on Turing-equivalent abstract machines are usually more general than their counterparts running on real machines, because they have arbitrary-precision data types available and never have to deal with unexpected conditions (including, but not limited to, running out of memory).
  −
 
  −
图灵机简化了算法的陈述。在与图灵等价的抽象机器上运行的算法通常比在真实机器上运行的算法更通用,因为它们具有任意精度的可用数据类型,而且从不需要处理意外情况(包括但不限于内存耗尽)。
  −
 
  −
It is often said{{By whom|date=February 2016}} that Turing machines, unlike simpler automata, are as powerful as real machines, and are able to execute any operation that a real program can. What is neglected in this statement is that, because a real machine can only have a finite number of ''configurations'', this "real machine" is really nothing but a [[finite state machine]]. On the other hand, Turing machines are equivalent to machines that have an unlimited amount of storage space for their computations.
  −
 
  −
 
  −
 
  −
An experimental prototype of a Turing machine
  −
 
  −
图灵机的实验样机
  −
 
  −
There are a number of ways to explain why Turing machines are useful models of real computers:
  −
 
  −
 
  −
 
  −
# Anything a real computer can compute, a Turing machine can also compute. For example: "A Turing machine can simulate any type of subroutine found in programming languages, including recursive procedures and any of the known parameter-passing mechanisms" (Hopcroft and Ullman p.&nbsp;157). A large enough FSA can also model any real computer, disregarding IO. Thus, a statement about the limitations of Turing machines will also apply to real computers.
  −
 
  −
# The difference lies only with the ability of a Turing machine to manipulate an unbounded amount of data. However, given a finite amount of time, a Turing machine (like a real machine) can only manipulate a finite amount of data.
  −
 
  −
# Like a Turing machine, a real machine can have its storage space enlarged as needed, by acquiring more disks or other storage media.
  −
 
  −
# Descriptions of real machine programs using simpler abstract models are often much more complex than descriptions using Turing machines. For example, a Turing machine describing an algorithm may have a few hundred states, while the equivalent deterministic finite automaton (DFA) on a given real machine has quadrillions. This makes the DFA representation infeasible to analyze.
  −
 
  −
# Turing machines describe algorithms independent of how much memory they use. There is a limit to the memory possessed by any current machine, but this limit can rise arbitrarily in time. Turing machines allow us to make statements about algorithms which will (theoretically) hold forever, regardless of advances in ''conventional'' computing machine architecture.
  −
 
  −
A limitation of Turing machines is that they do not model the strengths of a particular arrangement well. For instance, modern stored-program computers are actually instances of a more specific form of abstract machine known as the random-access stored-program machine or RASP machine model. Like the universal Turing machine, the RASP stores its "program" in "memory" external to its finite-state machine's "instructions". Unlike the universal Turing machine, the RASP has an infinite number of distinguishable, numbered but unbounded "registers"—memory "cells" that can contain any integer (cf. Elgot and Robinson (1964), Hartmanis (1971), and in particular Cook-Rechow (1973); references at random access machine). The RASP's finite-state machine is equipped with the capability for indirect addressing (e.g., the contents of one register can be used as an address to specify another register); thus the RASP's "program" can address any register in the register-sequence. The upshot of this distinction is that there are computational optimizations that can be performed based on the memory indices, which are not possible in a general Turing machine; thus when Turing machines are used as the basis for bounding running times, a 'false lower bound' can be proven on certain algorithms' running times (due to the false simplifying assumption of a Turing machine). An example of this is binary search, an algorithm that can be shown to perform more quickly when using the RASP model of computation rather than the Turing machine model.
  −
 
  −
图灵机的一个局限性在于它们不能很好地模拟特定排列的优势。例如,现代存储程序计算机实际上是一种更具体形式的抽象机器的实例,这种抽象机器被称为随机存取存储程序机器或 RASP 机器模型。与美国通用图灵机一样,RASP 将其“程序”存储在有限状态机的“指令”之外的“内存”中。与通用图灵机不同,RASP 具有无限数量可区分的、编号的但无限制的“寄存器”ー内存“单元” ,可以包含任何整数(参见。Elgot 和 Robinson (1964) ,Hartmanis (1971) ,特别是 Cook-Rechow (1973) ; 随机存取机的引用)。RASP 的有限状态机可以间接寻址(例如,一个寄存器的内容可以用作另一个寄存器的地址) ,因此 RASP 的“程序”可以寻址寄存器序列中的任何寄存器。这种区分的结果是,可以基于内存索引执行计算优化,这在一般的图灵机中是不可能的; 因此,当图灵机被用作边界运行时间的基础时,在某些算法的运行时间上可以证明一个“错误的下界”(由于图灵机的错误简化假设)。这方面的一个例子是二进制搜索,当使用 RASP 计算模型而不是图灵机模型时,这种算法的执行速度更快。
  −
 
  −
# Turing machines simplify the statement of algorithms. Algorithms running on Turing-equivalent abstract machines are usually more general than their counterparts running on real machines, because they have arbitrary-precision data types available and never have to deal with unexpected conditions (including, but not limited to, running [[out of memory]]).
  −
 
  −
 
  −
 
  −
[[File:Turingmachine.jpg|thumb|An experimental prototype of a Turing machine]]
  −
 
  −
 
  −
 
  −
Another limitation of Turing machines is that they do not model concurrency well. For example, there is a bound on the size of integer that can be computed by an always-halting nondeterministic Turing machine starting on a blank tape. (See article on unbounded nondeterminism.) By contrast, there are always-halting concurrent systems with no inputs that can compute an integer of unbounded size. (A process can be created with local storage that is initialized with a count of 0 that concurrently sends itself both a stop and a go message. When it receives a go message, it increments its count by 1 and sends itself a go message. When it receives a stop message, it stops with an unbounded number in its local storage.)
  −
 
  −
图灵机的另一个局限是它们不能很好地模拟并发性。例如,可以由始终停止的不确定图灵机从空白磁带上开始计算整数大小的界限。(见关于无界非决定论的文章)相比之下,总有停止的并发系统没有输入,可以计算无界大小的整数。(可以使用初始化为0的本地存储创建进程,并同时发送停止和继续消息。当它接收到一条 go 消息时,它将其计数增加1,并发送一条 go 消息。当它接收到一个停止消息时,它在本地存储器中停止运行,并显示一个无界数字
  −
 
  −
===Limitations of Turing machines===
  −
 
  −
 
  −
 
  −
====Computational complexity theory====
  −
 
  −
In the early days of computing, computer use was typically limited to batch processing, i.e., non-interactive tasks, each producing output data from given input data. Computability theory, which studies computability of functions from inputs to outputs, and for which Turing machines were invented, reflects this practice.
  −
 
  −
在计算机的早期,计算机的使用通常局限于批处理,也就是说,非交互式任务,每个输出数据来自给定的输入数据。可计算性理论研究从输入到输出的函数的可计算性,图灵机就是为此而发明的。
  −
 
  −
{{further|Computational complexity theory}}
  −
 
  −
 
  −
 
  −
Since the 1970s, interactive use of computers became much more common.  In principle, it is possible to model this by having an external agent read from the tape and write to it at the same time as a Turing machine, but this rarely matches how interaction actually happens; therefore, when describing interactivity, alternatives such as I/O automata are usually preferred.
  −
 
  −
自20世纪70年代以来,交互式使用计算机变得越来越普遍。原则上,通过让外部代理程序读取磁带并同时写入磁带来建模是可能的,但这很少与交互实际发生的方式相匹配; 因此,在描述交互性时,通常首选 I/O 自动机这样的替代程序。
  −
 
  −
A limitation of Turing machines is that they do not model the strengths of a particular arrangement well. For instance, modern stored-program computers are actually instances of a more specific form of [[abstract machine]] known as the [[random-access stored-program machine]] or RASP machine model. Like the [[universal Turing machine]], the RASP stores its "program" in "memory" external to its finite-state machine's "instructions". Unlike the universal Turing machine, the RASP has an infinite number of distinguishable, numbered but unbounded "registers"—memory "cells" that can contain any integer (cf. Elgot and Robinson (1964), Hartmanis (1971), and in particular Cook-Rechow (1973); references at [[random access machine]]). The RASP's finite-state machine is equipped with the capability for indirect addressing (e.g., the contents of one register can be used as an address to specify another register); thus the RASP's "program" can address any register in the register-sequence. The upshot of this distinction is that there are computational optimizations that can be performed based on the memory indices, which are not possible in a general Turing machine; thus when Turing machines are used as the basis for bounding running times, a 'false lower bound' can be proven on certain algorithms' running times (due to the false simplifying assumption of a Turing machine). An example of this is [[binary search]], an algorithm that can be shown to perform more quickly when using the RASP model of computation rather than the Turing machine model.
  −
 
  −
 
  −
 
  −
====Concurrency====
  −
 
  −
{{Unreferenced section|date=April 2015}}
  −
 
  −
Another limitation of Turing machines is that they do not model concurrency well. For example, there is a bound on the size of integer that can be computed by an always-halting nondeterministic Turing machine starting on a blank tape. (See article on [[unbounded nondeterminism]].) By contrast, there are always-halting concurrent systems with no inputs that can compute an integer of unbounded size. (A process can be created with local storage that is initialized with a count of 0 that concurrently sends itself both a stop and a go message. When it receives a go message, it increments its count by 1 and sends itself a go message. When it receives a stop message, it stops with an unbounded number in its local storage.)
  −
 
  −
They were described in 1936 by Alan Turing.
  −
 
  −
阿兰 · 图灵在1936年描述了它们。
  −
 
  −
 
  −
 
  −
====Interaction====
  −
 
  −
In the early days of computing, computer use was typically limited to [[batch processing]], i.e., non-interactive tasks, each producing output data from given input data. Computability theory, which studies computability of functions from inputs to outputs, and for which Turing machines were invented, reflects this practice.
  −
 
  −
Robin Gandy (1919–1995)—a student of Alan Turing (1912–1954), and his lifelong friend—traces the lineage of the notion of "calculating machine" back to Charles Babbage (circa 1834) and actually proposes "Babbage's Thesis":
  −
 
  −
Robin Gandy (1919-1995)是 Alan Turing (1912-1954)的学生,也是他一生的朋友,他将“机械式计算器”的概念追溯到 Charles Babbage (大约1834年) ,并提出了“ Babbage’s Thesis” :
  −
 
  −
 
  −
 
  −
Since the 1970s, [[interactivity|interactive]] use of computers became much more common.  In principle, it is possible to model this by having an external agent read from the tape and write to it at the same time as a Turing machine, but this rarely matches how interaction actually happens; therefore, when describing interactivity, alternatives such as [[Input/output automaton|I/O automata]] are usually preferred.
  −
 
  −
 
  −
 
  −
==History==
  −
 
  −
Gandy's analysis of Babbage's Analytical Engine describes the following five operations (cf. p.&nbsp;52–53):
  −
 
  −
甘迪对巴贝奇的分析机的分析描述了以下五个操作(参见。P. 52-53) :
  −
 
  −
{{See also|Algorithm|Church–Turing thesis}}
  −
 
  −
The arithmetic functions +, −, ×, where − indicates "proper" subtraction  0}} if .
  −
 
  −
算术函数 + ,-,× ,其中-表示“正确的”减法0}如果。
  −
 
  −
 
  −
 
  −
Any sequence of operations is an operation.
  −
 
  −
任何操作序列都是一个操作。
  −
 
  −
They were described in 1936 by [[Alan Turing]].
  −
 
  −
Iteration of an operation (repeating n times an operation P).
  −
 
  −
操作的迭代(重复 n 次操作 p)。
  −
 
  −
 
  −
 
  −
Conditional iteration (repeating n times an operation P conditional on the "success" of test T).
  −
 
  −
条件迭代(以测试 t 的“成功”为条件重复 n 次操作 p)。
  −
 
  −
===Historical background: computational machinery===
  −
 
  −
Conditional transfer (i.e., conditional "goto").
  −
 
  −
有条件转移(即有条件的“ goto”)。
  −
 
  −
[[Robin Gandy]] (1919–1995)—a student of Alan Turing (1912–1954), and his lifelong friend—traces the lineage of the notion of "calculating machine" back to [[Charles Babbage]] (circa 1834) and actually proposes "Babbage's Thesis":
  −
 
  −
 
  −
 
  −
Gandy states that "the functions which can be calculated by (1), (2), and (4) are precisely those which are Turing computable." (p.&nbsp;53). He cites other proposals for "universal calculating machines" including those of Percy Ludgate (1909), Leonardo Torres y Quevedo (1914), Maurice d'Ocagne (1922), Louis Couffignal (1933), Vannevar Bush (1936), Howard Aiken (1937). However:
  −
 
  −
甘迪指出: “可由(1)、(2)和(4)计算的函数恰恰是图灵可计算的函数。”(p. 53).他引用了其他关于“通用计算机器”的提议,包括珀西 · 卢德盖特(1909年)、莱昂纳多 · 托雷斯 · 奎维多(1914年)、莫里斯 · d’奥卡涅(1922年)、路易斯 · 库夫尼纳尔(1933年)、万尼瓦尔 · 布什(1936年)、霍华德 · 艾肯(1937年)。然而:
  −
 
  −
{{quote|''That the whole of development and operations of analysis are now capable of being executed by machinery''.|(italics in Babbage as cited by Gandy, p. 54)}}
  −
 
  −
 
  −
 
  −
Gandy's analysis of Babbage's [[Analytical Engine]] describes the following five operations (cf. p.&nbsp;52–53):
  −
 
  −
# The arithmetic functions +, −, ×, where − indicates "proper" subtraction {{nowrap|''x'' − ''y'' {{=}} 0}} if {{nowrap|''y'' ≥ ''x''}}.
  −
 
  −
# Any sequence of operations is an operation.
  −
 
  −
With regard to Hilbert's problems posed by the famous mathematician David Hilbert in 1900, an aspect of problem #10 had been floating about for almost 30 years before it was framed precisely. Hilbert's original expression for #10 is as follows:
  −
 
  −
至于著名数学家大卫 · 希尔伯特在1900年提出的希尔伯特问题,第10号问题的一个方面在被精确设计之前已经漂浮了近30年。希尔伯特对 # 10的原始表达如下:
  −
 
  −
# Iteration of an operation (repeating n times an operation P).
  −
 
  −
# Conditional iteration (repeating n times an operation P conditional on the "success" of test T).
  −
 
  −
{{quote|10. Determination of the solvability of a Diophantine equation. Given a Diophantine equation with any number of unknown quantities and with rational integral coefficients: To devise a process according to which it can be determined in a finite number of operations whether the equation is solvable in rational integers.
  −
 
  −
{引用 | 10。丢番图方程可解性的测定。给定一个具有任意数量未知量和有理整系数的丢番图方程: 设计一个过程,根据这个过程可以在有限数量的运算中确定该方程是否在有理整数中是可解的。
  −
 
  −
# Conditional transfer (i.e., conditional "[[goto]]").
  −
 
  −
 
  −
 
  −
The Entscheidungsproblem [decision problem for first-order logic] is solved when we know a procedure that allows for any given logical expression to decide by finitely many operations its validity or satisfiability ... The Entscheidungsproblem must be considered the main problem of mathematical logic.|quoted, with this translation and the original German, in Dershowitz and Gurevich, 2008}}
  −
 
  −
当我们知道一个程序允许任何给定的逻辑表达式通过有限多个操作来决定其有效性或可满足性时,可判定性问题[一阶逻辑的决策问题]就得到了解决..。可判定性必须被认为是数理逻辑的主要问题。2008年,德尔肖维茨和古列维奇引用了这个翻译和德文原文
  −
 
  −
Gandy states that "the functions which can be calculated by (1), (2), and (4) are precisely those which are [[Turing computable]]." (p.&nbsp;53). He cites other proposals for "universal calculating machines" including those of [[Percy Ludgate]] (1909), [[Leonardo Torres y Quevedo]] (1914), [[Maurice d'Ocagne]] (1922), [[Louis Couffignal]] (1933), [[Vannevar Bush]] (1936), [[Howard Aiken]] (1937). However:
  −
 
  −
 
  −
 
  −
By 1922, this notion of "Entscheidungsproblem" had developed a bit, and H. Behmann stated that
  −
 
  −
到了1922年,这个“可判定性”的概念已经发展了一些,h. Behmann 说
  −
 
  −
{{quote|… the emphasis is on programming a fixed iterable sequence of arithmetical operations. The fundamental importance of conditional iteration and conditional transfer for a general theory of calculating machines is not recognized…|Gandy p. 55}}
  −
 
  −
 
  −
 
  −
{{quote|...&nbsp;most general form of the Entscheidungsproblem [is] as follows:
  −
 
  −
{{引用 | ... 可判定性的一般形式如下:
  −
 
  −
===The Entscheidungsproblem (the "decision problem"): Hilbert's tenth question of 1900===
  −
 
  −
<blockquote>A quite definite generally applicable prescription is required which will allow one to decide in a finite number of steps the truth or falsity of a given purely logical assertion ...</blockquote>|Gandy p. 57, quoting Behmann}}
  −
 
  −
需要一个相当明确的、普遍适用的处方,这个处方将允许人们在有限的步骤中决定一个给定的纯粹逻辑断言的真实性或虚假性... ..
  −
 
  −
With regard to [[Hilbert's problems]] posed by the famous mathematician [[David Hilbert]] in 1900, an aspect of problem #10 had been floating about for almost 30 years before it was framed precisely. Hilbert's original expression for #10 is as follows:
  −
 
  −
 
  −
 
  −
{{quote|'''10. Determination of the solvability of a Diophantine equation'''. Given a [[Diophantine equation]] with any number of unknown quantities and with rational integral coefficients: To devise a process according to which it can be determined in a finite number of operations whether the equation is solvable in rational integers.
  −
 
  −
 
  −
 
  −
By the 1928 international congress of mathematicians, Hilbert "made his questions quite precise. First, was mathematics complete ... Second, was mathematics consistent ... And thirdly, was mathematics decidable?" (Hodges p.&nbsp;91, Hawking p.&nbsp;1121). The first two questions were answered in 1930 by Kurt Gödel at the very same meeting where Hilbert delivered his retirement speech (much to the chagrin of Hilbert); the third—the Entscheidungsproblem—had to wait until the mid-1930s.
  −
 
  −
到了1928年的国际数学家大会,希尔伯特把他的问题提得非常精确。第一,数学是完整的吗? 第二,数学是一致的吗? 第三,数学是可判定的吗? ”(Hodges p. 91,Hawking p. 1121).1930年,在希尔伯特发表退休演讲的同一次会议上,库尔特 · 哥德尔(Kurt Gödel)回答了前两个问题(这让希尔伯特颇为懊恼) ; 而第三个问题——协商问题——不得不等到上世纪30年代中期。
  −
 
  −
The Entscheidungsproblem [decision problem for [[first-order logic]]] is solved when we know a procedure that allows for any given logical expression to decide by finitely many operations its validity or satisfiability ... The Entscheidungsproblem must be considered the main problem of mathematical logic.|quoted, with this translation and the original German, in Dershowitz and Gurevich, 2008}}
  −
 
  −
 
  −
 
  −
The problem was that an answer first required a precise definition of "definite general applicable prescription", which Princeton professor Alonzo Church would come to call "effective calculability", and in 1928 no such definition existed. But over the next 6–7 years Emil Post developed his definition of a worker moving from room to room writing and erasing marks per a list of instructions (Post 1936), as did Church and his two students Stephen Kleene and J. B. Rosser by use of Church's lambda-calculus and Gödel's recursion theory (1934). Church's paper (published 15 April 1936) showed that the Entscheidungsproblem was indeed "undecidable" and beat Turing to the punch by almost a year (Turing's paper submitted 28 May 1936, published January 1937). In the meantime, Emil Post submitted a brief paper in the fall of 1936, so Turing at least had priority over Post. While Church refereed Turing's paper, Turing had time to study Church's paper and add an Appendix where he sketched a proof that Church's lambda-calculus and his machines would compute the same functions.
  −
 
  −
问题在于,首先需要对“明确的一般适用处方”作出精确的定义,普林斯顿大学教授阿隆佐 · 丘奇将其称之为“有效可计算性” ,而在1928年并不存在这样的定义。但在接下来的6-7年里,埃米尔•波斯特(Emil Post)定义了一个从一个房间走到另一个房间的工人,他在一系列指令中擦去了字迹(1936年以后) ,丘奇和他的两个学生斯蒂芬•克莱恩(Stephen Kleene)和 j。B. Rosser 使用 Church 的 lambda 微积分和哥德尔的可计算性理论。丘奇的论文(发表于1936年4月15日)表明,可判定性确实是“无法判定的” ,几乎用了一年时间击败了图灵(图灵于1936年5月28日提交的论文,发表于1937年1月)。与此同时,埃米尔 · 波斯特在1936年秋天提交了一份简短的论文,因此图灵至少比波斯特有优先权。当丘奇审阅图灵的论文时,图灵有时间研究丘奇的论文,并在附录中草拟了一个证据,证明丘奇的 λ 微积分和他的机器可以计算相同的函数。
  −
 
  −
By 1922, this notion of "[[Entscheidungsproblem]]" had developed a bit, and [[Heinrich Behmann|H. Behmann]] stated that
  −
 
  −
 
  −
 
  −
{{quote|...&nbsp;most general form of the Entscheidungsproblem [is] as follows:
  −
 
  −
<blockquote>A quite definite generally applicable prescription is required which will allow one to decide in a finite number of steps the truth or falsity of a given purely logical assertion ...</blockquote>|Gandy p. 57, quoting Behmann}}
  −
 
  −
And Post had only proposed a definition of calculability and criticized Church's "definition", but had proved nothing.
  −
 
  −
波斯特只是提出了一个可计算性的定义,并批评了丘奇的“定义” ,但什么也没有证明。
  −
 
  −
{{quote|Behmann remarks that ... the general problem is equivalent to the problem of deciding which mathematical propositions are true.|''ibid.''}}
  −
 
  −
{{quote|If one were able to solve the Entscheidungsproblem then one would have a "procedure for solving many (or even all) mathematical problems".|''ibid.'', p. 92}}
  −
 
  −
 
  −
 
  −
In the spring of 1935, Turing as a young Master's student at King's College Cambridge, UK, took on the challenge; he had been stimulated by the lectures of the logician M. H. A. Newman "and learned from them of Gödel's work and the Entscheidungsproblem ... Newman used the word 'mechanical' ... In his obituary of Turing 1955 Newman writes:
  −
 
  −
1935年春天,图灵作为英国剑桥国王学院的一名年轻的硕士生接受了这个挑战,他受到逻辑学家 m. h. a. Newman 的演讲的鼓舞,从他们那里学到了哥德尔的作品和可判定性... ..。在图灵1955年的讣告中,纽曼写道:
  −
 
  −
By the 1928 international congress of mathematicians, Hilbert "made his questions quite precise. First, was mathematics ''[[Completeness (logic)|complete]]'' ... Second, was mathematics ''[[Consistency proof|consistent]]'' ... And thirdly, was mathematics ''[[Decidability (logic)|decidable]]''?" (Hodges p.&nbsp;91, Hawking p.&nbsp;1121). The first two questions were answered in 1930 by [[Kurt Gödel]] at the very same meeting where Hilbert delivered his retirement speech (much to the chagrin of Hilbert); the third—the Entscheidungsproblem—had to wait until the mid-1930s.
  −
 
  −
 
  −
 
  −
The problem was that an answer first required a precise definition of "''definite general applicable prescription''", which Princeton professor [[Alonzo Church]] would come to call "[[effective calculability]]", and in 1928 no such definition existed. But over the next 6–7 years [[Emil Post]] developed his definition of a worker moving from room to room writing and erasing marks per a list of instructions (Post 1936), as did Church and his two students [[Stephen Kleene]] and [[J. B. Rosser]] by use of Church's [[lambda-calculus]] and Gödel's [[recursion theory]] (1934). Church's paper (published 15 April 1936) showed that the Entscheidungsproblem was indeed "undecidable" and beat Turing to the punch by almost a year (Turing's paper submitted 28 May 1936, published January 1937). In the meantime, Emil Post submitted a brief paper in the fall of 1936, so Turing at least had priority over Post. While Church refereed Turing's paper, Turing had time to study Church's paper and add an Appendix where he sketched a proof that Church's lambda-calculus and his machines would compute the same functions.
  −
 
  −
 
  −
 
  −
Gandy states that:
  −
 
  −
甘迪表示:
  −
 
  −
{{quote|But what Church had done was something rather different, and in a certain sense weaker. ... the Turing construction was more direct, and provided an argument from first principles, closing the gap in Church's demonstration.|Hodges p. 112}}
  −
 
  −
 
  −
 
  −
And Post had only proposed a definition of [[Church–Turing thesis|calculability]] and criticized Church's "definition", but had proved nothing.
  −
 
  −
 
  −
 
  −
While Gandy believed that Newman's statement above is "misleading", this opinion is not shared by all. Turing had a lifelong interest in machines: "Alan had dreamt of inventing typewriters as a boy; [his mother] Mrs. Turing had a typewriter; and he could well have begun by asking himself what was meant by calling a typewriter 'mechanical'" (Hodges p.&nbsp;96). While at Princeton pursuing his PhD, Turing built a Boolean-logic multiplier (see below). His PhD thesis, titled "Systems of Logic Based on Ordinals", contains the following definition of "a computable function":
  −
 
  −
虽然甘迪认为纽曼的上述言论是“误导性的” ,但并非所有人都赞同这一观点。图灵一生都对机器有着浓厚的兴趣: “艾伦从小就梦想发明打字机; (他的母亲)图灵夫人有一台打字机; 他完全可以从问自己,称打字机为‘机械’是什么意思开始。”。在普林斯顿攻读博士学位期间,图灵构建了一个布尔逻辑乘数(见下文)。他的博士论文题为“基于序数的逻辑系统” ,包含了以下“可计算函数”的定义:
  −
 
  −
===Alan Turing's a-machine===
  −
 
  −
In the spring of 1935, Turing as a young Master's student at [[King's College Cambridge]], [[UK]], took on the challenge; he had been stimulated by the lectures of the logician [[M. H. A. Newman]] "and learned from them of Gödel's work and the Entscheidungsproblem ... Newman used the word 'mechanical' ... In his obituary of Turing 1955 Newman writes:
  −
 
  −
 
  −
 
  −
{{quote|To the question 'what is a "mechanical" process?' Turing returned the characteristic answer 'Something that can be done by a machine' and he embarked on the highly congenial task of analysing the general notion of a computing machine.|Gandy, p. 74}}
  −
 
  −
When Turing returned to the UK he ultimately became jointly responsible for breaking the German secret codes created by encryption machines called "The Enigma"; he also became involved in the design of the ACE (Automatic Computing Engine), "[Turing's] ACE proposal was effectively self-contained, and its roots lay not in the EDVAC [the USA's initiative], but in his own universal machine" (Hodges p.&nbsp;318). Arguments still continue concerning the origin and nature of what has been named by Kleene (1952) Turing's Thesis. But what Turing did prove with his computational-machine model appears in his paper "On Computable Numbers, with an Application to the Entscheidungsproblem" (1937):
  −
 
  −
当图灵回到英国后,他最终共同负责破解由加密机制造的德国秘密代码“谜” ; 他还参与了 ACE (自动计算机引擎)的设计,“(图灵的) ACE 提案实际上是独立的,它的根基不在于 EDVAC (美国的倡议) ,而在于他自己的通用机器”(第318页)。关于克莱恩(1952)图灵命名的东西的起源和性质的争论仍在继续。但是图灵用他的计算机模型证明的东西出现在他的论文《论可计算的数字,以及对可判定性的应用》(1937)中:
  −
 
  −
 
  −
 
  −
Gandy states that:
  −
 
  −
 
  −
 
  −
{{quote|I suppose, but do not know, that Turing, right from the start of his work, had as his goal a proof of the undecidability of the Entscheidungsproblem. He told me that the 'main idea' of the paper came to him when he was lying in Grantchester meadows in the summer of 1935. The 'main idea' might have either been his analysis of computation or his realization that there was a universal machine, and so a [[Cantor's diagonal argument|diagonal argument]] to prove unsolvability.|''ibid.'', p. 76}}
  −
 
  −
Turing's example (his second proof): If one is to ask for a general procedure to tell us: "Does this machine ever print 0", the question is "undecidable".
  −
 
  −
图灵的例子(他的第二个证明) : 如果一个人要求一个通用程序告诉我们: “这台机器曾经打印过0吗? ” ,这个问题是“无法判定的”。
  −
 
  −
 
  −
 
  −
While Gandy believed that Newman's statement above is "misleading", this opinion is not shared by all. Turing had a lifelong interest in machines: "Alan had dreamt of inventing typewriters as a boy; [his mother] Mrs. Turing had a typewriter; and he could well have begun by asking himself what was meant by calling a typewriter 'mechanical'" (Hodges p.&nbsp;96). While at Princeton pursuing his PhD, Turing built a Boolean-logic multiplier (see below). His PhD thesis, titled "[[Systems of Logic Based on Ordinals]]", contains the following definition of "a computable function":
  −
 
  −
 
  −
 
  −
In 1937, while at Princeton working on his PhD thesis, Turing built a digital (Boolean-logic) multiplier from scratch, making his own electromechanical relays (Hodges p.&nbsp;138). "Alan's task was to embody the logical design of a Turing machine in a network of relay-operated switches ..." (Hodges p.&nbsp;138). While Turing might have been just initially curious and experimenting, quite-earnest work in the same direction was going in Germany (Konrad Zuse (1938)), and in the United States (Howard Aiken) and George Stibitz (1937); the fruits of their labors were used by both the Axis and Allied militaries in World War II (cf. Hodges p.&nbsp;298–299). In the early to mid-1950s Hao Wang and Marvin Minsky reduced the Turing machine to a simpler form (a precursor to the Post–Turing machine of Martin Davis); simultaneously European researchers were reducing the new-fangled electronic computer to a computer-like theoretical object equivalent to what was now being called a "Turing machine". In the late 1950s and early 1960s, the coincidentally parallel developments of Melzak and Lambek (1961), Minsky (1961), and Shepherdson and Sturgis (1961) carried the European work further and reduced the Turing machine to a more friendly, computer-like abstract model called the counter machine; Elgot and Robinson (1964), Hartmanis (1971), Cook and Reckhow (1973) carried this work even further with the register machine and random-access machine models—but basically all are just multi-tape Turing machines with an arithmetic-like instruction set.
  −
 
  −
1937年,在普林斯顿写博士论文的时候,图灵从零开始制造了一个数字(布尔逻辑)乘法器,制造了他自己的机电式继电器(Hodges p. 138)。“艾伦的任务是在中继操作的开关网络中体现图灵机的逻辑设计... ”(Hodges p. 138)。虽然图灵最初可能只是好奇和试验,但是在德国(Konrad Zuse,1938年)和美国(Howard Aiken,1937年)都在朝着同一个方向努力,他们的劳动成果被轴心国和盟国的军队在二战中使用。Hodges p. 298-299).在20世纪50年代早期到中期,Hao Wang 和 Marvin Minsky 将图灵机简化为一种更简单的形式(它是 Martin Davis 的后图灵机的前身) ; 与此同时,欧洲研究人员将这种新型电子计算机简化为一种类似于计算机的理论物体,相当于现在所说的“图灵机”。在20世纪50年代后期和60年代初期,巧合地并行发展的 Melzak 和 Lambek (1961)、 Minsky (1961)和 Shepherdson and Sturgis (1961)进一步推进了欧洲的工作,并将图灵机简化为一个更友好的、类似计算机的抽象模型,称为计数器; Elgot 和 Robinson (1964)、 Hartmanis (1971)、 Cook 和 Reckhow (1973)将这项工作进一步推进到寄存器和随机存取机器模型ーー但基本上所有这些都只是带有类似指令集的多磁带算术机器。
  −
 
  −
{{quote|It was stated above that 'a function is effectively calculable if its values can be found by some purely mechanical process'. We may take this statement literally, understanding by a purely mechanical process one which could be carried out by a machine. It is possible to give a mathematical description, in a certain normal form, of the structures of these machines. The development of these ideas leads to the author's definition of a computable function, and to an identification of computability with effective calculability. It is not difficult, though somewhat laborious, to prove that these three definitions [the 3rd is the λ-calculus] are equivalent.|Turing (1939) in ''The Undecidable'', p. 160}}
  −
 
  −
 
  −
 
  −
When Turing returned to the UK he ultimately became jointly responsible for breaking the German secret codes created by encryption machines called "The Enigma"; he also became involved in the design of the ACE ([[Automatic Computing Engine]]), "[Turing's] ACE proposal was effectively self-contained, and its roots lay not in the [[EDVAC]] [the USA's initiative], but in his own universal machine" (Hodges p.&nbsp;318). Arguments still continue concerning the origin and nature of what has been named by Kleene (1952) [[Turing's Thesis]]. But what Turing ''did prove'' with his computational-machine model appears in his paper "[[On Computable Numbers, with an Application to the Entscheidungsproblem]]" (1937):
  −
 
  −
Today, the counter, register and random-access machines and their sire the Turing machine continue to be the models of choice for theorists investigating questions in the theory of computation. In particular, computational complexity theory makes use of the Turing machine:
  −
 
  −
今天,计数器、寄存器和随机存取机器以及它们的祖先图灵机仍然是研究计算理论问题的理论家们的首选模型。特别是,计算复杂性理论使用了图灵机:
  −
 
  −
 
  −
 
  −
{{quote|[that] the Hilbert Entscheidungsproblem can have no solution ... I propose, therefore to show that there can be no general process for determining whether a given formula U of the functional calculus K is provable, i.e. that there can be no machine which, supplied with any one U of these formulae, will eventually say whether U is provable.|from Turing's paper as reprinted in ''The Undecidable'', p. 145}}
  −
 
  −
{{quote|Depending on the objects one likes to manipulate in the computations (numbers like nonnegative integers or alphanumeric strings), two models have obtained a dominant position in machine-based complexity theory:
  −
 
  −
{{ quote | 取决于人们喜欢在计算中操纵的对象(如非负整数或字母数字字符串) ,两个模型在机器复杂性理论中占据了主导地位:
  −
 
  −
 
  −
 
  −
<blockquote>the off-line multitape Turing machine..., which represents the standard model for string-oriented computation, and
  −
 
  −
离线多带图灵机... ,它代表了面向字符串计算的标准模型,以及
  −
 
  −
Turing's example (his second proof): If one is to ask for a general procedure to tell us: "Does this machine ever print 0", the question is "undecidable".
  −
 
  −
 
  −
 
  −
the random access machine (RAM) as introduced by Cook and Reckhow ..., which models the idealized Von Neumann style computer.</blockquote>|van Emde Boas 1990:4}}
  −
 
  −
由 Cook 和 Reckhow... 引入的随机存取机(RAM) ,它模拟了理想化的冯诺依曼式计算机。1990:4}
  −
 
  −
===1937–1970: The "digital computer", the birth of "computer science"===
  −
 
  −
In 1937, while at Princeton working on his PhD thesis, Turing built a digital (Boolean-logic) multiplier from scratch, making his own electromechanical relays (Hodges p.&nbsp;138). "Alan's task was to embody the logical design of a Turing machine in a network of relay-operated switches ..." (Hodges p.&nbsp;138). While Turing might have been just initially curious and experimenting, quite-earnest work in the same direction was going in Germany ([[Konrad Zuse]] (1938)), and in the United States ([[Howard Aiken]]) and [[George Stibitz]] (1937); the fruits of their labors were used by both the Axis and Allied militaries in [[World War II]] (cf. Hodges p.&nbsp;298–299). In the early to mid-1950s [[Hao Wang (academic)|Hao Wang]] and [[Marvin Minsky]] reduced the Turing machine to a simpler form (a precursor to the [[Post–Turing machine]] of [[Martin Davis (mathematician)|Martin Davis]]); simultaneously European researchers were reducing the new-fangled [[electronic computer]] to a computer-like theoretical object equivalent to what was now being called a "Turing machine". In the late 1950s and early 1960s, the coincidentally parallel developments of Melzak and Lambek (1961), Minsky (1961), and Shepherdson and Sturgis (1961) carried the European work further and reduced the Turing machine to a more friendly, computer-like abstract model called the [[counter machine]]; Elgot and Robinson (1964), Hartmanis (1971), Cook and Reckhow (1973) carried this work even further with the [[register machine]] and [[random-access machine]] models—but basically all are just multi-tape Turing machines with an arithmetic-like instruction set.
  −
 
  −
 
  −
 
  −
===1970–present: the Turing machine as a model of computation===
  −
 
  −
Today, the counter, register and random-access machines and their sire the Turing machine continue to be the models of choice for theorists investigating questions in the [[theory of computation]]. In particular, [[computational complexity theory]] makes use of the Turing machine:
  −
 
  −
 
  −
 
  −
{{quote|Depending on the objects one likes to manipulate in the computations (numbers like nonnegative integers or alphanumeric strings), two models have obtained a dominant position in machine-based complexity theory:
  −
 
  −
<blockquote>''the off-line multitape Turing machine''..., which represents the standard model for string-oriented computation, and
  −
 
  −
 
  −
 
  −
the ''random access machine (RAM)'' as introduced by Cook and Reckhow ..., which models the idealized Von Neumann style computer.</blockquote>|van Emde Boas 1990:4}}
  −
 
  −
{{quote|Only in the related area of analysis of algorithms this role is taken over by the RAM model.|van Emde Boas 1990:16}}
  −
 
  −
 
  −
 
  −
==See also==
  −
 
  −
{{divcol|colwidth=22em}}
  −
 
  −
* [[Arithmetical hierarchy]]
  −
 
  −
* [[Bekenstein bound]], showing the impossibility of infinite-tape Turing machines of finite size and bounded energy
  −
 
  −
* [[BlooP and FlooP]]
  −
 
  −
* [[Busy beaver]]
  −
 
  −
* [[Chaitin constant]] or [[Omega (computer science)]] for information relating to the halting problem
  −
 
  −
* [[Chinese Room]]
  −
 
  −
* [[Conway's Game of Life]], a Turing-complete cellular automaton
  −
 
  −
* [[Digital infinity]]
     −
* [[The Emperor's New Mind]]
+
克劳德·香农,另一位信息理论的领军思想家
 
  −
* [[Enumerator (in theoretical computer science)]]
  −
 
  −
* [[Genetix]]
  −
 
  −
* ''[[Gödel, Escher, Bach: An Eternal Golden Braid]]'', a famous book that discusses, among other topics, the Church–Turing thesis
  −
 
  −
* [[Halting problem]], for more references
  −
 
  −
* [[Harvard architecture]]
  −
 
  −
* [[Imperative programming]]
  −
 
  −
* [[Langton's ant]] and [[Turmite]]s, simple two-dimensional analogues of the Turing machine
  −
 
  −
* [[List of things named after Alan Turing]]
  −
 
  −
* [[Modified Harvard architecture]]
  −
 
  −
* [[Probabilistic Turing machine]]
  −
 
  −
* [[Random-access Turing machine]]
  −
 
  −
* [[Quantum Turing machine]]
  −
 
  −
* [[Claude Shannon]], another leading thinker in information theory
     −
* [[Turing machine examples]]
+
* [[Turing machine examples]] 图灵机实例
   −
* [[Turing switch]]
+
* [[Turing switch]] 调协开关
   −
* [[Turing tarpit]], any computing system or language that, despite being Turing complete, is generally considered useless for practical computing
+
* [[Turing tarpit]], any computing system or language that, despite being Turing complete, is generally considered useless for practical computing 图灵图谱,任何计算系统或语言,尽管是Turing完成的,通常被认为对实际计算无用
   −
* [[Unorganized machine]], for Turing's very early ideas on neural networks
+
* [[Unorganized machine]], for Turing's very early ideas on neural networks 无组织的机器,Turing关于神经网络的早期想法
   −
* [[Von Neumann architecture]]
+
* [[Von Neumann architecture]] 冯-诺依曼结构
     
90

个编辑

导航菜单