構造與正規式 (0|1)*01 等價的 DFA

構造與正規式 (0|1)*01 等價的 DFA

解題步驟:blog

  • NFA 狀態轉換圖
  • 子集法
  • DFA 的狀態轉換矩陣
  • DFA 的狀態轉圖

解:

已給正規式:(0|1)*01table

畫出 NFA 狀態轉換圖以下:class

子集法的表格:im

I狀態\字符 I0 I1
{S, A, B} 求法: 表示開始符號,以及開始符號識別 n 和 ε 能夠到達的狀態集合。如本題中: 開始符號 S,經過識別 ε 能夠到達的轉態有 A, B,因此集合爲 {S, A, B} {A, B, C} 求法: 表示改行最左端的狀態集,識別最上端的符號能夠到達的狀態,以及這些狀態識別 n 個 ε 能夠到達的狀態的集合。如本題中: 有 {S, A, B},逐個判斷 S 識別 0 弧沒有能夠到達的狀態;A 識別 0 能夠到達 A,B 識別 0 能夠到達 C;如今已有 A, C 狀態,又由於 A 狀態識別 ε 能夠到達 B,因此整個集合爲 {A, B, C} {A, B} 求法: 同相鄰左測表格求法。如本題中: 有 {S, A, B},S 狀態識別 1 沒有能夠到達的狀態,A 識別 1 能夠到達 A,B 識別 1 沒有能夠到達的狀態。因此此時只有 A。又由於 A 狀態識別 ε 能夠到達 B,因此整個集合爲 {A, B}
{A, B, C} 求法: 這個爲何是 {A, B, C}?由於 相鄰右上方表格爲 {A, B, C} 爲何用相鄰右上方表格的狀態集?由於 它是初始態,僅識別 0 和 ε 就能到達的狀態集。因此,能夠將該狀態集視爲識別一條弧所到達的狀態集。能夠看作是下一狀態,爲起狀態別名作準備。 {A, B, C} 注: 有 A 就有 B {A, B, T}
{A, B} {A, B, C} {A, B}
{A, B, T} {A, B, C} {A, B}

對狀態中間重命名,求新的狀態轉換矩陣:d3

(1)由於 S 是初態,重命名爲 S',也是終態命名

(2)設 {A, B, C} 爲 A'img

(3)設 {A, B} 爲 B'tab

(4)由於 T 是終態,此時 {A, B, T} 不是至關於 A' 識別 1 弧所到達的狀態,T 是終態,{A, B, T} 也是終態,重命名爲 T'集合

I狀態\字符 I0 I1
S' A' B'
A' A' T'
B' A' B'
T' A' B'

畫出 NFA 狀態轉換圖以下:co

驗證

(0|1)*01 正規式對應的正規集元素特色是:

  • 以 0 或 1 的任意組合,任意數量爲開頭
  • 以 01 爲結尾

當結尾爲終結符時,可認爲識別成功

相關文章
相關標籤/搜索