编译原理课件第3章有穷自动机
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
and some of which are designated as final states. 2) An alphabet of possible input symbols. 3) A finite set of transitions that specifies for each state and for each symbol of the input alphabet, which state to go to next.
14
例:下图是一个NDFA,它所识别的是所有含有相 继两个a或相继两个b的字。
15
例子 NFA M=({S,P,Z},{0,1},f,{S,P},{Z}) 其中 f(S,0)={P} f(Z,0)={P} f(P,1)={Z} f(Z,1)={P} f(S,1)={S,Z}
16
状态图表示
1S 0
9
3.1.3 自动机的等价性
对于*中的任何字 ,若存在一条从初态结点 到某一终态结点的通路,且这条通路上所有弧的标 记符连接成的字等于 ,则称可为 DFA M所识别 (读出或接受)若M的初态结点同时又是终态结点, 则空字可为M所识别(或接受)。DFA M所能识别的 字的全体记为L(M)。
对于任给的DFA A1和A2,若L(A1)=L(A2),称 自动机A1与A2等价。P37 例3.5。
13
对于∑*中的任何一个字,若存在一条从某一 初态结点到某一终态结点的通路,且这条通路上所 有弧的标记字依序连接成的字(忽略那些标记为的 弧)等于,则称可为NDFA M所识别。若M的某些 节点既是初态结点又是终态结点,或者是存在一条 从某个初态结点到某个终态结点的的通路,那么, 空了可为M所接受。
4
3.1.1 状态转换表
一个DFA可用一个矩阵表示,该矩阵的行表示状 态,列表示输入字符,矩阵元素表示t(p,a)的值。 这个矩阵称为状态转换表。
5
例如,有DFA M=({0,1,2,3},{a,b},t,0,{3}) t(0,a)=1 t(0,b)=2 t(1,a)=3 t(1,b)=2 t(2,a)=1 t(2,b)=3 t(3,a)=3 t(3,b)=3
10
DFA
11
3.1.4 非确定有穷自动机(NDFA)
定义:一个非确定自动机(NDFA) M是一个五元组M=(Q, ∑,t,Q0,F)其中
(1)Q同前 (2)∑同前 (3)t是一个从Q×∑*到Q的子集的映射。
即t: Q×∑*→Q (即不要求单值映射) (4)Q0Q,是一个初态集; (5)FQ,是一个终态集
3
3.1 有穷自动机的形式定义
定义3.1 一个确定的有穷自动机(DFA)M是一个五元式 M=(Q,,t,q0,F)。其中 (1)Q是由有限个状态组成的集合; (2)是由有限个输入字符组成的集合,有穷字母表; (3)t是一个从Q×到Q的单值映射,t(p,a)=q意味着:当现
行状态为p时,输入字符为a时,将转换到下一状态q。我 们称q为p的一个后继状态; (4)q0Q,且是唯一的初态; (5)FQ,是一个终态集。
1
0,1
Z
P
1
17
矩阵表示
S P Z
矩阵表示
0
1
{P} {S,Z}
0
{}
{Z}
0
{P}
{P}
1
简化为
0
1
S
P
S,Z
0
P
.
Z
0
Z
P
P
1
18
3.2 NDFA到DFA的转换
DFA是NDFA的特例.对每个NDFA N 一定存在一个 DFA M ,使得 L(M)=L(N)。对每个NDFA N存在着与 之等价的DFA M。与某一NDFA等价的DFA不唯一
第三章 有穷自动机
有穷自动机(也称有限自动机)作为一种识别装置,是描述 (或“机器”)特定类型算法的数学方法。特别地,有穷 自动机可用作描述在输入串中识别模式的过程,因此也能 用作构造扫描程序。它能准确地识别正规集,即识别正规 文法所定义的语言和正规式所表示的集合,引入有穷自动 机这个理论,正是为词法分析程序的自动构造寻找特殊的 方法和工具。当然有穷自动机与正则表达式之间有着很密 切的关系。 有穷自动机分为两类:确定的有穷自动机(Deterministic Finite Automata)和不确定的有 穷自动机(Nondeterministic Finite Automata) 。
一个DFA也可表示成一张(确定的)状态转换 图。假定DFA M含有m个状态和 n个输入字符,那么, 这个图含有m个状态结点,每个结点顶多有n条箭弧 射出和别的结点相连接,每条箭弧用中的一个不 同输人字符作标记,整张图含有唯一的一个初态结 点和若干个终态结点。
8
上例所定义的 DFA M相应的状态转换图如下图 所示。它能识别上所有含有相继两个a或相继两个 b的字 。
1
关于有穷自动机我们将讨论如下题目
确定的有穷自动机DFA 不确定的有穷自动机NDFA NDFA的确定化 DFA的最小化 RG与FA 正规式与FA RG与正规式
2
DFA M=(K,Σ,f,S,Z) 1) A finite set of states, one of which is
designated the initial state or start state,
19
3.2.1 空移环路的寻找与消除 P39 3.2.2 消除空移 P40
20
步骤: 设NDFA M=(K,∑,f,S0,Z) (1)假定I是M的状态集的子集,定义I的闭包CLOSURE(I)为 一状态集,是状态集I中的任何状态S经任意条弧而能到达 的状态的集合。状态集合I的任何状态S都属于-closure (I)。 ①若qI,则qCLOSURE(I) ②若qI,那么从q出发经任意条弧而能到达的任何状态q′ 都属于CLOSURE(I)。 (2)假定I是M的状态集的子集,a∑,定义Ia=CLOSURE(J), J是那些可从I中的某一状态结点出发经过一条a弧而到达的 状态结点的全体。
12
一个含有m个状态和n个输入字符的NDFA也可表 示为一张状态转换图:该图含有m个状态结点,每个 结点可射出若干条箭弧和别的结点相连接,每条箭弧 用∑*中的输入字符(不一定要不同的,而且可以是 空字)作标记(称为输入字),整张图至少含有一 个初态结点以及若干个终态结点。某些结点既可是 初态结点,也可以是终态结点。
状态
a
b
0
12Leabharlann 1322
1
3
3
3
3
6
3.1.2 状态转换图
状态转换图是一张有限方向图。在状态转换图中,
结点代表状态,用圆圈表示(初态结点用箭头指
示,终态结点用双圆圈表示)。状态之间用箭弧
连结。箭弧上的标记(字符)代表在射出结点
(即箭弧始结点)状态下可能出现的输入字符或
字符类。
1 X2
Y 3
7
一个确定的有穷自动机实际上是相应的状态转换 图的一种形式描述。
14
例:下图是一个NDFA,它所识别的是所有含有相 继两个a或相继两个b的字。
15
例子 NFA M=({S,P,Z},{0,1},f,{S,P},{Z}) 其中 f(S,0)={P} f(Z,0)={P} f(P,1)={Z} f(Z,1)={P} f(S,1)={S,Z}
16
状态图表示
1S 0
9
3.1.3 自动机的等价性
对于*中的任何字 ,若存在一条从初态结点 到某一终态结点的通路,且这条通路上所有弧的标 记符连接成的字等于 ,则称可为 DFA M所识别 (读出或接受)若M的初态结点同时又是终态结点, 则空字可为M所识别(或接受)。DFA M所能识别的 字的全体记为L(M)。
对于任给的DFA A1和A2,若L(A1)=L(A2),称 自动机A1与A2等价。P37 例3.5。
13
对于∑*中的任何一个字,若存在一条从某一 初态结点到某一终态结点的通路,且这条通路上所 有弧的标记字依序连接成的字(忽略那些标记为的 弧)等于,则称可为NDFA M所识别。若M的某些 节点既是初态结点又是终态结点,或者是存在一条 从某个初态结点到某个终态结点的的通路,那么, 空了可为M所接受。
4
3.1.1 状态转换表
一个DFA可用一个矩阵表示,该矩阵的行表示状 态,列表示输入字符,矩阵元素表示t(p,a)的值。 这个矩阵称为状态转换表。
5
例如,有DFA M=({0,1,2,3},{a,b},t,0,{3}) t(0,a)=1 t(0,b)=2 t(1,a)=3 t(1,b)=2 t(2,a)=1 t(2,b)=3 t(3,a)=3 t(3,b)=3
10
DFA
11
3.1.4 非确定有穷自动机(NDFA)
定义:一个非确定自动机(NDFA) M是一个五元组M=(Q, ∑,t,Q0,F)其中
(1)Q同前 (2)∑同前 (3)t是一个从Q×∑*到Q的子集的映射。
即t: Q×∑*→Q (即不要求单值映射) (4)Q0Q,是一个初态集; (5)FQ,是一个终态集
3
3.1 有穷自动机的形式定义
定义3.1 一个确定的有穷自动机(DFA)M是一个五元式 M=(Q,,t,q0,F)。其中 (1)Q是由有限个状态组成的集合; (2)是由有限个输入字符组成的集合,有穷字母表; (3)t是一个从Q×到Q的单值映射,t(p,a)=q意味着:当现
行状态为p时,输入字符为a时,将转换到下一状态q。我 们称q为p的一个后继状态; (4)q0Q,且是唯一的初态; (5)FQ,是一个终态集。
1
0,1
Z
P
1
17
矩阵表示
S P Z
矩阵表示
0
1
{P} {S,Z}
0
{}
{Z}
0
{P}
{P}
1
简化为
0
1
S
P
S,Z
0
P
.
Z
0
Z
P
P
1
18
3.2 NDFA到DFA的转换
DFA是NDFA的特例.对每个NDFA N 一定存在一个 DFA M ,使得 L(M)=L(N)。对每个NDFA N存在着与 之等价的DFA M。与某一NDFA等价的DFA不唯一
第三章 有穷自动机
有穷自动机(也称有限自动机)作为一种识别装置,是描述 (或“机器”)特定类型算法的数学方法。特别地,有穷 自动机可用作描述在输入串中识别模式的过程,因此也能 用作构造扫描程序。它能准确地识别正规集,即识别正规 文法所定义的语言和正规式所表示的集合,引入有穷自动 机这个理论,正是为词法分析程序的自动构造寻找特殊的 方法和工具。当然有穷自动机与正则表达式之间有着很密 切的关系。 有穷自动机分为两类:确定的有穷自动机(Deterministic Finite Automata)和不确定的有 穷自动机(Nondeterministic Finite Automata) 。
一个DFA也可表示成一张(确定的)状态转换 图。假定DFA M含有m个状态和 n个输入字符,那么, 这个图含有m个状态结点,每个结点顶多有n条箭弧 射出和别的结点相连接,每条箭弧用中的一个不 同输人字符作标记,整张图含有唯一的一个初态结 点和若干个终态结点。
8
上例所定义的 DFA M相应的状态转换图如下图 所示。它能识别上所有含有相继两个a或相继两个 b的字 。
1
关于有穷自动机我们将讨论如下题目
确定的有穷自动机DFA 不确定的有穷自动机NDFA NDFA的确定化 DFA的最小化 RG与FA 正规式与FA RG与正规式
2
DFA M=(K,Σ,f,S,Z) 1) A finite set of states, one of which is
designated the initial state or start state,
19
3.2.1 空移环路的寻找与消除 P39 3.2.2 消除空移 P40
20
步骤: 设NDFA M=(K,∑,f,S0,Z) (1)假定I是M的状态集的子集,定义I的闭包CLOSURE(I)为 一状态集,是状态集I中的任何状态S经任意条弧而能到达 的状态的集合。状态集合I的任何状态S都属于-closure (I)。 ①若qI,则qCLOSURE(I) ②若qI,那么从q出发经任意条弧而能到达的任何状态q′ 都属于CLOSURE(I)。 (2)假定I是M的状态集的子集,a∑,定义Ia=CLOSURE(J), J是那些可从I中的某一状态结点出发经过一条a弧而到达的 状态结点的全体。
12
一个含有m个状态和n个输入字符的NDFA也可表 示为一张状态转换图:该图含有m个状态结点,每个 结点可射出若干条箭弧和别的结点相连接,每条箭弧 用∑*中的输入字符(不一定要不同的,而且可以是 空字)作标记(称为输入字),整张图至少含有一 个初态结点以及若干个终态结点。某些结点既可是 初态结点,也可以是终态结点。
状态
a
b
0
12Leabharlann 1322
1
3
3
3
3
6
3.1.2 状态转换图
状态转换图是一张有限方向图。在状态转换图中,
结点代表状态,用圆圈表示(初态结点用箭头指
示,终态结点用双圆圈表示)。状态之间用箭弧
连结。箭弧上的标记(字符)代表在射出结点
(即箭弧始结点)状态下可能出现的输入字符或
字符类。
1 X2
Y 3
7
一个确定的有穷自动机实际上是相应的状态转换 图的一种形式描述。