DFA與NFA有何區別?

DFA與NFA有何區別?使用者36016159250312362019-10-23 18:15:03

一個程式要轉換成詞法分析器,詞法分析器的任務就是將字元流轉換成詞法記號流,轉換的核心在於有窮自動機的表示方法,有窮自動機與狀態轉換圖有點相似,但它不是圖,而是一個識別器,它對每個輸入的字元做識別和判斷,以確定其能到達的最終狀態或狀態集和路徑,有窮自動機分為兩類,即不確定的有窮自動機NFA和確定的有窮自動機DFA。NFA可以轉換成DFA,NFA和DFA的主要區別在於:

1)DFA沒有輸入空串之上的轉換動作。

2)對於DFA,一個特定的符號輸入,有且只能得到一個狀態,而NFA就有可能得到一個狀態集。