圖靈機

圖靈機的形式定義(formal definition of a Turing machine)

形式定義不過是一份精確的零件清單:它替機器的每個部件命名,好讓世界各地任意兩個人都能依描述造出完全相同的東西。DFA 是五元組(狀態、字母表、轉移、起始、接受),圖靈機則需要多一些,因為它有更豐富的字母表,以及「帶答案停機」的兩種方式。完整的配方通常寫成一個七元組。

這七個部件是:Q,一個有限的狀態集合;Σ(Sigma),輸入字母表(輸入可使用的符號,絕不含空白);Γ(Gamma),紙帶字母表,包含 Σ 以及空白與任何工作符號;δ(delta),轉移函數,把(狀態,所讀符號)映到(下一狀態,要寫的符號,左移或右移);q0,起始狀態,計算由此開始,讀寫頭停在最左邊的輸入符號上;q_accept,一個立即停機並接受的特殊狀態;以及 q_reject,一個立即停機並拒絕的特殊狀態(q_accept 與 q_reject 是不同的狀態)。合起來:M = (Q, Σ, Γ, δ, q0, q_accept, q_reject)。

接受與拒絕這兩個停機狀態,是相對於 DFA 真正的新意。DFA 是讀完所有輸入後,看自己停在哪個狀態來做判定;圖靈機則是一進入 q_accept 或 q_reject 的瞬間就停機,可能遠在任何「輸入結束」之前(它也可能永遠到不了任一個而迴圈)。這正是圖靈機能有三種結果而非兩種的原因。這個定義刻意極簡:日後一切便利(多條紙帶、「原地不動」移動、非確定性)都能由這種樸素形式的機器模擬出來,所以七元組是所有變體最終都化約回去的基石。

識別由 0 與 1 組成、含偶數個 1 之字串的機器可寫成 M = (Q, Σ, Γ, δ, q0, q_accept, q_reject),其中 Q = {q0, q1, q_accept, q_reject},Σ = {0, 1},Γ = {0, 1, B},而 δ 每讀到一個 1 就在 q0 與 q1 之間翻轉,並在從偶數狀態讀到 B 時進入 q_accept。

七元組:Q、Σ、Γ、δ、q0、q_accept、q_reject。

Σ 永遠不含空白,但 Γ 永遠含有它,且 Σ 是 Γ 的子集。約定略有差異(有些只用單一「停機」狀態加上輸出約定),但相對於 DFA 的本質額外之處,就是紙帶字母表與兩個停機狀態。

又称
seven-tupleTM 7-tuple圖靈機七元組七元組定義