有限狀態自動機


有限狀態自動機 分為確定有限狀態自動機(DFA)和不確定有限狀態自動機(NFA) ,這里討論的是確定有限狀態自動機。

1.確定有限狀態自動機(DFA)

M =(S,∑,f,So,Z)其中: 

S是一個有限狀態集合。
∑是一個字母表,輸入字符的集合。
f是從S x ∑*至S的子集映照。
S0⊆S,是唯一的初態。
Z⊆S,是一個終態集
 
***如下圖***
 

上面這個圖描述的就叫一個有限狀態自動機,圖中兩個圓圈,也叫節點,用於表示狀態,從圖中可以看成,它有兩個狀態,分別叫0和1. 從每個節點出發,都會有若干條邊,當處於某個狀態時,如果輸入的字符跟該節點出發的某條邊的內容一樣,那么就會引起狀態的轉換。例如,如果當前狀態處於0,輸入是字符a,那么狀態機就會從狀態0進入狀態1.如果當前狀態是1,輸入字符是b或a,那么,狀態機就會從狀態1進入狀態0.如果當前所處的狀態,沒有出去的邊可以應對輸入的字符,那么狀態機便會進入到錯誤狀態。例如,如果當前處於狀態0,輸入字符是c,那么狀態機就會出錯,因為從狀態0開始,沒有哪條邊對應的字符是c.

狀態機會有一個初始節點,和一個接收節點,以上圖為例,我們可以設置初始節點為0,接收節點為1,當進行一系列的輸入,使得狀態機的狀態不斷變化,只要最后一個輸入使得狀態機處於接收節點,那么就表明當前輸入可以被狀態機接收。例如對應字符串”abaaa”, 從初始節點0開始,狀態機根據該字符串的輸入所形成的狀態變化序列為:{0,1,0,1,0,1}。由於最后狀態機處於狀態1,所以該字符串可以被狀態機接收。如果輸入的字符串是:abbaa, 那么狀態機的變化序列為:{0,1,0,0,1,0}, 由於最后狀態機處於非接收狀態,因此這個字符串被狀態機拒絕。

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM