1. 程式人生 > >【軟考】編譯原理之有限自動機

【軟考】編譯原理之有限自動機

什麼是有限自動機?

答:是一種識別裝置的抽象概念,它能準確地識別正規集,他分為兩類:確定的有限自動機和不確定的有限自動機

DFA(確定有限自動機) NFA(不確定有限自動機)
S 是一個有限集合,每個元素成為一個狀態 是一個有限集合,每個元素成為一個狀態
是一個有窮字母表,其中每一個元素成為一個輸入符號 是一個有窮字母表,其中每一個元素成為一個輸入符號
f 單值對映函式 多值對映函式
s0 是唯一的一個開始狀態 開始狀態不唯一
Z 非空的終止狀態 非空的終止狀態
一、DFA(確定有限自動機)

特點:
1、任意狀態的射出弧上的標誌均不相同
2、任意狀態至多有n條射出弧
3、若DFA識別空串,這初態也是終止狀態

二、NFA(不確定有限自動機)

特點:
1、同一狀態的射出弧上的標誌可以相同
2、每個狀態可以有多於n條射出弧
3、允許初態也是終態

三、NFA到DFA的轉換

利用子集法求解

  1. 若I是NFA M的裝填的一個子集,定義ε-closure(I)
  2. 從ε-closure(I)這個集合裡的任意一個狀態出發,經過任意一條空弧能夠到達的狀態,依然屬於開始的空閒包

例子:一個NFA如下

在這裡插入圖片描述

將其轉化為DFA,並最小化。

在這裡插入圖片描述

在這裡插入圖片描述

由於B和C相同,一次刪除C,則得到如下的DFA自動機
在這裡插入圖片描述