確定型有限自動機(DFA)
DFA 的接受(acceptance by a DFA)
接受是下裁決的那一刻:DFA 要嘛接受一個輸入字串、要嘛拒絕它,而判定何者的規則美妙地簡單。從起始狀態開始在該字串上執行機器;輸入用完時,看你停在哪個狀態。若那個最終狀態是接受狀態,機器就接受;若不是,就拒絕。沒有中間地帶,也沒有第三種答案——每個字串都得到乾淨的是或否。
以符號表示,DFA M = (Q, Σ, δ, q0, F) 接受字串 w,恰好當 δ-hat(q0, w) ∈ F,也就是當從 q0 出發的那條唯一計算以落在接受狀態集合之內作結。拒絕只不過是其補集:當 δ-hat(q0, w) 是一個不在 F 中的狀態時,w 就被拒絕。因為 δ 是全函數,每個字串都有一個良好定義的結束狀態,所以接受對每個可能的輸入都有定義——沒有東西被懸而未決。
兩點誠實的提醒。其一,只有最終狀態算數;途中僅僅經過某個接受狀態並不算接受。其二,接受一次只談一個字串;機器所接受之全部字串的集合,是另一個更大的概念,叫做 DFA 的語言。拒絕不等於當機——DFA 從不當機;拒絕是個刻意的、良好定義的結果。
在「以 1 結尾」的 DFA 上:1101 停在狀態 B(接受狀態),故被接受;1100 停在狀態 A(非接受),故被拒絕;空字串 ε 停在起始狀態 A,亦被拒絕。三個字串,三個明確的裁決。
接受 w 的充要條件是 δ-hat(q0, w) ∈ F;否則拒絕。每個字串都恰好得到一個裁決。
接受只在最後、單憑最終狀態決定一次。途中造訪過接受狀態、卻在別處結束的字串,會被拒絕。
又称
另见