目录
知识点
- 有限(状态)自动机概述
- 具有离散 输入 输出系统的一种数学模型
- 状态转移图与状态转移表
- 格局
- DFA
- DFA定义:M = ( Q , T , δ , q 0 , F ) M = (Q,T,\delta,q_{0},F)M=(Q,T,δ,q0,F)
- Q:状态集合
- T:输入字母表
- δ \deltaδ:状态转移函数 Q*T=Q
- q 0 q_{0}q0:初始状态(单个状态)
- F FF:终止状态集合
- 扩展 δ \deltaδ 适合输入字符串 Q ∗ T ∗ = Q Q * T^{*} = QQ∗T∗=Q(注意这里的字符串可能是空串)
- 被DFA接收的语言L(M),M是定义自动机的符号
- DFA定义:M = ( Q , T , δ , q 0 , F ) M = (Q,T,\delta,q_{0},F)M=(Q,T,δ,q0,F)
- NFA
- NFA定义:M = ( Q , T , δ , q 0 , F ) M = (Q,T,\delta,q_{0},F)M=(Q,T,δ,q0,F)
- Q:状态集合
- T:输入字母表
- δ \deltaδ:状态转移函数 $ Q*T=2^{Q} $
- q 0 q_{0}q0:初始状态(单个状态)
- F FF:终止状态集合
- 扩展 δ \deltaδ 适合输入字符串 Q ∗ T ∗ = 2 Q Q * T^{*} = 2^{Q}Q∗T∗=2Q(注意这里的字符串可能是空串)
- 被NFA接收的语言L(M)
- NFA定义:M = ( Q , T , δ , q 0 , F ) M = (Q,T,\delta,q_{0},F)M=(Q,T,δ,q0,F)
- DFA NFA的等价转化(构造与NFA等价的DFA)
- 什么是等价?
- 指给定一个能被DFA(NFA)识别的语言,一定能构造一个NFA(DFA)也能识别该语言
- 构造的方法
- 子集构造法
- 为什么这样构造正确?
- 什么是等价?
- ϵ − N F A \epsilon-NFAϵ−NFA
- ϵ − N F A \epsilon-NFAϵ−NFA 和NFA唯一的不同 δ : Q ∗ ( T ∪ { ϵ } ) = 2 Q \delta:Q*(T\cup \{\epsilon\})=2^{Q}δ:Q∗(T∪{ϵ})=2Q
- ϵ − C L O S U R E \epsilon-CLOSUREϵ−CLOSURE
- 扩展 δ = δ ′ \delta = \delta'δ=δ′ 适合输入字符串
- δ ′ ( q , ω ) = \delta'(q,\omega)=δ′(q,ω)=
- ϵ − C L O S U R E ( q ) , 当 ω = ϵ \epsilon-CLOSURE(q),当\omega=\epsilonϵ−CLOSURE(q),当ω=ϵ
- ϵ − C l O S U R E ⋅ δ ( δ ′ ( q , ω ′ ) , a ) , 当 ω = ω ′ a \epsilon-ClOSURE · \delta(\delta'(q,\omega'),a),当\omega=\omega'aϵ−ClOSURE⋅δ(δ′(q,ω′),a),当ω=ω′a
- δ ( q , a ) ! = δ ′ ( q , a ) \delta(q,a) != \delta'(q,a)δ(q,a)!=δ′(q,a)
- 被ϵ − N F A \epsilon-NFAϵ−NFA接收的语言L(M)
- DFA NFA ϵ \epsilonϵ-NFA 等价转换
- D F A ⊆ N F A ⊆ ϵ − N F A DFA \subseteq NFA \subseteq \epsilon-NFADFA⊆NFA⊆ϵ−NFA
- ϵ − N F A \epsilon-NFAϵ−NFA -> NFA ->DFA
- 正则集和正则表达式
- 正则集:正则表达式表达的字符串的集合。正则集本质上是一种语言,是T ∗ T^{*}T∗的子集
- 运算:
- 联合(或)
- 连接
- *闭包
- 右线性文法、正则表达式、有限自动机 等价性
- 结论:
- 右线性文法产生的语言=右线性语言
- 正则表达式表达的语言=正则集
- 右线性语言=正则集=正则语言
- 识别右线性语言(正则集)的自动机:有限状态自动机(FA)
- FA有:DFA ,NFA ,e p s i l o n − N F A epsilon-NFAepsilon−NFA ,三者等价
- 右线性文法与正则表达式
- 右线性文法->正则表达式
- 等价性:右线性文法产生的语言都是正则集(即产生的字符串构成的集合都可以被某种正则表达式表达),所有正则集都可以被右线性文法产生
- 正则集(正则表达式表达的语言)=右线性语言(右线性文法产生的语言)
- 有限自动机与正则表达式
- 有限自动机 -> 正则表达式(状态消去法)
- 正则表达式 -> ϵ − N F A \epsilon-NFAϵ−NFA(归纳构造)
- 等价性:正则集(正则表达式表达的语言)都能被有限自动机识别,有限自动机识别的语言都是正则集
- 右线性文法与有限自动机
- 经过上述讨论,右线性文法与正则表达式等价,正则表达式与有限自动机等价,故右线性文法与有限自动机等价,即右线性文法产生的语言都能被有限自动机识别,有限自动机识别的语言都是有线性文法产生的语言。
- 右线性文法 -> NFA
- NFA -> 右线性文法
- 经过上述讨论,右线性文法与正则表达式等价,正则表达式与有限自动机等价,故右线性文法与有限自动机等价,即右线性文法产生的语言都能被有限自动机识别,有限自动机识别的语言都是有线性文法产生的语言。
- 结论:
- DFA的极小化
- 找到状态数最小,且和原DFA等价的DFA(注意:等价定义——识别相同语言)
- 状态等价(不可分),状态可分
- 不可达状态
- 填表法
状态转换图
正规式与正规集
确定有限自动机(DFA)
非确定有限自动机(NFA)
NFA确定化
详见作业
例子:
确定有限自动机化简
例子:
正规文法
右线性->FA
左线性->FA
FA->右线性
FA->左线性
作业:
作业3-1
作业3-2
作业3-3
作业3-4