確定型有限自動機(DFA)

狀態圖(a state diagram)

狀態圖是有限自動機的圖像——看懂機器最親切、最直覺的方式。每個狀態是一個圓圈,每個轉移是一支從某圓圈指向另一圓圈、帶有標籤的箭頭;起始狀態有一支來自虛無、指進去的散箭頭;每個接受狀態畫成雙圓圈。你能一眼從紙面上讀出整部機器。

要在圖上以手追蹤一個字串,把手指放在起始圓圈上。對每個輸入符號,沿著從目前圓圈離開、標籤為該符號的箭頭走——在 DFA 中恰好只有一支這樣的箭頭,因為 δ 是確定且全函數。輸入讀完時,看你手指停在的那個圓圈:若是雙圓圈就接受,否則就拒絕。回到同一圓圈的箭頭(自迴圈)很常見,意思只是「讀到這個符號就留在原地」。

狀態圖與形式五元組是同一物件的兩種視角:每一支從圓圈 q 指向圓圈 p、標籤為 a 的箭頭,恰恰就是等式 δ(q, a) = p;起始箭頭點名 q0;雙圓圈點名 F。圖對於建立直覺與設計都很美妙,但要做證明、或要把機器餵給電腦時,你會去拿元組或轉移表。

畫出「以 1 結尾」的 DFA:一支起始箭頭指進圓圈 A;從 A 出發有一條標籤 0 的自迴圈,以及一支標籤 1、指向圓圈 B(雙圓圈)的箭頭;從 B 出發有一條標籤 1 的自迴圈,以及一支標籤 0、指回 A 的箭頭。追蹤 101:A -(1)-> B -(0)-> A -(1)-> B,手指停在雙圓圈 B,所以接受。

圓圈=狀態,箭頭=δ,雙圓圈=接受,來自外部的散箭頭=起始。

在正確的 DFA 圖中,每個圓圈對每個字母表符號都必須恰好有一支離開的箭頭(全函數性與確定性)。缺了箭頭的圖,要嘛畫得不完整,要嘛偷偷是個 NFA。

又稱
transition diagramstate-transition diagram狀態轉移圖狀態圖