(09)第二章 第二讲 DFA与NFA的等价性
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
a a,b b
q0
b
q
DFA MD的状态转换图: 二、实例
构造DFA MD如下: QD={[q0],[q],[q0,q],ø},q0D=[q0] ,FD={[q],[q0,q]},
δD的定义如下: 由于 δ(q0,a)={q0,q},所以有:δD([q0],a)=[q0,q]; 由于 δ(q0,b)={q}, 所以有:δD([q0],b)=[q]; 由于 δ(q,a)=ø, 所以有:δD([q],a)=ø; 由于 δ(q,b)={q0,q}, 所以有:δD([q],b)=[q0,q]; 由于 δ({q0,q},a)= δ(q0,a)∪δ(q,a)={q0,q}∪ø, 所 以有:δD([q0,q],a)=[q0,q]; 由于 δ({q0,q},b)= δ(q0,b)∪ δ(q,b)={q}∪{q0,q}, 所以有:δD([q0,q],b)=[q0,q];
L(MD)=L(MN) 。
一、定理及其证明
2、定理的证明
证明思路:设 NFA MN=(Q,T,δ,q0 ,F), 构造一个 DFA MD =(QD,T,δD,q0D ,FD)与NFA MN等价。 MN与 MD的根本区别是:MN在任何时刻下都 可能有多个处于活动的状态,这些处于活动的 状态是状态集合Q的子集。 设 K=|Q|,则Q的不同的子集就有2K个。所构 造的MD应当能够记住MN任何时刻可能出现的所 有状态子集。因此,MD的状态集合QD应满足: |QD|=2K。
0
b
[q0]
二、实例 用数学归纳法不难证明MN与MD的等价性。即
构造用数学归纳法讨论 DFA MD如下: (详见P.64) δD(q (q |=0, 0D,w)=[q1,q 2,…,q n]和δ 0,w)={q 1,q 2,…,q n} 当:|w QD={[q ],[q],[q ,q],ø } , q =[q ] , F ={[q],[q ,q]}, 0 0 0D 0 D 0 |w|=k, |w|=k+1时MN与MD的等价性。 δD的定义如下: 由于 δ(q0,a)={q0,q},所以有:δD([q0],a)=[q0,q]; 由于 δ(q0,b)={q}, 所以有:δD([q0],b)=[q]; 由于 δ(q,a)=ø, 所以有:δD([q],a)=ø; 由于 δ(q,b)={q0,q}, 所以有:δD([q],b)=[q0,q]; 由于 δ({q0,q},a)= δ(q0,a)∪δ(q,a)={q0,q}∪ø, 所 以有:δD([q0,q],a)=[q0,q]; 由于 δ({q0,q},b)= δ(q0,b)∪ δ(q,b)={q}∪{q0,q}, 所以有:δD([q0,q],b)=[q0,q];
M的转换函数δ
输入 状态
a
{q0,q}
b
{q} {q0,q}
q0 q
ø
a
a,b
b
q0
b
q
Baidu Nhomakorabea、实例
构造DFA MD如下: QD={[q0],[q],[q0,q],ø},q0D=[q0] ,FD={[q],[q0,q]},
δD的定义如下: 由于 δ(q0,a)={q0,q},所以有:δD([q0],a)=[q0,q]; 由于 δ(q0,b)={q}, 所以有:δD([q0],b)=[q]; 由于 δ(q,a)=ø, 所以有:δD([q],a)=ø; 由于 δ(q,b)={q0,q}, 所以有:δD([q],b)=[q0,q];
一、定理及其证明
2、定理的证明
DFA的构造方法: ① QD=2Q, QD中元素的形式为:
② q0D=[q0], ③ FD含于或等于QD,且FD的每个状态[q1,q2,......,qj] 中总存在一个qi (1≤i≤j)∈F(F为MN的终止状态集); ④ δD([q1,q2,......,qn],a)= [p1,p2,......,pm] 注意:构造过程中 字母表T不改变
a q0
输入 状态(共有23个)
a
q1
δD定义如下: a
[q1] [q1,q2] ø [q1,q2] [q1] [q1,q2] [q1,q2]
b
a
b
ø ø [q1] ø [q1] [q1] [q1]
q2
[q0] [q1] [q2] [q0,q1] [q0,q2] [q1,q2] [q0,q1,q2]
第二章 有限自动机和右线性文法 第二讲 DFA与NFA的等价性
一、定理及其证明
1、定理 如果两台机器所识别的语言是相同的, 则称这两台机器是等价的。 下面的定理说明了DFA与NFA是等价的。
定理 4 设L(MN)是由不确定的有限自动机 MN接受的语言,则一定存在一确定的有 限自动机MD接受语言L(MD),满足:
DFA MD的状态转换图: 二、实例
构造DFA MD如下: [q] QD={[q0],[q],[q0,q],ø }, b q0D=[q0] ,FD={[q],[q0,q]},
δD的定义如下: a [q ,q] b,a 由于 δ(q0,a)={q0,q},所以有:δD([q0],a)=[q0,q]; 由于 δ(q0,b)={q}, 所以有:δD([q0],b)=[q]; 由于 δ(q,a)=ø, 所以有:δD([q],a)=ø; 由于 δ(q,b)={q0,q}, 所以有:δD([q],b)=[q0,q]; 由于 δ({q0,q},a)= δ(q0,a)∪δ(q,a)={q0,q}∪ø, 所 以有:δD([q0,q],a)=[q0,q]; 由于 δ({q0,q},b)= δ(q0,b)∪ δ(q,b)={q}∪{q0,q}, 所以有:δD([q0,q],b)=[q0,q];
二、实例
构造DFA MD=(QD,T,δD,q0D , FD)如下: QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø } q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
[q0]
输入 状态(共有23个)
b
b
ø ø [q1] ø [q1] [q1] [q1]
a
[q0,q1]
END
RETURN
[q0,q2]
[q0,q1,q2] a
a,b
b
δD定义如下:
[q0] [q1] [q2] [q0,q1] [q0,q2] [q1,q2] [q0,q1,q2]
a
a [q1] b
[q1,q2]
a
a
[q1] [q1,q2] ø [q2] [q1,q2] [q1] [q1,q2] [q1,q2]
b
b
ø ø [q1] ø [q1] [q1] [q1]
输入 状态(共有23个)
[q0,q2]
[q0,q1,q2] a
a,b
b
δD定义如下:
[q0] [q1] [q2] [q0,q1] [q0,q2] [q1,q2] [q0,q1,q2]
a
a [q1] b
[q1,q2]
a
a
[q1] [q1,q2] ø [q2] [q1,q2] [q1] [q1,q2] [q1,q2]
q2
QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø }
q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
二、实例
a
q1 a q0 b a
构造DFA MD=(QD,T,δD,q0D , FD)如下:
q2
QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø }
q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
二、实例
构造DFA MD=(QD,T,δD,q0D , FD)如下: QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø } q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
a
[q0,q1]
二、实例
构造DFA MD=(QD,T,δD,q0D , FD)如下: QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø } q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
[q0]
[q1,q2,......,qn],{q1,q2,......,qn}含于或等于Q;
当且仅当δ({q1,q2,......,qn},a)= {p1,p2,......,pm}
二、实例
例1:设 NFA M=(Q,T,δ,q0 ,F),其中:
Q={q0,q},T={a,b},F={q},δ如下表所示:
二、实例
例2:设 NFA M=({q0,q1,q2},{a,b},δ,q0 ,{q2}), 其 中δ定义如下: a
δ(q0,a)={q1}, δ(q0,b)=ø , δ(q1,a)={q1,q2}, δ(q0,b)=ø, q δ(q2,a)=ø , δ(q2,b)={q1};
a q0 b
1
a
构造DFA MD=(QD,T,δD,q0D , FD)如下:
q0
b
q
DFA MD的状态转换图: 二、实例
构造DFA MD如下: QD={[q0],[q],[q0,q],ø},q0D=[q0] ,FD={[q],[q0,q]},
δD的定义如下: 由于 δ(q0,a)={q0,q},所以有:δD([q0],a)=[q0,q]; 由于 δ(q0,b)={q}, 所以有:δD([q0],b)=[q]; 由于 δ(q,a)=ø, 所以有:δD([q],a)=ø; 由于 δ(q,b)={q0,q}, 所以有:δD([q],b)=[q0,q]; 由于 δ({q0,q},a)= δ(q0,a)∪δ(q,a)={q0,q}∪ø, 所 以有:δD([q0,q],a)=[q0,q]; 由于 δ({q0,q},b)= δ(q0,b)∪ δ(q,b)={q}∪{q0,q}, 所以有:δD([q0,q],b)=[q0,q];
L(MD)=L(MN) 。
一、定理及其证明
2、定理的证明
证明思路:设 NFA MN=(Q,T,δ,q0 ,F), 构造一个 DFA MD =(QD,T,δD,q0D ,FD)与NFA MN等价。 MN与 MD的根本区别是:MN在任何时刻下都 可能有多个处于活动的状态,这些处于活动的 状态是状态集合Q的子集。 设 K=|Q|,则Q的不同的子集就有2K个。所构 造的MD应当能够记住MN任何时刻可能出现的所 有状态子集。因此,MD的状态集合QD应满足: |QD|=2K。
0
b
[q0]
二、实例 用数学归纳法不难证明MN与MD的等价性。即
构造用数学归纳法讨论 DFA MD如下: (详见P.64) δD(q (q |=0, 0D,w)=[q1,q 2,…,q n]和δ 0,w)={q 1,q 2,…,q n} 当:|w QD={[q ],[q],[q ,q],ø } , q =[q ] , F ={[q],[q ,q]}, 0 0 0D 0 D 0 |w|=k, |w|=k+1时MN与MD的等价性。 δD的定义如下: 由于 δ(q0,a)={q0,q},所以有:δD([q0],a)=[q0,q]; 由于 δ(q0,b)={q}, 所以有:δD([q0],b)=[q]; 由于 δ(q,a)=ø, 所以有:δD([q],a)=ø; 由于 δ(q,b)={q0,q}, 所以有:δD([q],b)=[q0,q]; 由于 δ({q0,q},a)= δ(q0,a)∪δ(q,a)={q0,q}∪ø, 所 以有:δD([q0,q],a)=[q0,q]; 由于 δ({q0,q},b)= δ(q0,b)∪ δ(q,b)={q}∪{q0,q}, 所以有:δD([q0,q],b)=[q0,q];
M的转换函数δ
输入 状态
a
{q0,q}
b
{q} {q0,q}
q0 q
ø
a
a,b
b
q0
b
q
Baidu Nhomakorabea、实例
构造DFA MD如下: QD={[q0],[q],[q0,q],ø},q0D=[q0] ,FD={[q],[q0,q]},
δD的定义如下: 由于 δ(q0,a)={q0,q},所以有:δD([q0],a)=[q0,q]; 由于 δ(q0,b)={q}, 所以有:δD([q0],b)=[q]; 由于 δ(q,a)=ø, 所以有:δD([q],a)=ø; 由于 δ(q,b)={q0,q}, 所以有:δD([q],b)=[q0,q];
一、定理及其证明
2、定理的证明
DFA的构造方法: ① QD=2Q, QD中元素的形式为:
② q0D=[q0], ③ FD含于或等于QD,且FD的每个状态[q1,q2,......,qj] 中总存在一个qi (1≤i≤j)∈F(F为MN的终止状态集); ④ δD([q1,q2,......,qn],a)= [p1,p2,......,pm] 注意:构造过程中 字母表T不改变
a q0
输入 状态(共有23个)
a
q1
δD定义如下: a
[q1] [q1,q2] ø [q1,q2] [q1] [q1,q2] [q1,q2]
b
a
b
ø ø [q1] ø [q1] [q1] [q1]
q2
[q0] [q1] [q2] [q0,q1] [q0,q2] [q1,q2] [q0,q1,q2]
第二章 有限自动机和右线性文法 第二讲 DFA与NFA的等价性
一、定理及其证明
1、定理 如果两台机器所识别的语言是相同的, 则称这两台机器是等价的。 下面的定理说明了DFA与NFA是等价的。
定理 4 设L(MN)是由不确定的有限自动机 MN接受的语言,则一定存在一确定的有 限自动机MD接受语言L(MD),满足:
DFA MD的状态转换图: 二、实例
构造DFA MD如下: [q] QD={[q0],[q],[q0,q],ø }, b q0D=[q0] ,FD={[q],[q0,q]},
δD的定义如下: a [q ,q] b,a 由于 δ(q0,a)={q0,q},所以有:δD([q0],a)=[q0,q]; 由于 δ(q0,b)={q}, 所以有:δD([q0],b)=[q]; 由于 δ(q,a)=ø, 所以有:δD([q],a)=ø; 由于 δ(q,b)={q0,q}, 所以有:δD([q],b)=[q0,q]; 由于 δ({q0,q},a)= δ(q0,a)∪δ(q,a)={q0,q}∪ø, 所 以有:δD([q0,q],a)=[q0,q]; 由于 δ({q0,q},b)= δ(q0,b)∪ δ(q,b)={q}∪{q0,q}, 所以有:δD([q0,q],b)=[q0,q];
二、实例
构造DFA MD=(QD,T,δD,q0D , FD)如下: QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø } q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
[q0]
输入 状态(共有23个)
b
b
ø ø [q1] ø [q1] [q1] [q1]
a
[q0,q1]
END
RETURN
[q0,q2]
[q0,q1,q2] a
a,b
b
δD定义如下:
[q0] [q1] [q2] [q0,q1] [q0,q2] [q1,q2] [q0,q1,q2]
a
a [q1] b
[q1,q2]
a
a
[q1] [q1,q2] ø [q2] [q1,q2] [q1] [q1,q2] [q1,q2]
b
b
ø ø [q1] ø [q1] [q1] [q1]
输入 状态(共有23个)
[q0,q2]
[q0,q1,q2] a
a,b
b
δD定义如下:
[q0] [q1] [q2] [q0,q1] [q0,q2] [q1,q2] [q0,q1,q2]
a
a [q1] b
[q1,q2]
a
a
[q1] [q1,q2] ø [q2] [q1,q2] [q1] [q1,q2] [q1,q2]
q2
QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø }
q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
二、实例
a
q1 a q0 b a
构造DFA MD=(QD,T,δD,q0D , FD)如下:
q2
QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø }
q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
二、实例
构造DFA MD=(QD,T,δD,q0D , FD)如下: QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø } q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
a
[q0,q1]
二、实例
构造DFA MD=(QD,T,δD,q0D , FD)如下: QD={[q0],[q1],[q2],[q0,q1],[q0,q2],[q1,q2],[q0,q1,q2],ø } q0D=[q0] FD={[q2],[q0,q2],[q1,q2],[q0,q1,q2]}
[q0]
[q1,q2,......,qn],{q1,q2,......,qn}含于或等于Q;
当且仅当δ({q1,q2,......,qn},a)= {p1,p2,......,pm}
二、实例
例1:设 NFA M=(Q,T,δ,q0 ,F),其中:
Q={q0,q},T={a,b},F={q},δ如下表所示:
二、实例
例2:设 NFA M=({q0,q1,q2},{a,b},δ,q0 ,{q2}), 其 中δ定义如下: a
δ(q0,a)={q1}, δ(q0,b)=ø , δ(q1,a)={q1,q2}, δ(q0,b)=ø, q δ(q2,a)=ø , δ(q2,b)={q1};
a q0 b
1
a
构造DFA MD=(QD,T,δD,q0D , FD)如下: