有穷自动机NFA和DFA的概念理解

有穷自动机(finite automata)分为不确定的有穷自动机(Nondeterministic Finate Automata,NFA)和确定的有穷自动机(Deterministic FiniteAutomata,DFA)。

NFA和DFA都是有穷自动机,一个是不确定的,一个是确定的,这里的确定和不确定应该怎么理解呢?

其实确定和不确定指的是一个状态到另一个状态的输入是否是确定的。拿NFA和DFA的状态转换图来说就是:NFA同一个符号可以标记离开同一状态的多条边,并且e也可以作为标记;DFA同一个符号只能标记一个状态到另一个状态的一条边,即一个状态到另一个状态的边是确定的。

e表示一个空的串

下面是一个能识别正则表达式(a|b)*abb的语言的NFA和DFA状态转换图
在这里插入图片描述

NFA从状态0出发对于同一个输入有两条边指向了不同的状态,即从0状态出发,当输入为a的时候下一个状态可以是0也可以是1,这就是NFA的不确定。

在这里插入图片描述

DFA从一个状态到另一个状态只有唯一的一个输入与之对应。比如从S0到S1对应的输入是a,从S0到S0对应的输入时b,从S1到S2对应的输入是b,这就是DFA的确定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值