形式语言与自动机总结

1.绪论

形式语言定义

自动机:具有离散输入输出的数学模型

对应关系

非限定性语言 ---------- 图灵机

上下文有关语言 ---------- 线性有界自动机

上下文无关语言 ---------- 下推式自动机

正则语言 ---------- 有限自动机

2.语言及文法

字符串运算

字符串:简称为‘字’或者‘串’,是由字母表T中字符构成的有限序列

连接

取头字符,取尾部,子串匹配

逆:字符串倒置:w1=a1a2a3–>w1上有一横=a3a2a1

幂运算:自身连接 ,T0={ε}

闭包(*,+):*闭包包括{ε},+闭包不包括

语言:

注意:L1={ε}和L2={}=Φ不一样,前者是只有一个空句子的语言,后者是空语言

语言的积

L1={ ab , ba },L2={ aa , bb };则L1L2={abaa,abbb,baaa,babb};L1L2 ≠ L2L1.

语言的幂

自身连接

文法定义

四元组G={N,T,P,S}

L(G)是文法生成的句子

N:非终结符的有限集合

T: 终结符的有限集合

P: 生成式的有限集合

S: 起始符,SN

文法分类:

0型文法

无限制

1型文法

​ α–>β,其中|α|<|β|, β∈(N∪T)+,α∈(N∪T)*N+(N∪T)*,即意味着左边必须至少有一个起始符,右边可以起始也可以不起始,但右边长度必须不小于左边长度。对应语言:上下文有关语言

2型文法

​ A–>α,A∈N,α∈(N∪T)*,即意味着左边必须是一个起始符,右边无限制,但长度不小于1(满足1型文法)。对应语言:上下文无关语言

3型文法/正则文法

​ 右线性文法:

​ A–>wB 或 A–>w A,B∈N,w∈T*.

​ 左线性文法:

​ A–>Bw 或 A–>w A,B∈N,w∈T*.

​ 对应语言:正则语言

3.1确定的有限自动机DFA

五元组 = ( Q , T , δ , q0 , F )

Q x T --> Q.

切记:不管是转移图还是转移表表示DFA时,都要注意初始状态和终止状态。初始状态前有箭头,终止状态 有双圈。

被DFA接受的字符串必须在输入结束后能够使DFA状态达到终止

格局

包括信息:当前状态q,待输入字符串w. 两者构成的瞬时描述 ( q , w )

初始格局:( q0 , w )

终止格局: ( q , ε ), q∈F

设计有限自动机:

多个例子



3.2 不确定有限自动机:NFA

五元组:NFA M = ( Q , T , δ , q0 , F )

其中δ = Q x T -->2Q

DFA是特殊的NFA ,NFA转化DFA:

子集构造法

列表法 进行,注意以下几点:

表中的状态集合要在中括号中。例:[ p ],[ q , r ];

表中的起始状态要加箭头,终止状态要加星号*

最后的图中状态集合要在大括号中。例:{ q }, { q , r },同时外加圆圈,终止状态双重圆圈

3.3 ε-NFA

五元组:NFA M = ( Q , T , δ , q0 , F )

其中δ = Q x( T ∪{ ε }) --> 2Q

ε闭包

ε-CLOSURE或ECLOSE,定义为从q经过所有的ε路径可到达状态,包括q自身

状态子集的ε-闭包:ε-CLOSURE( I ) = ∪ε-CLOSURE( q ),q∈I

Ia定义:对于状态子集 I ⊆ Q,任意 a ∈ T,Ia = ε-CLOSURE( δ ( I , a ) ) .

定义P = δ ( I , a ):P是从I中的所有状态经过一条标a的边可以到达的状态集合

计算δ’ ( q0 , a ):

δ’ ( q0 , a ) = ε-CLOSURE{ δ [ δ’ ( q0 , ε ) , a ] }

​ = ε-CLOSURE{ δ [ ε-CLOSURE(q0) , a ] } //先求一个q0的ε-闭包,再将其闭包后的结果全部经过一个a形成的集 合,再将其集合中的元素全部进行ε-闭包得到集合即为最终答案。

构造ε-NFA自动机

ε-NFA自动机格局

ε-NFA转化NFA

ε闭包法:

一个一个找,从起始状态开始将ε路径跳过(空跳),比如从X跳到A,那么A接受1到B,就可以看成X接受1到B,既然X可以空跳经过G,那么讨论完X之后就不再讨论G。

3.4 正则集和正则式

正则集

字母表上一些特殊形式的字符串集合

{ε} , Φ , {a}都是正则集

正则式

用类似代数表达式的方法表示正则语言

ε , Φ , a(a∈T)都是正则式

运算:作用于语言上的代数运算

若A,B为正则式,L{ A } , L{ B }为正则集

联合:A+B 或者 L { A } ∪ L { B } 或者的关系,若之后没有*闭包运算,则A,B不能共存,每次只出现一个

连接:AB 或者 L{ A } · L{ B } 顺序的关系

星闭包:A* 或者 L(A)*

算数符优先级:* 大于 · 大于 +

正则式的性质

L+一定不包含ε吗?不一定,如果L中包含ε,那么L+也可以包含ε.

与闭包有关的定律

(a*)*=a*, a*=a+a*, L+=LL*=L*L, L*=L+∪{ε}

右线性文法与正则式

两者等效

文法 S --> aS, S --> a

对应正则式 a+ = a*a

从右线性文法导出正则式:

求解规则

设x=αx+β,α∈T*,β∈(N∪T)*,x∈N,则x的解为x=α*β

求解方法

将右线性文法的生成式写成联立方程,将所有的大写字母当作未知数求解

3.5 正则集与右线性文法

正则集<==>右线性文法产生的语言

已知正则集,求右线性文法:

例1

设正则集L为含有两个相继a和两个相继b的由a和b组成的所有字符串集合,构造产生L的右线性文法

步骤:

先得出正则式

提炼核心内容:必须有aa和bb,所以可能是aabb,bbaa。

确定其余部分:(a+b)*

得出正则式:(a+b)*aa(a+b)*bb(a+b)* + (a+b)*bb(a+b)*aa(a+b)*

根据正则式得出右线性文法
分解规则

需要从左侧开始分解

对于aX的形式,可以转化为S–>aX

对于(a+b)X的形式,可以转化为S–>aX|bX

对于a*的形式,可以转化为S–>aS

逐步分解

首先,对(a+b)*(相当于提公因式),有S–>aS|bS

然后,对于剩下的aa(a+b)*bb(a+b)*和bb(a+b)*aa(a+b)*,因为是两部分相加得到,所以有S–>aaA|bbB

其中,A = (a+b)*bb(a+b)*,B = (a+b)*aa(a+b)*

先研究A,对于(a+b)*,有A–>aA|bA

剩下bb(a+b)*,有A–>bbC,其中C=(a+b)*

所以C–>aC|bC|ε

同理,B–>aB|bB|aaC

得出答案

S–>aS|bS|aaA|bbB

A–>aA|bA|bbC

B–>aB|bB|aaC

C–>aC|bC|ε

3.7 正则表达式与有限自动机的关系

从DFA构造正则表达式

状态消去法

消去的是中间状态,即除了起始和终止都要消去

最终得到的正则表达式为每一终态对应的正则表达式之和

消去规则

例1

例2

从正则式构造等价ε-NFA

归纳构造过程

对于R+S:

对于RS

对于R*

例子

3.8 右线性语言与有限自动机

由右线性文法G定义的语言必然能被一个NFA M所接受。即L(G) = L(M)

构造与右线性文法等价的有限自动机

例1

设有右线性文法G=({S, B} , {a, b} , P , S),其中 P:S–>aB B–>aB|bS|a, 试着构造与G等价的有限自动机M

答题步骤

构造NFA M

M = ( Q , T , δ , q0 , F ) ,

将Q , T , q0 , F 全部表明清楚

注意Q中要多一个H作为终止状态: Q = { S, B, H },T = { a, b }, q0 = S, F = { H }

构造转换函数δ

每个产生式都对应一个δ

对 S–>aB,有 δ(S,a) = {B}

对 B–>aB,有 δ(B,a) = {B}

对 B–>bS,有 δ(B,b) = {S}

对 B–>a, 有 δ(B,a) = {H}

注意

构造δ时,只有在形如S–>aB时能使用,即右边不能超过两个字母表中字母。如果出现S–>abB,则必须新构造一个状态,使得S–>aC, C–>bB.

3.9-3.10右线性语言的性质

DFA极小化

等价状态

DFA M = ( Q , T , δ , q0 , F ) , 对于任意两个状态q1q2∈Q和每个w∈T*,若有:(q1 , w)|-*(q,ε)<==>(q1 , w)|-*(q,ε)且q∈F,则称q1与q2等价,记作q1≡q2

不可达状态

不存在任何w∈T*,能够使(q0 , w)|-*(q,ε),则称 q∈Q 为不可达状态

最小化

若DFA M不存在互为等价状态和不可达状态,则称 DFA M 为最小化的

最小化算法–填表法
确定不可达状态

将不可达状态删除

区别终态

终态与非终态不可能为等价状态

合并等价态

划分结果时,互为等价态的状态集是用打大括号括起来,最后得出新的状态集合时,每个等价态只用一个状态表示,最后的状态集合每个状态都用中括号括起来

例子

泵浦定理

设L是正则集,存在常数K,对字符串w∈L且 | w | >= n,则 w 可以写成 w1w0w2 ,其中 | w1w0 | <= n,| w0 | > 0,对于所有的 i >= 0 ,有 w1w0iw2∈L。//所以 w0 一定是在字符串的前n个字符中找。

例1

求证L={ak| k >= 1}不是正则集

回答规范

假设L是正则集,取足够大的整数n,w = an。有| w |=| w1w0w2 | = n平方 >= n。

因为 | w1w2 | <= n,| w0 | > 0,若取 i = 2,则 的情况为| w1w0w0w2 |=| w |+| w0 |, | w | = n平方, 0 < | w0 | <= n, 所以 n平方 < | w | + | w0 | <= n平方+n < (n+1)平方,所以不满足w = a的n2次方(串长不是整数平方),所以与假设冲突。

像这个例子是使用了类似于逻辑归纳法的方式来进行反证的。看下一个例子

例2

L={ w | w中0和1的个数相等 }不是正则集

在证明这个L时,我们选取了 0n1n这样一个特殊条件来进行判断,在判断不是正则集后即可将L全部否定。

右线性语言的封闭性

L1和L2是右线性语言,则LI∪L2,L1L2,L1*,L1的补集(就是在L1上面画横杠)L1∩L2都是右线性语言。

双向有限自动机

读入一个字符以后,读头可以:左移右移不动

形式定义:2DFA M = ( Q , T , σ , q0 , F )

设有w1qw2 w1– 已输入串 q–当前状态 w2–待输入串

σ(q,am+1)=(p,R)//R说明右移 格局描述:a1 a2 … am q am+1… |- a1 a2 … am am+1 q am+2

σ(q,am+1)=(p,L)//L说明右移 格局描述:a1 a2 … am q am+1… |- a1 a2 … am-1 q am

2DFA 接受的字符串集合:{w | q0w |-* wq , q∈F }

确定的双向有限自动机

不能不动

有输出的有限自动机

米兰机 摩尔机

定义: 输出字符与输入字符及状态有关 输出字符仅与状态有关

形式定义: (Q , T , R , σ , g , q0)

​ T 有限输入字母表 R 有限输出字母表 σ 转换函数 Q×T–>Q q0 初始状态

​ g 输出函数 Q×T–>R g 输出函数 Q–>R

形式语言与自动机总结相关推荐

  1. 计算理论 形式语言与自动机_下推式自动机(PDA)| 计算理论

    计算理论 形式语言与自动机 Pushdown Automaton (PDA) is a kind of Automaton which comes under the theory of Comput ...

  2. 【形式语言与自动机】图灵机

    [形式语言与自动机]图灵机 一.图灵机 在经过有限状态机的介绍之后,再来看一种功能更强大的机器. 图灵机基本结构 〉 一条分格的无限长的纸带,每格可容纳一个字符 〉 一个读写头,可以在纸带上移动(可以 ...

  3. 【形式语言与自动机】有限状态机

    [形式语言与自动机]有限状态机 一.有限状态机 其需求来自于对语言字符串识别的需要,给定字符串判定它是否属于语法G产生的 L(G), 判断是否属于这个集合. 句子识别 〉 给定一个字符串,判定是否属于 ...

  4. 形式语言与自动机 Part 3.有限自动机

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  5. 形式语言与自动机 Part.4 正则语言,2DFA,MealyMoore机

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  6. 形式语言与自动机 Part.5 上下文无关语言与下推自动机(PDA)

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  7. 形式语言与自动机 Part.6 图灵机

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  8. 形式语言与自动机 Part.1绪论, Part.2 语言与文法

    课程名:形式语言与自动机 作者:Lupinus_Linn 许可证:CC-BY-NC-SA 3.0 创作共用-署名-非商业性-相同方式共享 署名(英语:Attribution,BY):您(用户)可以复制 ...

  9. 【第二章 语言及文法】形式语言与自动机第二章个人总结复习笔记分享!(含文件、持续更新...)

    目录 一.总览 二.2.1 [语言的定义与运算] 2.2 [文法] 2.3 [文法的分类] 说明 网盘链接 参考教材 有用的话请点个赞吧,后续有时间会持续更新. 提示:本文内容全是我一人学习总结而来, ...

  10. 【第三章 有限自动机与右线性文法】形式语言与自动机第三章个人总结复习笔记分享!(含文件、持续更新...)

    目录 前言 一.总览 二.章节展示 3.1 [有限自动机] 3.2 [不确定的有限自动机] 3.3 [DFA和NFA的等效] 3.4 [有ε转换的不确定的有限自动机] 3.5 [正则集与正则式] 3. ...

最新文章

  1. python lambda_Python 匿名函数 lambda
  2. CentOS系统dig和nslookup的安装
  3. oracle 查询表空间路径
  4. android 手写签批_Android手写签批功能实现(适配Android6
  5. ADO中最重要的对象有三个:Connection、Recordset和Command
  6. 使用phpstudy中的apache进行虚拟主机的配置(自定义网站名进行访问,如http://wei.com)
  7. 工作六年后,对软件开发的一些新观点
  8. 活动目录管理之批量创建域用户
  9. ckeditor4.x操作之在页面中引入(一)
  10. 基于表面肌电信号的连续运动估计之前言(一)
  11. 安装SqlServer 2016 2017 时,提示需要安装oracle JRE7 更新 51(64位)或更高版本
  12. lintcode刷题——左叶子的和
  13. DELPHI 编程(一) __快速认识Delphi
  14. 计算机专业考信息安全研究生,我是计算机科学与技术专业的学生,想考信息安全的研究生,我们本专业涉及的知识主要是计算机的组成原理,...
  15. CSS3 Transition
  16. 科研难做,何不使用Nvivo?
  17. 论文那些事儿:《Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks》
  18. GraphicConverter Mac图片浏览和编辑器
  19. 我的世界服务器修改神兽几率,我的世界神奇宝贝mod神兽刷新率调整方法 神兽刷新率怎么增加...
  20. IBM WebSphere Portal宕机或性能低常见问题分析 及解决措施

热门文章

  1. 《我和PIC单片机:基于PIC18》——2.2 MPLAB IDE集成开发环境
  2. 基于FPGA的SDRAM控制器设计(4)
  3. 瑞晟蓝牙来电语音软件下载_语音导出app手机最新版-语音导出app安卓免费版下载v8.3-领航下载站...
  4. iOS 播放系统提示音和震动
  5. 机械电钢琴音源 Cinesamples Keyboard In Blue Kontakt
  6. 惯性导航算法matlab,基于MATLAB.Simulink的捷联惯性导航仿真
  7. 二维傅里叶变换频谱图的含义
  8. RFID技术如何管理图书馆
  9. ACdream - 1073 雷霆战机
  10. Eastfax使用技巧