形式语言与自动机 2.有穷状态自动机

有穷计算机:

有限状态机是什么?:

有点像图灵机,也可以用纸带来表示:

定义:

状态转移的表示方法:

图:

表:

这些地方,状态转移函数处理的都是字符,现在定义扩展一下,可以读字符串:

递归定义,就是把字符串一个一个读起来。

正则语言 :

只要可以被某一个自动机接受,就可以是一个正则语言。

非确定有穷状态自动机:

注意:之前是从一个状态转移到另一个状态,现在是从一个状态集合转移到另一个状态集合(可以同时拥有多个状态)

和前面一样,单个字符可以有状态转移,也可以是读入一个字符串:

DFA和NFA的等价性:

如何构造呢?:

直接把NFA里的状态集合变成DFA里的一个状态,这样就可以构造出来了。 

接受状态集就是所有包含NFA可接受状态的集合。

状态转移函数就是把DFA当前的状态(也就是一个NFA状态集合)里面的全部状态使用NFA的状态转移函数,就产生了一个新的状态集合,也就是DFA的状态。

其实可以看出,我们已经用NFA构造出了一个DFA。接下来是详细证明:

 

证明到了这个就好办:

 一个例子:

 带有空转移的NFA:

举个例子:

注意:例如q0状态时接收到了1,那么接下来的状态就是q0,q1,q2,q3,并不是说q1,q2会消失掉。

状态的空串闭包:

就是和q可以用空串相连的。

有状态的闭包,当然也就有状态集的闭包:

扩展转移闭包:

其实就是把到达某个状态后,可能因为继续发生空转移而到达的所有可能状态包括进来。

带空转的NFA和DFA也可以等效:

要证明当然还是子集构造法:

 可以和之前的证明对比一下:

可以看到,各种和状态有关的东西变成了状态的闭包,也差不多。

举个例子:

直接从初始状态往后退,就可以得出那些状态要删去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值