確定型有限自動機(DFA)
起始狀態(the start state)
起始狀態是每次計算開始的地方,發生在讀入任何一個輸入符號之前。它是機器「我還什麼都沒看到」的狀態。在五元組裡,它是 Q 中的元素 q0;在圖中,它是有一支來自虛無的小箭頭指進去的那個圓圈。
因為一開始什麼都還沒讀,q0 必須編碼「空輸入」的真相。這帶來一個乾淨的結論:DFA 接受空字串 ε(epsilon),恰好當它的起始狀態 q0 本身就是接受狀態時成立。若 q0 不在 F 中,則拿到空輸入的機器會就停在它出發的地方 q0,並予以拒絕。人們設計 DFA 時,這是個雖小卻常見的差一錯誤來源。
起始狀態恰好只有一個——絕不會有兩個,也不會有零個。(這是 DFA 與某些較有彈性的 NFA 表述不同的一處。)設計機器時,選定 q0 就是在決定「在任何事發生之前」哪一項關於歷史的事實為真,把這個基底情形弄對,和把轉移弄對一樣重要。
接受「a 的個數為偶數」之字串的 DFA 從 Even 狀態開始,因為零個 a(空字串)就是偶數個。由於此處 Even 同時也是接受狀態,機器便正確地接受 ε。若你誤從 Odd 開始,就會錯誤地拒絕 ε。
q0 編碼空輸入;DFA 接受 ε 的充要條件是其起始狀態為接受狀態。
DFA 恰好有一個起始狀態。別把「起始」與「接受」混為一談——一個狀態可以兩者皆是、只是其一、或兩者皆非。
又稱
另見