編譯原理 自動有窮機

2021-09-28 18:46:29 字數 876 閱讀 9895

有窮自動機是識別器,他們只能對每個可能的輸入串簡單地回答「是」或「否」。

組成:m=(

s,σ,

δ,s0

,f

)m=(s,σ,δ,s_0,f)

m=(s,σ

,δ,s

0​,f

)乙個有窮的狀態集合s

有限的輸入符號字母表σ

乙個轉化函式,它為每個狀態和σ∪中的每個符號都給出了相應的後繼狀態集合

乙個初始狀態s0(或者開始狀態)

終止狀態的集合f, f∈s

組成:m=(

s,σ,

δ,s0

,f

)m=(s,σ,δ,s_0,f)

m=(s,σ

,δ,s

0​,f

)確定的有窮自動機是不確定的自動機乙個特例:

沒有輸入ε之上的轉化動作

對於每個狀態s和每個輸入符號a,有且只有一條符號為a的邊離開

無論是nfa還是dna,都可以將它表示為一張轉化表。圖中的結點是狀態,待符號的邊表示自動機的轉化函式。

將nfa表示為一張轉化表

表的各行對應於狀態,各列對應於輸入符號和ε。

將dfa表示為一張轉化表

邊是唯一的,我們可以不使用花括號,直接寫出這個狀態。

從正規表示式構造nfa

對於表示式ε,構造nfa

對於字目表中的子表示式a,構造nfa

r=st,構造r的nfa

r=s|t,構造r的nfa

r=s*,構造r的nfa

r=(s)

因為l®=l(s),直接將n(s)當成n®

從nfa到dfa的轉換

持續更新中

有窮自動機

problem description adfa 證明 adfa是可判定的。實驗方法 編寫乙個演算法 程式,對於任意給定的輸入,可以判定adfa。input 有多個測試序列,測試結束於測試檔案結束 每個測試序列的第一行為幾個正整數n m t a分別表示有n個狀態,從a開始m個小寫字母組成的字符集,第...

有窮狀態自動機

有窮狀態自動機 fa finite automaton 是乙個五元組 m q,q0,f q 狀態的非空有窮集合.q q,q稱為m的乙個狀態.輸入字母表.狀態轉移函式,有時又叫作狀態轉換函式或者移動函式,q q,q,a p.q0 m的開始狀態,也可叫作初始狀態或啟動狀態.q0 q.f m的終止狀態集合...

詞法分析 有窮自動機

1.有窮自動機的概念 有窮自動機 fa 是詞法分析的重要理論基礎。系統根據自己的有窮狀態和離散的輸入資訊決定系統的後序行為。每處理乙個輸入,系統內部狀態也可能發生改變。其轉換圖表示法如下所示 其中start指向的表示初始態,箭頭上面的表示輸入,有向邊就是變化,圓圈內表示狀態。多加了乙個圈 雙圈,狀態...