有限自动机的等价性(包括NFA转为DFA和DFA的化简)

本文介绍了NFA(非确定有限状态自动机)与DFA(确定有限状态自动机)之间的等价性,并详细阐述了如何通过子集构造法将NFA转换为DFA。通过实例展示了NFA确定化的步骤,以及DFA的化简过程,强调了状态划分和可区分性的概念。
摘要由CSDN通过智能技术生成

目录

1.DFA和NFA的等价性

2.DFA与NFA等价性证明

3.DFA的化简


1.DFA和NFA的等价性

(1)对于每个NFA M存在一个DFA M’,使得L(M)=L(M’)

1.等价性证明

2.NFA的确定化

思路:NFA和DFA的差别

NFADFA
初始状态不唯一唯一
弧上的标记字(单字符字,ε)字符
转换关系非确定确定

 

我先来简单的给大家解释一下他的定义

将NFA转化为DFA,我们采用的方法叫做子集法,比如我们要求对Ia求闭包,我们该如何操作呢:

1.设程序开始的状态为X,对X求关于ε的闭包,就是X经过任意多个ε能到达的状态集合,连同X一起记为I。

2.求a对I的闭包,就是I中的元素经过一步a(以Ia闭包为例)能到达什么,这些状态都属于a对I的闭包,我们将其记为ε-closure(I)或者是记为J。

3.对我们求得的J求对ε的闭包,看看它经过任意多个ε能到达的状态,将这些状态连同J一起组成Ia,记为Ia=ε-closure(J).


2.DFA与NFA等价性证明

我们先来看一道例题

 我们可以看出这是一个NFA,我们要将其化为DFA

对开始状态X做ε闭包,X可以经过ε到达1和2,我们可以知道I={X,1,2},我们对I再求对a的闭包,X不能经过a状态,1经过a状态还是a,2经过a状态到达5,故J={1,5},对J求关于ε的闭包,1经过ε到达2,5不能经过ε,故Ia={1,2,5}。Ib同理进行推导。

 下一行,我们将Ia中的状态集合写在I中继续进行推导,直到所有的状态都已经被推导结束为 止。

对应上表的每一行,对其进行编号,最后画出DFA。

 


3.DFA的化简

1.把状态集划分为一些不相交的子集,使得任何两个不同子集的状态是可区别的,而同一子集的任何两个状态是等价的。 

2.可区别:存在一个字α,要么s读出α停止于终态而t读出α停止于非终态,要么t读出α停止于终态而s读出α停止于非终态。

 具体操作过程

 

 大家可能看的有点懵,下面我列举一道例题供大家理解

1.我们先将将其划分为非终态I1和终态I2,I1={0,1,2},I2={3,4,5,6}

2.对I1进行识别a操作,0识别a是1,1识别a是3,2识别a之后到1,故Ia1={1,3},1和3在I1和I2两个子集中,所以{0,1,2}要进行划分,0,2识别a之后到1,1识别a之后到3,故I11={0,2},I12={1},I2={3,4,5,6}

3.接着进行划分,I11进行识别a操作,0识别a之后是1,2识别a之后是1,不符合划分标准,再对其进行识别b操作,0识别b是2,2识别b是1,Ib11={2,4},2在I1中,4 在I2中,还要进行划分,I111={0},I112={2},I12={1},I2={3,4,5,6}

4.对I2进行划分,分别进行识别a和识别b操作,Ia2={3,6},Ib2={4,5},都在I2集合中,不用对其进行划分

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值