【軟考】編譯原理之有限自動機
阿新 • • 發佈:2019-02-13
什麼是有限自動機?
答:是一種識別裝置的抽象概念,它能準確地識別正規集,他分為兩類:確定的有限自動機和不確定的有限自動機
DFA(確定有限自動機) | NFA(不確定有限自動機) | |
S | 是一個有限集合,每個元素成為一個狀態 | 是一個有限集合,每個元素成為一個狀態 |
∑ | 是一個有窮字母表,其中每一個元素成為一個輸入符號 | 是一個有窮字母表,其中每一個元素成為一個輸入符號 |
f | 單值對映函式 | 多值對映函式 |
s0 | 是唯一的一個開始狀態 | 開始狀態不唯一 |
Z | 非空的終止狀態 | 非空的終止狀態 |
一、DFA(確定有限自動機) |
特點:
1、任意狀態的射出弧上的標誌均不相同
2、任意狀態至多有n條射出弧
3、若DFA識別空串,這初態也是終止狀態
二、NFA(不確定有限自動機) |
特點:
1、同一狀態的射出弧上的標誌可以相同
2、每個狀態可以有多於n條射出弧
3、允許初態也是終態
三、NFA到DFA的轉換 |
利用子集法求解
- 若I是NFA M的裝填的一個子集,定義ε-closure(I)
- 從ε-closure(I)這個集合裡的任意一個狀態出發,經過任意一條空弧能夠到達的狀態,依然屬於開始的空閒包
例子:一個NFA如下
將其轉化為DFA,並最小化。
由於B和C相同,一次刪除C,則得到如下的DFA自動機