形式语言自动机理论基础

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

2.2.3 NFA确定化
I
I ∑1
I∑2

I ∑n
ε-closure(S0)
I11 I12
I11
I12
… … …
I1n I2n
I3n

I1n

Step2:求I ∑ n
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
Step3: 重新命名 对求得的矩阵(DFA M)的第一列各状态子集 重新命名,然后代入相应的状态矩阵元素; 第一列第一行为DFA M 的初态; 含有原M’终态的I为M终态。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
例2.20: 一个单部电梯对3层楼进行控制的电梯控制 系统的DFA描述。 问题分析: 用户请求 (输入) 状态设置 (所处楼层) 上1、上2、上3 下1、下2、下3 1层 2层 3层 S1 S2 S3
Ch2 形式语言自动机理论基础
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.2 非确定的FA(NFA)
定义2.25
一个非确定的有限自动机M ( NFA M)是一个五 元组
M =(S, ∑, f, S0, Z)
其中:
S, ∑, Z同DFA。
S0:M的非空初始状态集,S0 S。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
上2/下2 上2 下1 下 上 3 上1/下1
S2
S1
上3 下1
2
S3
上3/下3
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
二. DFA的等价表示
DFA形式定义 状态转换图 状态矩阵
例2.21:
DFA M = ({0,1,2,3}, {a,b}, f , {0}, {3})
S f(0,a)=1 f(1,a)=3 f(2,a)=1 f(3,a)=3 Σ f(0,b)=2 f(1,b)=2 f(2,b)=3 f(3,b)=3 S0 Z
f
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
a 0 b b a b a a 3 b 1
2
Ch2 形式语言自动机理论基础
1
1
p
0|1 0
1
q
0|1
r
0
s
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
I 0* 1 2 {p} {q, s} 1 3 3 6 7 8 8 6
I0 {q, s} {r} {r} {s} { q,r,s } { r,s } { r,s } {s}
2.2.2 非确定的FA(NFA)
f:状态转换函数。 从S×∑*→2S的映射。其中∑* = ∑∪ε 。注意这里 的后继状态不是惟一的,它可以是状态集S的子集。 a 0 a ε 2 1
3
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.2 非确定的FA(NFA)
例2.23: 设有一个非确定的有限自动机M
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
∑:输入字符的有限集合(或有穷字母表)。每个元 素是一个输入字符。 f:状态转换函数:从S×∑→S的部分映射。 例如, f(p,a)=q, q、p∈S, a∈∑。表示了状态 p在输入字符a之后转入状态q。 其中q也称为后继状态。 S0:M的惟一初态(也称开始状态),S0∈S。 Z: M的终态集(或接受状态) ZS。
NFA M=({q0, q1, q2, q3, q4},{0,1}, f , {q0}, { q2,q4}) S ∑ S0 Z 其中状态转换函数f为: f(q0,0)= q0 f(q0,1)= q0 f(q1,0)= Φ f(q2,0)= q2 f(q3,0)= q4 f(q4,0)= q4 f(q0,0)= q3 f(q0,1)= q1 f(q1,1)= q2 f(q2,1)= q2 f(q3,1)= Φ f(q4,1)= q4
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
例2.26: 有NFA M如例2.25所示。 设I={1} 则 Ia =ε-closure(J) =ε-closure({3 , 4 , 5}) = { 2, 3, 4, 5, 6,7,8 } 设I={2,5} 则 Ia =ε-closure(J) =ε-closure({3}) = { 3,8 }
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
例2.27: 有NFA M’如下图所示。
ε ε ε
a 4 2 a 3 6
5 a 1
ε
8
ε
7
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
I
0 ε-closure(S0)={1,2} 1* 2* {2, 3, 4, 5, 6, 7, 8}
NFA S0
多个初态S0 S ∑* ( ε∈∑* )
DFA
惟一 S0∈S ∑字集 f ( S×∑ )
f
f ( S×∑* )
f ( S×∑* )
2S
f ( S×∑)
S
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.2 非确定的FA(NFA)
例2.24: 给出一个接收字符串aa*|bb*的NFA M,
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
∴ 有限状态自动机所接受的语言为:
L(M) = {α | f(S0, α) ∈Z & α ∈VT* }
与文法等价概念类似: 设有FA M 和 FA M' , 若L(M) = L(M') , 则称M 和 M' 等价。
Ch2 形式语言自动机理论基础
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
定义2.27
(状态集合I的a弧转换Ia )
设 NFA M' =(S,∑,f,S0,Z) 假定I S,a∈∑,则定义Ia=ε-closure(J), 其中J是所有从ε-closure(I)出发,经过一条a弧 而到达的状态集。
J = Move(I , a)
2.2 自动机基础
2.2.1 确定的FA(DFA)
状态矩阵表示 Σ
a
S S0 Z
b 2 2 2 3 f
0 1 2 3*
1 3 1 3
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
三 . FA的识别机制 例2.22:
有DFA M1,它可以识别偶数个0或偶数个1。 DFA M1=({q0, q1, q2, q3},{0,1},f,{q0},{q0}) 其中: f(q0,0)= q2 f(q1,0)= q3 f(q2,0)= q0 f(q3,0)= q1 f(q0,1)= q1 f(q1,1)= q0 f(q2,1)= q3 f(q3, 1)= q2
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
子集法
对NFA M’ =(S, {∑1, ∑2, … , ∑n }, f, S0, Z) 设一矩阵形式的表:
I ε-closure(S0) I ∑1 I∑2 … I∑n
Step1:初始化
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
$1=110101,其M1对$1的识别过程是: f(q0 ,1)= q1 f(q0 , 11)= f(f(q0 ,1),1)= f(q1 ,1)= q0 f(q0 , 110)= f(f(q0 ,11) ,0)= f(q0 ,0)= q2 f(q3 , 1101)= f(f(q0 ,110),1)= f(q2 ,1)= q3 f(q3 , 11010)= f(f(q0 ,1101),0)= f(q3 ,0)= q1 f(q3 , 110101 )= f(f(q0 ,11010) ,1)= f(q1 ,1)= q0
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
例如, 1) 电梯的控制系统; 2) 人的大脑也是有限控制系统; (235) 3) 计算机自身也是有限控制系统。 注意: 1) DFA是具有离散输入、输出系统的一个纯数 学模型; 2) DFA的技巧在于状态的设置; 3) DFA映射的唯一性和初态的唯一性 。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
一. 确定的有限自动机( DFA)
( DFA:Deterministic Finite Automata )
定义2.24
一个确定的有限自动机M ( DFA M)是一个五元组
M =(S, ∑, f, S0, Z)
其中: S:状态的有限集合,每个元素Si (Si S) 称为一 个状态。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
例2.25: 有NFA M如下图所示。
5 a 1 ε a 4 ε 7 2 ε ε a 3 ε 8 6
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
设 I={5} 则 ε-closure(I) = ε-closure({5}) = {5, 6, 2} 设 I={1} 则 ε-closure({1}) = {1, 2} 设 I= {1,5} 则 ε-closure({1,5})={1,2,5,6}
2.2 自动机基础
2.2.2 非确定的FA(NFA)
一. NFA的定义
DFA的确定性表现在其映射函数是一个单值函 数。但是实际问题中,映射函数往往是一个多值函 数。 例如,源程序中扫描到一个字母时,不同的语言 对应多种情况: FORTRAN中: 标识符/格式转换码:E、D…/ .AND./.OR./… C语言中:标识符/ %S / \n / if / switch ….
Ia
{2, 3, 4, 5, 6, 7, 8} { 3, 8} Φ 1 2
{ 3, 8}
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
a 0 1* 2* 1 2
a
0
a
1
2
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
例2.28: 有NFA M’如下图所示。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.1 确定的FA(DFA)
综述: 1) 对于Σ上的任何字α,如果存在一条从初态到
某一终态结的路径,且该路径上所有弧的标记符连接 成的字等于α, 则称α为DFA M所识别 (接受)。 2)若DFA仅一个状态结,该状态结既是初态又是 终态,则空字集合{ε}为DFA M所接受。 3) 一个DFA M所能接受的字的全体记为L(M)。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.2 非确定的FA(NFA)
0,1 1
0
0
3
0
4
0,1
0
1
0 1 2*
{0,3}
{0,1} {2}
1
1
{2} {4}
{2}
2
0,1
3
4* {4}
状态子集
{4}
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.2 非确定的FA(NFA)
二. NFA和DFA的区别
如下图所示。 ε start 0 ε 3 1 a 2 a
b
4
a
对字符串aaa的接受路径为0,1,2,2,2,接受 路径中边的标记是ε,a,a,a,它们的连接为字符串
aaa,ε在连接中消失。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
定理2.1
对任何一个NFA M,都存在一个DFA M ' , 使 L(M' )=L(M)。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2百度文库2.1 确定的FA(DFA)
DFA M1状态图 对1010:
1 q0 1 q1 0 q3 1 q2 0
q0
q0
0 0
1
q1 接受!
0 0
对11001:
q0 1 q1 1 q0 0 q2 0 q0 1
1
q2
1
q3
q1
拒绝!
Ch2 形式语言自动机理论基础
定理2.1说明: 对任何一个NFA M,都存 在一个DFA M' ,由于M和M'所识别的字的全 体相同,所以 M' =M。
Ch2 形式语言自动机理论基础
2.2 自动机基础
2.2.3 NFA确定化
NFA确定化的算法 — 子集法。 定义2.26
假设I是NFA M' 状态集S的一个子集。(即I∈S) ,则定义ε-closure(I)为 : (1) 若Si∈I,则Si ∈ε-closure(I); (2) 若Si ∈I,则从Si出发经过任意条ε弧而能到达 的任何状态Sj ,则Sj ∈ε-closure(I)。
相关文档
最新文档