主要特點
有限狀态自動機是具有離散輸入和輸出的系統的一種數學模型。
其主要特點有以下幾個方面:
– (1)系統具有有限個狀态,不同的狀态代表不同的意義。按照實際的需要,系統可以在不同的狀态下完成規定的任務。
– (2)我們可以将輸入字符串中出現的字符彙集在一起構成一個字母表。系統處理的所有字符串都是這個字母表上的字符串。
– (3)系統在任何一個狀态下,從輸入字符串中讀入一個字符,根據當前狀态和讀入的這個字符轉到新的狀态。
– (4)系統中有一個狀态,它是系統的開始狀态。
– (5)系統中還有一些狀态表示它到目前為止所讀入的字符構成的字符串是語言的一個句子。
形式定義
· 定義:有限狀态自動機(FA—finite automaton)是一個五元組:
– M=(Q, Σ, δ, q0, F)
· 其中,
– Q——狀态的非空有窮集合。∀q∈Q,q稱為M的一個狀态。
– Σ——輸入字母表。
– δ——狀态轉移函數,有時又叫作狀态轉換函數或者移動函數,δ:Q×Σ→Q,δ(q,a)=p。
– q0——M的開始狀态,也可叫作初始狀态或啟動狀态。q0∈Q。
– F——M的終止狀态集合。F被Q包含。任給q∈F,q稱為M的終止狀态。
類型
有多種類型的有限狀态自動機:接受器判斷是否接受輸入;轉換器對給定輸入産生一個輸出。常見的轉換器有Moore機與Mealy機。Moore機對每一個狀态都附加有輸出動作,Mealy機對每一個轉移都附加有輸出動作。
有限狀态自動機還可以分成确定與非确定兩種。非确定有限狀态自動機可以轉化為确定有限狀态自動機。
有限狀态自動機識别的語言是正規語言。
有限狀态自動機除了它在理論上的價值,還在數字電路設計、詞法分析、文本編輯器程序等領域得到了應用。
自動機接受的所有字串構成了自動機識别的語言L(M)。
非确定有限狀态自動機
一個非确定有限狀态自動機(NFA "Non-deterministic finite automaton")M是由下述元素構成的五元組(Q,Σ,δ,q0,F)
有窮狀态集合Q;
有窮輸入字母表Σ;
轉移函數δ:Q×Σ->2Q;
初始狀态q0;
終結狀态集合F,F包含于Q。
自動機從初始狀态q0起,逐一讀入輸入串(由輸入字母表Σ的字母構成)的每一個字母,根據當前狀态、輸入字母和轉移函數δ決定自動機的下一步狀态;如果輸入串結束時,自動機處于終結狀态集合F的某一個狀态,這表示自動機接受該字串;否則自動機不接受該字串。
非确定有限狀态自動機與确定有限狀态自動機的唯一區别是它們的轉移函數不同。确定有限狀态自動機對每一個可能的輸入隻有一個狀态的轉移。非确定有限狀态自動機對每一個可能的輸入可以有多個狀态轉移,接受到輸入時從這多個狀态轉移中非确定地選擇一個。
自動機接受的所有字串構成了自動機識别的語言L(M)。
計算能力
确定有限狀态自動機與非确定有限狀态自動機識别的語言都是正則語言。由于正則語言的良好性質,許多為其他自動機(下推自動機或圖靈機)不能判定的問題,在有限狀态自動機的情形下,都可以得到判定,并且存在有效的算法。
對一個确定有限狀态自動機,下述判定問題都可以判定,并且存在有效的算法。
該自動機識别的語言是否為空集。
該自動機識别的語言是否為有限集。
該自動機是否與另一個确定有限狀态自動機識别同一個的語言。
例如:有限狀态自動機:輸入串為3進制數,輸出為模5的餘數(0,1,2,3,4)
模5的餘數總共隻有5個,這就是5個狀态。初始狀态為0,每個狀态也都是最終狀态。
三進制每位數有3種可能,因此每種狀态有3種躍遷可能。
把3進制串理解成從高位到低位一個一個輸入,每條輸入就是一次躍遷,狀态就是到當前輸入為止的3進制數模5的餘數。
躍遷的函數如下:
目标狀态=(當前狀态 *進制數(此題為3)+串的當前位)%5。
舉例如下:
三進制數 12112
當前狀态 輸入 躍遷
0(start) 1 (0*3+1) % 5 = 1
1 2 (1*3+2) % 5 = 0
0 1 (0*3+1) % 5 = 1
1 1 (1*3+1) % 5 = 4
4 2 (4*3+2) % 5 = 4 (最終結果)
最小化
根據Myhill-Nerode定理,在同構意義下接受一個正則語言的最少狀态的确定有限狀态自動機是唯一的。同時我們還存在有效的算法(時間開銷是O(n^2)的)構造出與給定确定有限狀态自動機等價的最小化的确定有限狀态自動機。