NFA转换成等价的DFA

13 篇文章 1 订阅
11 篇文章 6 订阅

ε-closure(I)

       意思为状态集合 I 的 ε - 闭包,是状态集 I 中的任何状态 S 经任意条 ε 弧而能到的状态的集合。(包括自身)
       (下图为例的话,状态指的就是图中的1-8,通俗一点就是从 I 中的任意一个“数字”能到的“数字”的集合)

ε-closure(I)例子

 

NFA转换为等价的DFA

       应试性解答:(不专业,只用于应试)

例子:

NFA N图

 

1. 第一步需要作出一个表格,如果除了 ε 只有 a 和 b 两种弧(一般都只有两种),就做三列,如下所示。

II_{a}I_{b}

T_{0}=\varepsilon -closure(0)

      =\left \{ 0,1,2,4,7 \right \}

  
.........

       通俗点讲: I 行的是最后得到的 DFA 图的各个状态,I_{a} 是 I 行状态能通过 a 弧能到达的状态,I_{b} 是 I 行状态能通过 b 弧能到达的状态。
       求第一个 T_{0} 时候要从初态(就是入口)开始将能经过 ε 能到达的状态全找出来,包括初态本身。并填入到 I 下面的第一个表格。他就是最后得到的 DFA 的初态。
 

2. 将 I 中可通过 a 弧到达的状态找出来写到 I_{a}。必须是到达的,所以0不算,没有状态到达0。可以进过 ε。I_{b} 也是同样的道理。

II_{a}I_{b}

T_{0}=\varepsilon -closure(0)

      =\left \{ 0,1,2,4,7 \right \}

\left \{ 1,2,3,4,6,7,8 \right \}\left \{ 1,2,4,5,6,7 \right \}
.........


3. 如上面所说 T_{0} 是 DFA 的第一个状态,现在讲 I_{a} 当作第二个状态 I_{b}是第三个状态写到下面,标记为 T_{1} 和 T_{2} 。

II_{a}I_{b}

T_{0}=\varepsilon -closure(0)

      =\left \{ 0,1,2,4,7 \right \}

\left \{ 1,2,3,4,6,7,8 \right \}\left \{ 1,2,4,5,6,7 \right \}
T_{1}=\left \{ 1,2,3,4,6,7,8 \right \}  
T_{2}=\left \{ 1,2,4,5,6,7 \right \}  
.........


4. 按照上面的方法继续算下去,直到没有新的状态为止,最后的表格如下所示。

II_{a}I_{b}

T_{0}=\varepsilon -closure(0)

      =\left \{ 0,1,2,4,7 \right \}

\left \{ 1,2,3,4,6,7,8 \right \}\left \{ 1,2,4,5,6,7 \right \}
T_{1}=\left \{ 1,2,3,4,6,7,8 \right \}\left \{ 1,2,3,4,6,7,8 \right \}\left \{ 1,2,4,5,6,7,9 \right \}
T_{2}=\left \{ 1,2,4,5,6,7 \right \}\left \{ 1,2,3,4,6,7,8 \right \}​​​​​​​\left \{ 1,2,4,5,6,7 \right \}
T_{3}=\left \{ 1,2,4,5,6,7,9 \right \}\left \{ 1,2,3,4,6,7,8 \right \}​​​​​​​\left \{ 1,2,4,5,7,10 \right \}
T_{4}=\left \{ 1,2,4,5,7,10 \right \}\left \{ 1,2,3,4,6,7,8 \right \}​​​​​​​\left \{ 1,2,4,5,6,7 \right \}

       直到写完 T_{4} 以后后面的两个在前面都出现过了,所以没有新的状态出现了,所以到此就结束了。所以将 T_{0} 他们分别换成数字,写出他们的状态转换矩阵的话,如下表格所示。它也就是 DFA 的状态转换矩阵。

II_{a}I_{b}
012
113
212
314
412

       那么它的状态转换图,如下图所示。

所求DFA的状态转换图

 

完毕!

 

 

参考:

https://wenku.baidu.com/view/edf6ab8bf524ccbff0218419?ivk_sa=1023194j

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值