確定型有限自動機(DFA)
DFA 五元組(the DFA five-tuple)
當我們想精確描述、而不是只畫一張圖時,DFA 會寫成一個五元組——把恰好五樣材料打包在一起的清單:M = (Q, Σ, δ, q0, F)。可以把它想成這部機器完整的食譜卡:只要備齊這五樣東西,機器就被完全指定,再也沒有需要猜測的地方。
依序讀出這五樣材料:Q 是有限的狀態集合(圖中的圓圈)。Σ(Sigma)是輸入字母表——機器被允許讀入的有限符號集合。δ(delta)是轉移函數:它吃進一個狀態與一個符號,回傳恰好一個下一狀態,寫成 δ(q, a) = p,意思是「在狀態 q 讀到符號 a,就走到狀態 p」。q0(Q 中的一個元素)是起始狀態,每次執行都從這裡開始。F(Q 的一個子集)是接受狀態的集合,也就是那些用雙圓圈標示「若你在此結束就說是」的狀態。這就是整部機器。
關於 DFA 的其他所有概念都建立在這個五元組之上:一次執行就是反覆套用 δ 所產生的狀態序列;擴展轉移函數把一整個字串餵進 δ;接受問的是結束狀態是否落在 F 中;而 M 所辨識的語言就是它接受的所有字串之集合。把五元組寫對,正是讓一張含糊的圖變成可供你嚴格證明之物的紀律。
把「以 1 結尾」的 DFA 寫成元組:Q = {A, B},Σ = {0, 1},q0 = A,F = {B},且 δ 由 δ(A,0)=A、δ(A,1)=B、δ(B,0)=A、δ(B,1)=B 給定。五行就完整指定了這部機器;不需要任何圖。
(Q, Σ, δ, q0, F):狀態、字母表、轉移、起始、接受——不需要更多東西。
順序與角色依慣例固定:q0 是單一狀態(不是集合),而 F 是一個集合,可以為空(此時 DFA 什麼都不接受),也可以是整個 Q(此時它接受 Σ* 上的一切)。
又称
另见