版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
12023/7/22CollegeofComputerScience&Technology,BUPT正则表达式与有限自动机的关系右线性语言与有限自动机的关系右线性语言的性质(part1)22023/7/22CollegeofComputerScience&Technology,BUPT3.7正则表达式与有限自动机的关系结论:有限自动机、右(左)线性文法、正则表达式都定义了同一种语言--正则语言.
证明策略-NFANFADFARERE(RegularExpression)---正则表达式32023/7/22CollegeofComputerScience&Technology,BUPT从DFA构造等价的正则表达式(状态消去法)思路:
(1)扩展自动机的概念,允许正则表达式作为转移弧的标记。这样,就有可能在消去某一中间状态时,保证自动机能够接受的字符串集合保持不变。
(2)在消去某一中间状态时,与其相关的转移弧也将同时消去,所造成的影响将通过修改从每一个前趋状态到每一个后继状态的转移弧标记来弥补。
以下分别介绍中间状态的消去与正则表达式构造过程。42023/7/22CollegeofComputerScience&Technology,BUPT从DFA构造等价的正则表达式(中间状态的消去)xy
r1r2xz
r1y
r2代之以:xy
r1+r2xyr2r1代之以:xy
r1*xzy
r1代之以:52023/7/22CollegeofComputerScience&Technology,BUPT从DFA构造等价的正则表达式(中间状态的消去)q1qkp1pmP1PmQkQ1R11R1mRkmRk1R11+Q1S*P1R1m+Q1S*PmRkm+QkS*PmRk1+QkS*P1q1p1qkpm消去s62023/7/22CollegeofComputerScience&Technology,BUPT从DFA构造等价的正则表达式(状态消去法)步骤:
(1)对每一终态q,依次消去除q和初态q0之外的其它状态;(2)若qq0,最终可得到一般形式如下左图的状态自动机,
该自动机对应的正则表达式可表示为(R+SU*T)*SU*.(3)若q=q0,最终可得到如下右图的自动机,它对应的正则表达式可以表示为R*.(4)最终的正则表达式为每一终态对应的正则表达式之和(并).72023/7/22CollegeofComputerScience&Technology,BUPT状态消去法举例对于终态C对于终态D等价的正则表达式(0+1)*1(0+1)+(0+1)*1(0+1)(0+1)82023/7/22CollegeofComputerScience&Technology,BUPT状态消去法举例01342567
a
b
aa
b
b
a
b012567a+ba+baabb0257(a+b)*(a+b)*aa+bb07(a+b)*(aa+bb)(a+b)*92023/7/22CollegeofComputerScience&Technology,BUPT定理:
L是正则表达式R表示的语言,则存在一个-NFA
E,满足L(E)=L(R)=L.
证明:构造性证明.可以通过结构归纳法证明从R可以构造出与其等价的,满足如下条件的-NFA:
(1)恰好一个终态;
(2)没有弧进入初态;(3)没有弧离开终态;
从正则表达式构造等价的-NFA102023/7/22CollegeofComputerScience&Technology,BUPT基础:从正则表达式构造等价的-NFA(归纳构造过程)1对于,构造为3对于a
,构造为a2对于
,构造为112023/7/22CollegeofComputerScience&Technology,BUPT归纳:从正则表达式构造等价的-NFA(归纳构造过程)1对于R+S,构造为122023/7/22CollegeofComputerScience&Technology,BUPT归纳:从正则表达式构造等价的-NFA(归纳构造过程)2对于RS
,构造为3对于R*
,构造为132023/7/22CollegeofComputerScience&Technology,BUPT举例:
设正则表达式1*0(0+1)*,构造等价的-NFA.从正则表达式构造等价的-NFA0+11*142023/7/22CollegeofComputerScience&Technology,BUPT从正则表达式构造等价的-NFA(0+1)*1*0(0+1)*152023/7/22CollegeofComputerScience&Technology,BUPT3.8右线性语言与有限自动机
至此,我们已学到正则集有三种定义方式,且这三种方式等价:正则集是含有{ε},φ,{a}以及在并、连接和*运算下封闭的语言由正规表达式定义的集合是正则集。由右线性文法生成的语言是正则集。此外,还有第四种方式: 将正则集作为由有限自动机定义的集合。即正则集(右线性语言)<=>有限自动机162023/7/22CollegeofComputerScience&Technology,BUPT右线性文法=>有限自动机定理3.8.1:由任意右线性文法G定义的语言必然能被一个NFAM所接受。即L(G)=L(M)证明思路(构造证明): 设右线性文法G=(N,T,P,S),构造一个与G等价的有限自动机NFA
M=(Q,T,δ,q0,F),其中:Q=NU{H},H为一个新增加的状态,HN,q0=S{H,S}当S->ε属于P。{H}否则
δ的定义为:当AaBP,则Bδ(A,a)当AaP,则Hδ(A,a)对于任意输入,δ(H,a)=φ。F=172023/7/22CollegeofComputerScience&Technology,BUPT右线性文法=>有限自动机(例)例:设有右线性文法G=({S,B},{a,b},P,S),其中 P:SaBBaB|bS|a
试构造与G等价的有限自动机M。解:设NFAM=(Q,T,,q0,F)Q={S,B,H}T={a,b}q0=SF={H}转换函数:对于产生式SaB,有(S,a)={B}对于产生式BaB,有(B,a)={B}对于产生式BbS,有(B,b)={S}对于产生式Ba,有(B,a)={H}SBH开始aaab182023/7/22CollegeofComputerScience&Technology,BUPT右线性文法=>有限自动机(续)求证
G与NFAM两者定义了同一语言。
证明:
先证(1)文法G产生的语言L(G)能够被NFAM所接收;再证(2)NFAM接受的语言L(M)可由文法G产生。192023/7/22CollegeofComputerScience&Technology,BUPT右线性文法=>有限自动机(续)证明方法:通过两者定义的语言中任意一个字符串来说明。(1)设ω=a1a2…an∈L(G),且n1则有S=>a1A1=>a1a2A2=>… =>a1a2…an-1An-1=>a1a2…an-1an则由δ的定义,有A1
δ(S,a1),A2
δ(A1,a2),…,An-1
δ(An-2,an-1),Hδ(An-1,an),且Hδ(S,)因为HF,所以被NFAM所接受。又若ε∈L(G),则表明Sε∈P,由NFAM的定义,有S∈F,即ε也被NFAM接受。所以,由文法G派生的任意字符串
L(M)。
#202023/7/22CollegeofComputerScience&Technology,BUPT右线性文法=>有限自动机(续)(2)再证L(M)可由G产生设ω=a1a2…an
被NFAM接受,即
L(M),则必然存在状态序列S,A1,A2,…An-1,H对M有转换函数为 A1
δ(S,a1),A2
δ(A1,a2),…, An-1
δ(An-2,an-1),Hδ(An-1,an)则可规定G中含有产生式S
a1A1,A1
a2A2,……,An-1
an于是存在推导S=>a1A1=>a1a2A2=>…=>a1a2…an-1An-1=>a1a2…an-1an即a1a2…an
是文法G的一个句子。也即
L(G)。#212023/7/22CollegeofComputerScience&Technology,BUPT课堂练习:
练习:设线性文法G=({S,A,B},{a,b},P,S)P: S
aA|baB|a AaA|aS|bB BbB|b|a 构造相应的NFAM。222023/7/22CollegeofComputerScience&Technology,BUPT有限自动机=>右线性文法定理3.8.2:设有限自动机M接受的语言为L(M)则存在右线性文法G,它产生的语言L(G)=L(M)。证明思路:构造一个右线性文法G,使它接受由NFAM定义的语言。构造方法: 设M=(Q,T,δ,q0,F),构造一个右线性文法G=(N,T,P,S),其中N=Q,S=q0P定义为:若δ(A,a)=B且BF,则AaB在P中若δ(A,a)=B且B∈F,则Aa和A
aB在P中(注:书上未明确)
L(M)<=>L(G)的证明见书P91(自学)。
232023/7/22CollegeofComputerScience&Technology,BUPT有限自动机=>右线性文法(例)例:设有DFAM=({q0,q1,q2,q3},{a,b},,q0,{q3})
其中转换函数如图所示,
试构造与之等价的右线性文法G。解:构造右线性文法G=(N,T,P,S)N={q0,q1,q2,q3}T={a,b}S=q0产生式集合P(q0,a)=q1,q0aq1(q0,b)=q2,q0bq2(q1,a)=q3,q3F,q1a|aq3(q1,b)=q1,q1bq1(q2,a)=q2,q2aq2(q2,b)=q3,q3F,q2b|bq3q0q1q2q3aaabbb开始构造的文法G(化简q3):G=({q0,q1,q2},{a,b},P,q0)P:q0aq0|bq2q1a|bq1q2aq2|b242023/7/22CollegeofComputerScience&Technology,BUPT3.9右线性语言的性质主要内容:DFA的极小化泵浦引理右线性语言的封闭性252023/7/22CollegeofComputerScience&Technology,BUPT确定有限自动机DFA的化简(极小化) 对DFAM的极小化是找出一个状态数比M少的DFAM1,使满足L(M)=L(M1)1.等价和可区分的概念 设DFAM=(Q,T,δ,q0,F) 对不同的状态q1,q2∈Q和每个ω∈T*,如果有(q1,ω)┣*(q,ε)必有(q2,ω)┣*(q,ε)且q∈F,则称q1与q2状态等价.记为q1≡q2否则,称q1,q2可区分。262023/7/22CollegeofComputerScience&Technology,BUPT确定有限自动机DFA的化简
2.不可达状态
如果不存在任何ω∈T*,使(q0,ω)┣*(q,ε),
则称状态q∈Q为不可达状态。3.最小化
若DFAM不存在互为等价状态及不可达状态,则称DFAM是最小化的。272023/7/22CollegeofComputerScience&Technology,BUPT最小化算法
一个DFAM的最小化,是把M的状态集Q构成一个划分。即:任何两个子集的状态都是可区分的;同一子集中的任何两个状态都是等价的。之后,每个子集用一个状态代表,并取一个状态名。构成划分的步骤:构成基本划分∏={∏’,∏”},(∏’为终态集,∏”为非终态集)细分∏={∏1,∏2,…,∏n},∏i∈∏∏i={q1,q2,…,qm} 当输入任意字符a时,若∏i中的状态经标a的边可到达的状态集的元素分属于两个不同的子集中,则将∏i细分为两个子集.重复步骤(2),直至不可再细分,得到M1.若M1中有不可达状态,将其删除,M1便是最小化的.282023/7/22CollegeofComputerScience&Technology,BUPT例(1)q5,q6为不可达状态,删除之.(2)Q={q0,q1,q2,q3,q4},∏={{q2,q4},{q0,q1,q3}}构成基本划分∏={∏’,∏”}
(a)
对于∏’={q2,q4},对字符a,有δ(q2,a)=q3,δ(q4,a)=q1q1,q3∈同一子集.对字符b,有δ(q2,b)=q4,δ(q4,a)=q2q4,q2∈同一子集.∴∏’={q2,q4}不能再细分.可用q2表示∏’状态.(b)
对于∏”={q0,q1,q3}对a,δ(q0,a)=q1,δ(q1,a)=q1,δ(q3,a)=q3q1,q3∈同一子集对b,δ(q0,b)=q3,δ(q1,b)=q2,δ(q3,b)=q4 q3,q2,q4
同一子集.∴将∏’’再分解.∏’’={{q0},{q1,q3}},{q1,q3}不可再细分,用q1表示∴Q={{q0},{q1},{q2}}292023/7/22CollegeofComputerScience&Technology,BUPT计算状态集划分的算法—填表法填表算法(table-fillingalgorithm)基于如下递归地标记可区别的状态偶对的过程:基础如果p为终态,而q为非终态,则p和q标记为可区别的;归纳设p和q已标记为可区别的,如果状态r和s
通过某个输入符号a可分别转移到p和q,即
(r,a)=p,(s,a)=q,则r和s也标记为可区别的;这是因为:若p和q可为字符串w
区别,则r和s可为字符串aw
区别.(∵'(r,aw)='(p,w),'(s,aw)='(q,w))302023/7/22CollegeofComputerScience&Technology,BUPT计算状态集划分的算法—填表法填表算法举例xxxxxxxxxxxxx(1)区别所有终态和非终态(2)区别(1,3),(1,4),(2,3),(2,4),(5,6),(5,7)xxxxx(3)区别(3,4)x(4)结束.划分结果:{1,2},{3},{4},{5},{6,7}312023/7/22CollegeofComputerScience&Technology,BUPT通过合并等价的状态进行DFA
的优化步骤
1.删除所有从开始状态不可到达的状态及与其相关的边,
设所得到的DFA
为A=(Q,
T,,q0,F);2.使用填表算法找出所有等价的状态偶对;3.根据2的结果计算当前状态集合的划分块,每一划分块中的状态相互之间等价,而不同划分块中的状态之间都是可区别的.包含状态q的划分块用[q]表示.
4.构造与A等价的DFA
B=(QB,
T,B,[q0],FB
),其中
QB={[q]|qQ},FB={[q]|qF},B([q],a)=[
(q,a)]322023/7/22CollegeofComputerScience&Technology,BUPT通过合并等价的状态进行DFA
的优化举例划分结果:{1,2},{3},{4},
{5},{6,7}等价的状态偶对为:
(1,2),(6,7)新的状态集合:
[1],[3],[4],[5],[6]332023/7/22CollegeofComputerScience&Technology,BUPT最小化的DFA课堂练习最小化下列DFA:参考结果342023/7/22CollegeofComputerScience&Technology,BUPT针对正则语言的Pumping引理正则语言应满足的一个必要条件用于判定给定的语言不是正则集。物理意义:当给定一个正则集和该集合上一个足够长的字符串时,在该字符串中能找到一个非空的子串,并使子串重复,从而组成新的字符串。该新串必在同一个正则集内。定理:设L是正则集,存在常数k,对字符串ω∈L且|ω|≥k,则ω可写成ω1ω0ω2,其中|ω1ω0|≤k,|ω0|>0,对所有的i≥0有ω1ω0iω2∈L。证明
设L是DFAD=(Q,
T,,q0,F)的语言,取k=|Q|
即可.352023/7/22CollegeofComputerScience&Technology,BUPTDFA
的“Pumping”特性设DFAD=(Q,
T,,q0,F),|Q|=n.对于任一长度不小于n的字符串w=a1a2…am,其中mn,akT(1km),qQ,考察如下状态序列
p0=qp1='(q,a1)p2='(q,a1a2)…pn='(q,a1a2…an)pn+1='(q,a1a2…an+1)…pm='(q,a1a2…am)由pigeonhole原理,p0,p1,p2,…,pn中至少有两个状态是重复的,即存在i,j,0ijn,pi=pj.
“pumping”特性:任一长度不小于状态数目
的字符串所标记的路径上,
必然出现重复的状态.362023/7/22CollegeofComputerScience&Technology,BUPTDFA
的“Pumping”特性
“pumping”特性:如前,设DFAD=(Q,
T,,q0,F),|Q|=n,w=a1a2…am(mn),则存在i,j,0ijn,pi=pj
,
其中pk='(p0,a1a2…ak),0km.若假定p0=
q0,pmF,即wL(D).
令w=xyz,其中:
x=a1a2…ai
,y=ai+1ai+2…aj
,z=aj+1aj+2…am
则对任何k0,都有xykzL(D).(参考下图)p0pipmx=a1a2…aiy=ai+1ai+2…ajz=aj+1aj+2…am372023/7/22CollegeofComputerScience&Technology,BUPTP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年《税务稽查指南》知识考试题库及答案解析
- 广西壮族自治区特种设备检验研究院2025年下半年公开招聘工作人员备考题库及完整答案详解1套
- 玉环市国有企业招聘笔试真题2024
- 重庆永川区事业单位定向招聘考试真题2024
- 2025年白朗辅警招聘真题及答案
- “梦工场”招商银行大连分行2026寒假实习生招聘备考核心题库及答案解析
- 2026年石狮市第六实验小学招聘编外合同教师笔试重点试题及答案解析
- 2025云南昆明市五华区人民法院招聘第五批合同制司法辅助人员7人考试核心题库及答案解析
- 2025广西北海市社会保险经办中心招募就业见习生考试核心题库及答案解析
- 2025 九年级语文下册诗歌炼字炼句赏析课件
- 棉花合伙种植合同协议书
- 通信基站施工进度施工工期保证措施
- 钻孔桩安全技术
- 2025年《社区警务工作规范(试行)》复习测试卷附答案
- 2025秋初中数学九年级上册(沪科版 安徽专用)上课课件 21.4 第3课时 用二次函数解决抛物线形运动问题
- 2021年12月大学英语四级考试真题及答案(第1套)
- JG/T 387-2012环氧涂层预应力钢绞线
- 注塑模具备用件管理制度
- 2024年南昌大学第二附属医院招聘笔试真题
- 工业机械之光
- 清华大学《工程伦理》网课习题及期末考试答案
评论
0/150
提交评论