将下图的nfa确定化为dfa_2. 非确定性

ffe0b2ffded1194389da94010ecba510.png
  • 当一个机器在任意一个给定状态,并读入下一个输入符号时,到达的状态是确定的(且只有一个),那么这个机器就是确定型的。
  • 非确定有限状态自动机(Nondeterministic Finite Automaton, NFA)。当这样一个机器读入一个符号,有可能会分割成多个机器(如果这个符号指向多个状态的话)。除此之外,当其什么也不读入的时候(即读入
    ),也有可能会分割成多个机器。这几个机器会并行运行。当输入结束时,只要有其中一个处于接受态,整个NFA就算接受了这个输入(有点量子计算的感觉)。
  • 当一个机器在一个状态,并读入了下一个符号,但机器这个符号没有对应的下一个状态,这个机器就死了(不再计算了)。
  • 下图描述了一个NFA(我们叫它
    ),它能接受所有包含101或11为子串的串。

1cfc31539f1788d00c27ef5e5275d251.png
图1 一个NFA
  • NFA的形式定义
    • 一个NFA是一个5元组
  1. 是一个有限的状态集合。
  2. 是一个有限的符号集。
  3. 是转移函数(其中
    ,
    的幂集(Power Set))。
  4. 是起始状态。
  5. 是接受状态的集合。
  • 重要定理:NFA和DFA识别同一类语言。每个NFA都有一个对应的DFA(DFA是一种特殊的NFA)。关于NFA如何转DFA在这里不作详细介绍,基本思路是用一些k元组来代替NFA的多种状态。
  • 一个语言是正则(Regular)的,当且仅当有NFA能识别这种语言。

讨论:对于DFA来说,是否对于每一个状态,读入任何一个字符集里的字符都能转移(即DFA会不会“死掉”)。以下是关于这个问题的一个讨论。

In a DFA, does every state have a transition on every symbol of the alphabet?​cs.stackexchange.com
2a011ff5050438ffe885f128449ce7a9.png

根据里面的回答的说法,是不需要的。但在我读这本《Introduction to the Theory of Computing》的时候,书里有很多次暗示了需要对于每个字符都能转移(具体在哪里已经忘了)。是否学术界对这个问题还存在争议?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值