(二)有限自动机和右线性文法
讨论语言,从生成语言的角度可以使用前面定义的文法进行定义,从识别语言的角度可以使用自动机进行定义,而正则式是特殊的对应3型文法的可以直接体现语言的模式。本章讨论3型文法对应的语言,文法角度的右线性文法、左线性文法也即3型文法,识别角度的有限自动机,正则式都是等价的定义。这篇文章的逻辑将是介绍三种定义,证明其等价性,介绍其性质。
有限自动机
Def.有限自动机
有限即有限状态,但这里(参考教材)没有定义“有限”,猜测是可列有限的定义。
Def.确定的有限自动机(DFA)
后继状态唯一
Def.不确定的有限自动机(NFA)
后继状态不唯一
有限自动机的表示
状态转移表
状态转换图

形式定义
确定的有限自动机是一个五元组M=(Q,T,δ,q0,F),其中Q是有限状态集合,T是有限的输入字母表,δ是转换函数,Q×T→Q的映射,q0是初始状态,只有一个状态,F是终止状态集,可以多个状态。
δ函数这样表达:在状态q,读入a后,状态转换成p,则δ(q,a)=p。
δ′函数是映射Q×T∗→Q,即输入可以是字符串。其递归定义为:
- 对ε∈T∗,δ′(q,ε)=q;
- 对任意a∈T,ω∈T∗,δ′(q,ωa)=δ(δ′(q,ω),a)
Def.若δ′(q,ω)=p,p∈F 称ω被该有限自动机接受;L(M)={ω∣δ′(q0,ω)∈F}为M所接受的语言。
Def.格局
(q,ω),其中q当前状态,ω为当前时刻等待输入的字符。称(q0,ω)为初始格局,(q,ε)为终止格局(或接受格局)。
当δ(q,a)含有q1,用格局形式可以写成(q,aω)⊢(q1,ω)其中ω∈T∗,⊢表示从一个格局变换为另一个格局。若 ω 可以被状态机 M 接受,可以写作 ⊢ 横线上加*,左边为 (q0,ω) ,右边为(q,ε)。
不确定有限自动机
其定义在确定有限自动机上做部分更改。
-
δ 函数是Q×T→2Q
- 接受的定义改为,接受一个字符串后进入的状态集,至少有一个状态属于F。
- 注意状态转移表中每一项的后继状态都是一个集合,无论状态数有多少
-
δ′定义也不同,可以自己推想知
能力要求
- 给出识别要求设计有限自动机
- 将不确定有限自动机转换为确定有限自动机