有限狀態自動機 分為確定有限狀態自動機(dfa)和不確定有限狀態自動機(nfa)。
假設有字串 s="x1 x2 x3 x4 .... xn",在轉移函式的驅動下,狀態轉移,如果當s中的所有字元被讀完,最終落在接受狀態上,則稱狀態機接收此字串。
1.確定有限狀態自動機(dfa)
m =(s,∑,f,so,z)其中:
s是乙個有限狀態集合。
∑是乙個字母表,輸入字元的集合。
f是從s x ∑*至s的子集映照。
s0⊆s,是唯一的初態。
z⊆s,是乙個終態集
初態為0,終態為2.
當進行一系列的輸入,使得狀態機的狀態不斷變化,只要最後乙個輸入使得狀態機處於接收節點,那麼就表明當前輸入可以被狀態機接收。
例如當有字串「abab」,從初始狀態開始,狀態的的變化為,由於最後的狀態為2,所以該字串可以被此狀態機接收。
如果字串為「bbab」,則狀態的變化為,最後的狀態為1,所以該字串不可以被此狀態機接收。
2.不確定有限狀態自動機(nfa)
m =(s,∑,f,so,z)其中:
s是乙個有限狀態集合。
∑是乙個字母表,輸入字元的集合。
f是從s x ∑*至s的子集映照。
s0⊆s,是乙個非空初態集。
z⊆s,是乙個終態集。
在0號狀態上,當讀入乙個字元a,既可以轉到1狀態,又可停留在狀態0,因為狀態是不確定的。兩個狀態都合法。
在這個字串上,不管如何走,只要能走到乙個接受狀態,則這個字串能夠被接受。
如果一條路徑失敗了,不一定是不被接受,需要回溯嘗試其他路徑。
可以寫出轉移函式:
, //在狀態q0上如果讀入乙個字元a,則有可能停留在q0,也可以轉到q1.
(q0,b)->,
(q1,b)->}
有限狀態自動機
有限自動機是更一般化的狀態轉化圖。分為確定有限自動機 dfa 和不確定有限自動機 nfa m s,f,so,z 其中 下圖為乙個確定的有限狀態自動機 m s,f,so,z 其中 下圖為乙個不確定的有限狀態自動機 說了半天其實它們的本質區別就在於s0,確定的有限狀態自動機的s0是唯一確定的。而不確定的...
有限狀態自動機
有限自動機是更一般化的狀態轉化圖。分為確定有限自動機 dfa 和不確定有限自動機 nfa m s,f,so,z 其中 下圖為乙個確定的有限狀態自動機 m s,f,so,z 其中 下圖為乙個不確定的有限狀態自動機 說了半天其實它們的本質區別就在於s0,確定的有限狀態自動機的s0是唯一確定的。而不確定的...
有限狀態自動機
背景提要 星期三的時候,xw交給我乙個點燈的任務 大意是乙個玩意單擊的時候如何如何,長按又如何如何,雙擊又如何如何,幾種狀態分別執行不同的操作。這就導致了一種情況 在機器第一次檢測到按鈕被按下時,我們無法做出論斷 我們不知道這是一次雙擊還是長按還是單擊,我們只能靜觀其變,見機行事。但是按鈕被按下時,...