形式语言与自动机 Part.4 正则语言,2DFA,Mealy&Moore机

这篇博客详细介绍了形式语言与自动机中的正则语言概念,包括正则表达式、有限自动机、右线性文法之间的相互转换。此外,还探讨了DFA的最小化算法,以及双向有限自动机(2DFA)和有输出的有限自动机(Mealy机与Moore机)的工作原理和转换。
摘要由CSDN通过智能技术生成

课程名:形式语言与自动机

作者:Lupinus_Linn

许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享

  • 署名(英语:Attribution,BY):您(用户)可以复制、发行、展览、表演、放映、广播或通过信息网络传播本作品;您必须按照作者或者许可人指定的方式对作品进行署名。
  • 非商业性使用(英语:Noncommercial,NC):您可以自由复制、散布、展示及演出本作品;您不得为商业目的而使用本作品。
  • 相同方式共享(英语:Sharealike,SA):您可以自由复制、散布、展示及演出本作品;若您改变、转变或更改本作品,仅在遵守与本作品相同的许可条款下,您才能散布由本作品产生的派生作品。(参见copyleft。)

引用:

  • 本文中部分文字与图片引用自北京邮电大学计算机学院王柏教授的《形式语言与自动机》课程课件。
  • 绪论中的证明方法部分引自清华大学王生原老师课件。
  • 部分题目插图引用自北京邮电大学出版社《形式语言与自动机 第二版》教材。

在此一并表示感谢,并不做商业用途。

本笔记所有内容的传送门

Part.1绪论, Part.2 语言与文法
Part 3.有限自动机
Part.4 正则语言,2DFA,Mealy&Moore机
Part.5 上下文无关语言与下推自动机(PDA)
Part.6 图灵机

Part.4 正则语言

4.1 基本概念

  • 正则语言:满足正则语言的判定定理的语言。
  • 正则(表达)式:用类似代数表达式的方法表示正则语言。
  • 正则式的相等:表示的语言相同。
  • 正则集:满足正则式的字符串的集合。
  • 正则式和语言的的联合运算+,连接运算•,正闭包 L + L^+ L+,星闭包 L ∗ L^* L及运算性质。

注1:正则集是T* 的子集。(即正则集是T*上的语言)
注2:L+包含ε当且仅当L包含ε。
注3:每个正则集至少对应一个正则式(可有无穷多 个正则式)

4.2 右线性文法↔正则表达式

两个等价

  1. 左线性文法和右线性文法等价。
  2. 右线性文法和正则式等价(右线性文法产生的语言都是正则语言,正则语言都可以用右线性文法产生)
    从右线性文法导出正则式:设 x → α x + β , α ∈ T ∗ , x ∈ N , t h e n   x = α ∗ β x\rarr \alpha x+\beta,\alpha \in T^*,x\in N,then\ x=\alpha^*\beta xαx+β,αT,xN,then x=αβ。不断代入消元,最后得出 S = < R E > S= <RE> S=<RE>

4.3 正则语言可以表示为有限自动机、正则表达式和右线性文法

三者两两等价,都表示正则语言

生成终结符吃掉,并转移到产生式的非终结符。
直接生成终结符的非终结符是被接受的。
每个状态名对应一个非终结符,转移条件和转移到的状态构成产生式右侧。
被接受的状态额外还有仅产生终结符的产生式。最后做文法三消。
类似解方程,代入消元。
按照运算顺序,将基本运算还原成文法。
状态消去法。被消去的中间状态对<射入,射出>的状态对都有影响。
按照运输按顺序,将基本运算画成自动机。
右线性文法
有限自动机
正则表达式

例子

G=({S,A},{0,1},P ,S)其中P:S—>1A,A—> 0A |1S|0

  1. 文法转正则式:解方程
    A → 0 A ∣ 1 S ∣ 0 , 即 A → 0 A ∣ 11 A ∣ 0 , 解 得 A = ( 0 + 11 ) ∗ 0 , 得 S = 1 ( 0 + 11 ) ∗ 0 A\to 0A|1S|0,即A\to 0A|11A|0,解得A=(0+11)^*0,得S=1(0+11)^*0 A0A1S0,A0A11A0A=(0+11)0S=1(0+11)0

  2. 正则式转文法:按照运算顺序,按基本运算还原。
    1 , ( 0 + 11 ) ∗ , 0 1,(0+11)^*,0 1,(0+11),0是依次连接的,对应文法的连接,则 S → 1 A 0 , A → ( 0 + 11 ) ∗ S\to 1A0,A\to (0+11)^* S1A0,A(0+11)
    闭包运算的文法是 A → a A ∣ ϵ A\to aA|\epsilon AaAϵ,所以 A → 0 A ∣ 11 A ∣ ϵ A\to 0A|11A|\epsilon A0A11Aϵ

  3. 文法转自动机:生成一个吃一个,生成终结符串的,转移到一个新增的接受状态。
    因为mermaid语法的限制,用方形框表示接受。
    S → 1 A S\to 1A S1A,则状态 q S q_S qS用字符 1 1 1转移到状态 q A q_A qA,其他以此类推。
    A A A可以推出终结符串 0 0 0,则 q A q_A qA通过 0 0 0转移到新的接受状态 q H q_H qH

    1
    0
    1
    0
    qs
    qa
    qh
  4. 自动机转文法:每一个转移,对应一个产生式。转移到接受状态的,额外增加推出终结符串。
    q S q_S qS接受 1 1 1转移到 q A q_A qA,所以文法有产生式 q S → 1 q A q_S\to 1q_A qS1qA,其他以此类推。
    最后可能要做三消(消单消空消递归)。
    q S → 1 q A q A → 1 q S q A → 0 q A q A → 0 q H ∣ 0 q_S\to 1q_A\\ q_A\to 1q_S\\ q_A\to 0q_A\\ q_A\to \bold{0q_H|0} qS1qAqA1qSqA0qAqA0qH0

  5. 自动机转正则式:状态消去法
    要消去状态 q A q_A qA,入射 q A q_A qA的有 { q S } \{q_S\} { qS},出射 q A q_A qA的有 { q H , q S } \{q_H,q_S\} { qH,qS},所以对 q S q_S qS q H q_H q

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值