第五章 正则语言的性质

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

正则语言运算的封闭性
例3:设表达式 r = 00 *11* 等价 FA Mr 如图所示,求与 ~r 等 价的 FA M~r 。
q1 1
0 0
q2 1
0,1 qt
01 q3
qp1 1
0 0
p2 1
0,1 p4
01 p3
正则语言运算的封闭性
定理5-3:
正则语言 RL 在“交” 运算下是封闭的。 证明:
正则语言的泵引理
说明:
1、泵引理给出关于 RL 性质的条件是必要条件:若 L 是 RL, 其一定满足泵引理给出的 4 个条件。因此,应用泵引理证明一 个语言不是 RL时,常用“反证法” 。
2、泵引理给出的 RL 性质的条件不是充分条件;满足泵引理 所给 4 个条件的语言不一定就是 RL。因此,泵引理只能用于 证明给定语言不是 RL;而不能证明给定语言是 RL。
由于 L 中存在句子 z 的结构不满足泵引理 RL 关于 “ 对于任意整数 i ≥ 0,u v i w ∈ RL L”的描述条件,与假设矛盾,故证得 L 不是 RL。
ຫໍສະໝຸດ Baidu
正则语言的泵引理 – 应用实例
例1:证明语言 L = { 0n | n 为素数 } 不是 RL。
证明:假设 L = { 0n | n 为素数 } 是 RL,其满足泵引理。设依赖于 L(M) 的正整数为 N,L 中字符串 z = 0N+p,其中,N + p 是素数。 根据泵引理,必存在 u, v, w, 使得 z = uvw 且 | v |≥1;这里,v 是 0 组成的非 空串,不妨设 v = 0k, (k≥1),w = 0j,u = 0N + p – k – j,从而有,
即,
δ( q0, x ) = f ∈ F ⇔ δ( q0, x ) = f ∈ Q - F x ∈ L(M) ⇔ x ∈ L(M’)
亦即, L(M’) = ∑* - L(M)。
正则语言运算的封闭性
设 L( r)= L(Mr),构造与 ~r 等价的 FA M~r 算法:
9 Mr 的始态作为 M~r 的始态; 9 Mr 与 M~r 的状态转移函数不变; 9 将 Mr 所有非终态 ( 包括陷阱态 qt ) 作为 M~r 的终态; 9 将 Mr 所有终态作为 M~r 的非终态。
p1 0 p2 1 p3
0
M2
q3
q4
1
状态 说明 状态列
始态 [ q1, q3 ]
输入字符列
0
[ q2, q4 ]
1
[ qt, qt ]
终态
[ q2, q4 ] [ q2, q3 ]
[ qt, qt ] [ qt, q4 ]
[ q2, q3 ] [ q2, qt ]
r = 01*∩( 01)* = 01
u vi w = 0N – k - j (0k)i 0j 1N , 取 i = 2 时,有 u v2 w = 0N – k - j (0k)2 0j 1N = 0N + k 1N 由于已知 k ≥ 1, 有 N < N + k, 于是有: 字符串 z = 0N + k 1N ∈ L,与泵引理第四条矛盾,故 L 不是 RL
u vi w = 0N + p – k – j (0k)i 0j = 0N + p + ( i -1 ) k, 取 i = N + p + 1, N + p + ( i – 1 ) k = N + p + ( N + p + 1 - 1) k
= ( N + p ) + ( N + p ) k = ( N + p )( 1 + k ) 由于已知 k≥1, 因此,( N + p )( 1 + k ) 不总是素数。
给定正则语言 L,正则文法 G 或 自动机 DFA 均根据语言 的结构特征,对 L 字母表的克林闭包 ∑* 中字符串进行 等价划分(分类 ),以求字符串的各个等价类 。
自动机极小化思路
例:L = { x000 | x ∈{0,1}* } ∪ { x001 | x ∈{ 0,1 }*} set (q0) = { x | x ∈ ∑*, x =ε 或者 x 以 1 结尾但不以 001 结尾 }; set (q1) = { x | x ∈ ∑*, x = 0 或者 x 以 10 结尾 } set (q2) = { x | x ∈ ∑*, x = 00 或者 x 以 100 结尾 } set (q3) = { x | x ∈ ∑*, x 以 000 结尾 } set (q4) = { x | x ∈ ∑*, x 以 001 结尾 }
正则语言的泵引理
RL 特征的形式化描述:
对任意整数 i ≥ 0, δ( q0, a1a2…ak( ak+1ak+2…aj )iaj+1aj+2…am ) = qm∈F
亦有:
a1a2…ak(ak+1ak+2…aj )iaj+1aj+2…am ∈ L(M)

u = a1a2…ak, v = ak+1ak+2…aj, w = aj+1aj+2…am;
1、z = uvw ; 2、| uv | ≤ N; 3、| v | ≥ 1; 4、对于任意整数 i ≥ 0,u v i w ∈ L。
正则语言的泵引理
泵引理应用:用反证法证明给定语言 L 不是 RL。
假设 L 是 RL,L 应满足泵引理。构造某句子 z = uvw ∈L,在给定正 整数 N 和某个 i 的条件下,可证得句子z = u v i w 不符合语言 L 中句 子的结构特征,即有句子 z = u v i w 不属于 RL L。
第五章 正则语言性质
正则语言的泵引理 正则语言运算的封闭性 自动机的极小化
24
自动机的极小化
问题的引出及 DFA 极小化思路 最简自动机求解的相关概念 Myhill – Nerode (米希尔-尼罗德)定理 自动机极小化求解算法与求解实例
自动机极小化思路
切入点:
给定正则语言 L,描述 L 的正则文法 RG 和有穷自动机 FA 的描述 本质相同:
对于任意整数 i ≥0,有: z = uviw ∈ L ;
由于 k < j ≤ N,u, v 应满足条件:
| u v | ≤ N, | v |≥1;
z 仍然是正则语言 RL 的句子。
正则语言的泵引理
定义5-1:泵引理
设 L 为 RL,存在仅依赖于语言 L 的某个正整数 N,对于 ∀z ∈ L, 如果 | z | ≥ N,则存在 u, v, w,满足以下条件:
由 De Morgan 定理:r1∩r2 = ~( ~ r1∪ ~ r2 ) 和 定理 5-1、5-2 可证
正则语言运算的封闭性
L( r1∩r2 ) 的 DFA M 构造分析:
给定 r1, r2 等价的 DFA M1 = < Q1, ∑, δ1, q01, F1 > ,DFA M2 = < Q2, ∑, δ2, q02, F2 >,构造 DFA M,使得 L( M ) = L( M1 )∩ L( M2 )。
第五章 正则语言的性质
习题:
题2、题6、题11;题12中任选一小题
第五章 正则语言的性质
正则语言的泵引理 正则语言运算的封闭性 自动机的极小化 正则语言的判定算法*
正则语言的泵引理
分析:
1、识别 RL 句子的 DFA 仅有有限个状态。 2、用 DFA M 接受无穷语言 L,L 中一定存在一个足够长的句 子,使得 DFA 在识别该句子时,需要重复地经过某些状态。
2、 M 的始态为 M1 和 M2 始态有序偶; M 的终态为 M1和 M2 的终态 有序偶;
3、如果对于输入字符 a,M1 和 M2 中某一状态没有转移状态,则 M 对应的有序偶转向陷阱态 qt; 4、若 M1,M2 中含有陷阱态 qt ,对应有序偶为 M 的陷阱态 qt。
例4:设 r1= 01* ,r2=(01)* ;求 r = r1∩r2 等价的 DFA M。
正则语言运算的封闭性
定理5-1:
正则语言 RL 对“并”、“乘积”和“闭包”运算封闭。
定理5-2:
正则语言 RL 对“补”运算封闭。
定理5-3:
正则语言 RL 对“交”运算封闭。
正则语言运算的封闭性
定理5-1:正则语言对“并”、“乘积”和“闭包”运算封闭。
定义4-1:设字母表为 ∑ ,正则表达式递归定义如下:
δ( q0, a1a2…ak ) = qk; δ( qk, ak+1 ak+2…aj ) = qj = qk; δ( qj, aj+1aj+2…am ) = qm 对于任意整数 i ≥ 0,可能有
δ( qk, (ak+1ak+2…aj )i ) =δ( q k, (ak+1ak+2…aj )i-1 ) ….. =δ( qk, (ak+1ak+2…aj )) = qk = qj 泵操作
DFA处理句子经历 的状态序列
DFA处理句子经历 的重复状态序列
正则语言的泵引理
RL 特征的形式化描述:
1、假设 L 是 RL,DFA M = < Q, ∑, δ, q0, F >, 满足 L( M ) = L, M 具有有限个状态,即,| Q | = N,且 Q 中状态均为可达状态。
2、取 L 中任意句子 z = a1a2…am ( m ≥ N ),并有 qm ∈ F。 3、由于 m ≥ N ,读字符的状态序列 q0, q1, …, qN 中至少有两个状态相 同。假设状态 qk = qj, 对于 k < j ≤ N,有,
正则语言运算的封闭性
对于 r = r1 + r2,构造相应ε-NFA 对于 r = r1r2,构造相应ε-NFA 对于 r = r1*,构造相应ε-NFA
正则语言运算的封闭性
定理5-2:
正则语言 RL 在“补” 运算下是封闭的。
证明:
设 L 是 ∑ 上的 RL,则存在 DFA M = < Q, ∑, δ, q0, F > ,满足 L(M)= L。取 DFA M’ = < Q,∑,δ,q0,Q - F > , 显然,对于任意字符串 x ∈ ∑*,有
解:
1、与 r1 和 r2 等价的 FA M1 和 M2 :
0
M1
q1
q2 1
2、根据 NFA 求 DFA M 算法: [ q1, q3 ] 为始态; [ q2, q3 ] 为终态。
2、 M 的状态表。 3、 令 DFA M 状态:
p1= [ q1, q3 ] -始态, p2 = [ q2, q4 ] p3 = [ q2, q3 ] -终态, 与 r = 01*∩( 01)* 等价的 DFA M:
5 个集合两两互不相交;5 个集合的并构成 M 识别输入字母表 { 0,1 } 的 克林闭包;5 个集合是关于 { 0, 1 }* 的一个等价划分。
自动机极小化思路
可知:
正则语言运算的封闭性
设 L( M1 ) = L( r1 )、L( M2 ) = L( r2 ) ,构造接受 L( r1∩r2 ) 的 DFA M = < Q, ∑, δ, q, F > 算法:
1、取 ∑ = ∑1 ∩ ∑2 ;Q = Q1×Q2;对 a ∈∑,q i ∈ Q1,q j ∈ Q2, 定义: δ ( [ q i, q j ] , a ) = [ δ1 ( q i, a ), δ2 ( q j, a ) ];
所以,当 i = N + p + 1时,有字符串 z = uvN + p + 1w = 0( N + p )( 1 + k ) ∈ L,其 与泵引理第四条矛盾,所以,L 不是 RL。
正则语言的泵引理 – 应用实例
例2:证明语言 L = { 0n1n | n≥1 } 不是 RL。
证明:假设 L = { 0n1n | n≥1 } 是 RL,其应满足泵引理。设依赖于 L( M ) 的 正整数为 N ,L 中有字符串为 z = 0N1N。 根据泵引理,必存在 u, v, w, 构成句子 z = uvw,其中 | uv | ≤ N,| v |≥1; 这里,v 只能是由 0 组成的非空串。 不失一般性地可设, v = 0k,(k ≥ 1),w = 0j 1N, u = 0N – k - j,从而有,
第五章 正则语言的性质
正则语言的泵引理 正则语言运算的封闭性 自动机的极小化
正则语言运算的封闭性
定义5-2:
如果对某类语言进行某种运算后,所得的结果仍为该类语言的 句子,则称该类语言对此运算是封闭的,或称该类语言对运算 具有封闭性。
正则语言运算的封闭性
定义5-3:
称某语言类对某运算满足有效封闭性,是指给定该类语言中任 意两个语言 L1、L2 的形式化表示,对二语言进行运算后所得 语言仍然具有形式化表示算法。
相关文档
最新文档