编译原理,NFA转DFA

(1) 填写第一行:

 

 (2)填写第二行

(3)填写第三行

(4)全部

重复上面的步骤。最后,得到一个表格

 (注:因为是集合,所以,集合里面元素的顺序无所谓)

IIaIb
{x ,5,1}{5,1,3}{5,1,4}
{5,1,3}{1,5,3,2,6,Y}{5,1,4}
{5,1,4}{5,1,3}{5,1,4,2,6,Y}
{1,5,3,2,6,Y}{1,5,3,2,6,Y}{4,5,1,6,Y}
{5,1,4,2,6,Y}{5,1,3,6,Y}{5,1,4,2,6,Y}
{4,5,1,6,Y}{5,1,3,6,Y}{5,1,4,2,6,Y}
{5,1,3,6,Y}{1,5,3,2,6,Y}{4,5,1,6,Y}

然后,编号:

IIaIb
{x ,5,1}  0{5,1,3}    1{5,1,4} 2
{5,1,3}      1{1,5,3,2,6,Y}   3{5,1,4}  2
{5,1,4}       2 {5,1,3}    1{5,1,4,2,6,Y} 4
{1,5,3,2,6,Y}  3{1,5,3,2,6,Y}    3{4,5,1,6,Y}   5
{5,1,4,2,6,Y}   4{5,1,3,6,Y}    6{5,1,4,2,6,Y}  4
{4,5,1,6,Y}   5{5,1,3,6,Y}     6{5,1,4,2,6,Y}    4
{5,1,3,6,Y}    6{1,5,3,2,6,Y}    3{4,5,1,6,Y}    5

就简化成了下面的二维表格:

IIaIb
012
132
214
335
464
564
635

看第一行,表示 状态0经过a弧到达1,状态0经过b弧到达2. 其他行同理。

注意:在第一列中,包含原来初态的就是新的初态,包含原来终态的就是新的终态。

比如:0所对应的集合是{x,5,1},因为包含原来的初态x,所以,0就是新的初态。

3、4、5、6是新的终态,因为他们各自对应的集合里都包含了原来的终态Y。

由这个二维表格,我们可以画图如下的状态图:
通过以上分析,我们已经知道了 0是初态,3、4、5、6是终态。初态用双箭头指向,终态用双圈表示。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值