從給定的正則表示式設計有限自動機。
有限自動機 (FA) 是一種抽象的計算裝置。它可以用以下方式表示:
- 圖形化(狀態轉換圖)
- 表格化(狀態轉換表)
- 數學化(狀態轉換函式)
FA 的正式定義是它是五元組。
M=(Q, Σ, δ, q0, F)
其中,
- Q:稱為狀態的有限集合
- Σ:稱為字元集的有限集合
- δ:Q × Σ → Q 是狀態轉換函式
- q0 ∈ Q 是起始或初始狀態
- F:結束或接受狀態
正則表示式
正則表示式可用於描述定義字串的一系列模式。它用於匹配字串中的字元組合。
某些正則表示式接受的語言稱為正則語言
現在讓我們考慮 **RE 10+(0+11)0*1**,
為該正則表示式構建有限自動機:
步驟 1
最初考慮兩個狀態 q0 和 qf。此外,考慮初始和最終狀態,q0 到 qf 和給定的正則表示式 10+(0+11)0*1
步驟 2
現在應用並集運算,q0 上的 10 轉到 qf,q0 上的 (0+11)0*1 轉到 qf。
步驟 3
現在,透過應用連線來劃分表示式,即設 L1=0,L2=1。連線兩者,我們得到 L= L1.L2。
將此公式應用於正則表示式,因此 q0 上的 1 轉到 q1,q1 上的 0 轉到 qf。類似地,q0 上的 (0+1) 轉到 q2,q2 上的 0*1 轉到 qf。
步驟 4
q0 上的 1 轉到 q1,q1 上的 0 轉到 qf,q0 上的 (0+1) 轉到 q2,q2 上的 0 轉到 q2 本身,q2 上的 1 轉到 qf。
步驟 5
給定正則表示式的最終有限自動機如下所示:
廣告