形式语言与自动机学习笔记(2):正则语言与有限自动机
有限自动机
DFA
DFA是一个五元组;
- :有限状态集合;
- :有限的输入字母表;
- :转移函数:;
- :起始状态;
- :终止状态的集合;
函数:接受一个字符串输入的状态转移函数:
对任何,作出如下定义:
- ;
- 若为字符串,为一个字符,则;
被DFA接受的字符串:输入结束后使DFA达到终止状态;
格局:当前状态,待输入字符串,用表示当前瞬时状态;
NFA 不确定的有限自动机
在某个状态,对应某个输入,有多个转移,能到达多个状态;NFA和DFA的定义上的区别只有函数:
如果接受一个字符串后NFA能够到达的状态集合包含一个及以上F中的元素,则称为该字符串能被NFA接受;
正则集和正则式
- 正则集:字母表上一些特殊形式的字符串的集合,是正则式说表示的集合;
- 正则式:用类似代数表达式的方式表示正则语言;
- 运算:(按照运算优先级从高到低排序)
- (closure)闭包;
- (concatenation)连接;
- (union)联合
注:
- 正则式相等等价于正则集相等;
- 一个正则式对应一个正则集,但一个正则集可能有多个正确的正则式;
右线性文法与正则式
右限性文法又称正则文法。右线性文法和正则式都可以用代表正则语言;
从右线性文法导出正则式
设,其中,则:的解为;
正则集与右线性文法
- 正则集是由右线性文法产生的语言;
- 右线性文法产生的语言都是正则集;
- 一个语言是正则集,当且仅当该语言问右线性语言;
正则式与有限自动机
从DFA构造等价的正则表达式
状态消去法
具体步骤:
从正则式构造等价的-NFA
归纳构造法
右线性语言与有限自动机
定理:由任意右线性文法定义G定义的语言必然能被一个NFAM所接受,即;
构造与右线性文法等价的NFA
省流:
- 新增一个状态作为终止状态;
- 对仍在扩展非终结符的生成式,则转移到对应状态;
- 对到达终结符的生成式,则转移到新增的结束状态;
- 结束状态不存在转移;
构造能接受NFAM定义的语言的有限性文法
DFA的极小化
填表法;
Pumping定理
判定正则语言的必要条件;
定理:设是正则集,存在常数,对字符串且,则可以写成,其中,,对所有的,有;
显然,该定理可以用来证明某个语言不是正则语言;
证明步骤:
- 对于足够大的n;
- 找到一个满足以下条件的串(串长至少为n);
- 任选满足,其中,;
- 找到一个,使得;
形式语言与自动机学习笔记(2):正则语言与有限自动机
https://blog.yokumi.cn/2025/03/31/形式语言与自动机学习笔记(2):正则语言与有限自动机/