正则语言
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
有穷自动机举例
例 给定有穷自动机 M1 的状态图。请给出形式化的描述,并 确定其能识别的语言。 0 q1 1 1 q2 0 q3
0,1 M1 = ( {q1, q2 , q3} , {0,1} , , q1, q2 )
q1 q2 q3
0 q1 q3 q2
1 q2 q2 q2
若 A 是机器 M 接受的全部字符串集,则称 A 是机器 M 的语 言,记作 L(M)=A,又称 M 识别 A 或 M 接受 A。 L(M1) = { w | w 至少一个 1并且在最后的1后面有偶数个0 }
M1=(Q1, , 1,q1, F1) 和 M2=(Q2, , 2, q2, F2) 构造识别A1∪A2 的 M=(Q, , , q0, F)
Q = Q1Q2 = {(r1, r2) | r1Q1 且 r2Q2} ((r1, r2), a ) = (1(r1,a), 2(r2,a) ) q0 = (q1, q2) F = {(r1, r2) | r1F1 或 r2F2}
q1
a b q2 a, b a q3
27
非确定型有穷自动机的形式定义
定义 1.17 非确定型有穷自动机 (NFA) 是一个 5 元组 ( Q, , , q0, F ),其中 (1) Q 是有穷的状态集。 (2) 是有穷的字母表。 (3) : QεP(Q)是转移函数。 (4) q0Q 是起始状态。 (5) FQ 是接受状态集。
13
计算的形式化定义举例
例1.8 给定有穷自动机 M5 的状态图。令w是字符串
10<RESET>22<RESET>012
给出M5对w计算时进入的状态序列。 0
2,<RESET> 0,<RESET>
q1
1
2 2 1
q0
1,<RESET>
q2
0
14
设计有穷自动机
例:设计有穷自动机 E1,假设字母表是{0,1},识别的语言由 所有含有奇数个 1 的字符串组成。
9
有穷自动机举例
例1.4 给定有穷自动机 M4 的状态图。请给出形式化的描述, 并确定其能识别的语言。
a q1
a b q2
a
s
b
b
r1
b b r2 a a
10
有穷自动机举例
例1.5 给定有穷自动机 M5 的状态图。请给出形式化的描述, 并确定其能识别的语言。 0 q1
1 2 2 1
2,<RESET> 0,<RESET>
q0
1,<RESET>
q2
0
M5 以模3的方式记录 它在输入串中读到 的数字之和。
11
有穷自动机举例
例1.6 例1.5推广。对于每一个 i >=1,设 Ai 是所有这种字符串 的语言,其中数字之和是 i 的倍数。 M=( Q, , , q0, F ) Q={q0, q1, …, qn-1 } (qj , 0) = qj (qj , 1) = qk , k = j+1 mod i (qj , 2) = qk , k = j+2 mod i (qj , <RESET>) = q0 , k = j+1 mod i
FRONT, REAR, NEITHER, FRONT, BOTH, NEITHER, REAR, NEITHER, 考察状态的变化。
可以给出状态和信号之间的计算。
3
状态图
变换规则 状态 1 1 q1 起始状态 接受状态
4
0
0 q2 q3
0,1
状态图
0 1 q1 q2 0,1 on input ―1101‖, the machine goes: q1 q2 q2 q3 q2 = ―accept‖ 010: reject 11: accept 010100100100100: accept 010000010010: reject : reject
证明定理遇到困难,暂时放下 ——引入不确定性
21
主要内容
1.1 有穷自动机
1.2 非确定性
1.3 正则表达式 1.4 非正则语言
本章小结
作业
22
非确定性
非确定性体现在 转换规则——一入多出, 是空字——无入转态
qΒιβλιοθήκη Baidu q2 q1
1 1
q2 q3
23
非确定性
0,1 0,1 1
q1
q2
0,
17
正则运算
例1.11 设字母表 是标准的 26 个字母 {a, b, … , z}。又设
A={good, bad}, B={boy, girl}, 求A∪B , AB 和A*。
18
正则运算
定理 1.12 正则语言类在并运算下封闭。
如果A1和A2是正则语言,则A1∪A2也是正则语言。
设 M1 识别 A1, M2 识别 A2。并设
计算理论
1
主要内容
1.1 有穷自动机
1.2 非确定性
1.3 正则表达式 1.4 非正则语言
本章小结
作业
2
1.1 有穷自动机
实际示例—自动门控制
REAR BOTH NEITHER FRONT REAR BOTH FRONT
前缓冲区
后缓冲区
CLOSED
OPEN
NEITHER
控制器处于CLOSED状态,假设如下输入信号:
30
NFA与DFA的等价性
定理 1.19 每一台非确定型有穷自动机都等价于某一台确定型有 穷自动机。
1 q1 1 1 q2 q3
{q1} → {q2, q3, q5}
q5 1 q2 1 1 1 1 q3 2 q5
q2 ,q3 ,q5 q0
3 q0 3
q1 q4
3
1 q1 ,q4 2 q5
31
NFA与DFA的等价性
0
1
0
qeven
1
qodd
15
设计有穷自动机
例1.9 设计有穷自动机 E2,使其能识别含有 001 作为子串组成 的正则语言。
1 0 q
1
0 0 q0 q00 1
0,1 q001
16
正则运算
定义 1.10 设 A 和 B 是两个语言,定义正则运算并、连接和星号 如下: (1) 并: A∪B = { x | x∈A 或 x∈B } (2) 连接:AB = { xy | x∈A 且 y∈B } (3) 星号:A* = { x1x2…xk | k ≤ 0 且每一个xi ∈A }
定理 1.19 每一台非确定型有穷自动机都等价于某一台确定型有 穷自动机。
设 N = (Q, , , q0, F) 是识别语言 A 的NFA。
假设 N 没有 箭头。 构造识别 A 的 DFA M = (Q, , , q0, F ) (1) Q=P(Q) (2) 对于 RQ 和 a,令 (R,a)={ qQ | 存在 rR, 使得 q(r,a) } (3) q0={ q0 } (4) F = { RQ | R 包含 N 的一个接受状态 }
修改 M 的转移函数 (R,a)={ qQ | 存在 rR, 使得 qE((r,a)) } q0=E({q0})
33
NFA与DFA的等价性
推论 1.20 一个语言是正则的,当且仅当有一台非确定型有穷自 动机识别它。
34
NFA 转换成等价的 DFA 举例
例1.21 将图示的 NFA N 转换成等价的 DFA。 Q ={ , {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3} }
0,1 q1 1
q2
0,1
q3
0,1
q4
25
非确定性
例1.15 考虑图示的 NFA N ,它的输入字母表 {0}由一个符号 组成。只含一个符号的字母表称为一元字母表。考虑 它接受的语言。
0 0 0
0
0
26
非确定性
例1.16 考虑图示的 NFA N 。运行这台机器,判断其是否识别 ε、a、baba、baa、b、bb、babba。
19
正则运算
定理 1.13 正则语言类在连接运算下封闭。
证明思路 按照定理1.12证明思路试一下。 输入:M1接受第一段且 M2 接受第二段时,M才接受;
?
M不知道在什么地方将它的输入分开 (什么地方第一段结束,第二段开始)
20
举例
Consider the concatenation: 考虑下列连接 {1,01,11,001,011,…} • {0,000,00000,…} (That is: the bit strings that end with a ―1‖, followed by an odd number of 0’s.) Problem is: given a string w, how does the automaton know where the L1 part stops and the L2 substring starts? 如何知道L1 何处停止? L2 何处开始?切分问题。
1
a
b
a, b
a 3
a
E({1}) = { 1, 3 } F = {{1}, {1,2}, {1,3}, {1,2,3} } 考察 {{2},{1},{3},{1,2},{2,3}, {1,2,3}, , {1,3}}
{1}
b b {1, 3} b a b {2} a {2,3} a,b a {1,2,3} a
12
计算的形式化定义
设 M = (Q, , , q0, F) 是一台有穷自动机, w = w1w2…wn 是 一个字符串,并且 wi 是字母表 的成员。如果存在 Q 中的 状态序列 r0, r1, … , rn,满足下列条件: 1) r0 = q0 2) (ri , wi+1) = ri+1 , i = 0, 1, …, n–1 3) rn F 则 M 接受 w。 定义 1.7 如果一个语言被一台有穷自动机识别,则称它是正则 语言。
2
a,b b
{1,2}
{3}
a
b
35
在正则运算下的封闭性
定理 1.22 N 正则语言类在并运算下封闭。 N1
设
N1 = (Q1, , 1, q1, F1)
N2 = (Q2, , 2, q2, F2)
构造 N = (Q, , , q0, F) N2
1 (q,a) (q,a) 2 ( q, a ) {q1 , q2 }
q3
1
q4
不确定性表现: • q11 Y ? Y有两个可能状态: q1,q2 • 导致 q2 自动漂移到 q3 是否接受 “0110‖ 和 ”1‖ 0110——q1 q1 q2 q3 q4 q4 1——{q1, q2 ,q3}
24
非确定性
例1.14 设 A 是 {0, 1} 上倒数第三个符号为 1 的所有字符串组 成的语言,构造非确定性自动机。
28
NFA 的形式化描述举例
例1.18 给出图示的 NFA 的形式化描述。
0,1 0,1 1
q1
q2
0,
q3
1
q4
29
NFA 计算的形式化定义
设 N = (Q, , , q0, F) 是一台 NFA, w = w1w2…wn 是一个字 符串,并且 wi 是字母表 的成员。如果存在 Q 中的状态序 列 r0, r1, … , rn,满足下列条件: 1) r0 = q0 2) ri+1 (ri , wi+1) = , i = 0, 1, …, n–1 3) rn F 则 N 接受 w。
5
1 0 q3
有穷自动机的形式定义
定义 1.1 有穷自动机是一个 5 元组 ( Q, , , q0, F ),其中 (1) Q 是一个有穷集合,称为状态集。 (2) 是一个有穷集合,称为字母表。 (3) : QQ是转移函数。 (4) q0Q 是起始状态。 (5) FQ 是接受状态集。
32
NFA与DFA的等价性
定理 1.19 每一台非确定型有穷自动机都等价于某一台确定型有 穷自动机。
考虑 N 有 箭头。
对于 M 的任意一个状态 R,定义 E(R) 为从 R 出发只沿着 箭头可以达到的状态集合,包括 R 本身的所有成员在内。
E(R) = { q | 从 R 出发沿着 0 或多个 箭头可以到达 q }
7
有穷自动机举例
例1.2 给定有穷自动机 M2 的状态图。请给出形式化的描述, 并确定其能识别的语言。 0 q1 0 M2 = ( {q1, q2} , {0,1} , , q1, q2 ) L(M2) = { w | w 以 1 结束}
8
1 1 q2
有穷自动机举例
例1.3 给定有穷自动机 M3 的状态图。请给出形式化的描述, 并确定其能识别的语言。 0 q1 0 L(M3) = { w | w 是空串或以 0 结束} 1 1 q2