构造与正规式 (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 为结尾

当结尾为终结符时,可认为识别成功

相关文章
相关标签/搜索