计算理论---正则语言全

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

2013-8-4
自动机理论
自动机理论阐述了计算的数学模型的定义和性 质,为计算机提供了一个准确的形式化的定义 在计算机科学的若干应用领域中起着作用,是 学习计算理论的非常好的起点
2013-8-4
自动机理论
两个模型:

有穷自动机模型用于文本处理、编译程序以 及硬件设计等; 上下文无关模型用于程序设计语言和人工智 能
2013-8-4
例题14
设A是{0,1}上倒数第三个符号是1的所有字符 串组成的语言,如下所是示的NFA N2
0,1 q1 1 q2 0,1 q3 0,1 q4
2013-8-4
与NFA N2等价的DFA
0,1 q1 0
q000 1 q001 0 1 0 1 0,1 q2 q3 0,1 q4
1 q100
并:A∪B={x|x∈A或x∈B} 连接:AB={xy|x∈A且y∈B}
连接:A*={x1x2xk|k≥0且每个xi∈A}
运算封闭性:如果把某种运算应用于一个对象
集合的成员得到的对象仍在这个集合中,则称 这个对象集合在该运算下封闭
2013-8-4
正则运算
举例11
运算的优先序:星运算、连接运算、并运算 定理12 正则语言类在并运算下封闭
可计算性理论
问题发现: 并不是所有数学问题都可以利用计算机可以 解决的,存在一些基本数学问题是不能用计 算机解决的。
2013-8-4
可计算性理论
可计算性理论和复杂性理论是密切相关的: 在可计算性理论中把计算问题分成算法可解的 和算法不可解的两类 在复杂性理论中,把问题分成容易计算的和难 以计算的两类
2013-8-4
有限状态系统
人、羊、狼、菜:ø
人、羊、狼、菜问题状态转换图
狼、菜:人、羊 人、狼、菜:羊 菜:人、狼、羊 人、羊、菜:狼 狼:人、羊、菜 人、羊、狼:菜
羊:人、狼、菜 人、羊:狼、菜 ø :人、狼、菜、羊
2013-8-4
状态转换图
自动控制门的转换图
a:REAR;b:FRONT;c:BOTH;d:NEITHER
a、c、d a、c、b
b
Close
d
Open
一台有三个状态的有穷自动机M1
0 开始 1 1 0、1
q1
q2
0
q2
2013-8-4
有穷自动机形式化定义
有穷自动机(DFA Deterministic Finite Automaton) M 是一个5元组( 5-tuple) M=(Q,,,q0,F)
2013-8-4
例子1
一个能接受含有任何连续三个0的0、1二进制序 列串的有穷自动机
2013-8-4
例子2
设一个有穷自动机M=(Q,,,q0,F),其中 Q={q0,q1,q2,q3), ={0,1}, F={q0} 如下: (q0,0)=q2, (q0,1)=q1, (q1,0)=q3, (q1,1)=q0 (q2,0)=q0, (q2,1)=q3, (q3,0)=q1, (q3,1)=q2
L(M)={w∈{0,1}*|w中0和1的个数都是偶数}
开始 0
q0
0
1 1 1 1
q1
0 0
q2
2013-8-4
q3
例子3
给出下面DFA所接受的语言
0 1 开始 0 0 1 1
q0
q1
0
q2
1
q3
2013-8-4
例子4
给出下面DFA所接受的语言
0
1 开始 0 0 1 1
q0
q1
0
q2
1
确定型计算:当机器处于给定的状态并读入下一个 输入符号时,机器的下一个状态是确定的 非确定型计算:在任何一点,下一个状态可能存在 若干个选择
2013-8-4
NFA N1对010110的计算
0,1
0,1 1
q1
0 1 0 1 q1 q1
q1
q2
0, ε
q3
1
q4
q1 q2 q3
q3 q4 q4 q4 q4 q4 q3
计算理论导引
2013-8-4
计算理论导引
本课程关注计算理论的三个传统的核心领域:
自动机理论 可计算性理论
复杂性理论
2013-8-4
计算理论导引
主要问题:计算机的基本能力和局限性是
什么?
随着计算机能力的越来越强大,这个问题
的理论指导意义越来越大
2013-8-4
计算复杂性理论
核心问题: 是什么使得某些问题很难计算,而又使另外一 些问题容易计算? 复杂性理论寻求以某种方式量度计算问题的难 与易,并寻求其中的原因以及优化方法。
q1
q2 q3
1
q1 q2 q3
0
q1
2013-8-4
关于NFA
NFA:一个状态对于字母表中的一个符号可能有0个、 1个或多个射出的箭头;而DFA的每个状态对于字母 表中的每个符号总是恰好有一个转移箭头射出
NFA:一般会标号ε 的箭头;而DFA转移箭头的标号 是取自字母表中的符号
思考:NFA比DFA能够识别更多的语言吗? 答案是否定的!
Q: 是一个有穷集合,称为状态集 : 有穷集合,称为 字母表 : QQ 是转换函数 q0Q: 是起始状态 FQ: 接受状态集.
状态转移函数定义动作规则,如:(x,1)=y表示当处于状 态x时读到1,则转移到状态y
2013-8-4
有穷自动机定义说明
在状态图外,之所以还需要形式化定义,因为:
控制器、输入带和辅助存储器。有限状态控制器通过 读写头或只读输入头与其它两部分连接
自动机识别语言的过程: 一个自动机所接受的所有字符串的集合就是该自动机
所确定的一个语言
a1 a2 an
有限 状态 控制器
2013-8-4
辅助存储器
有穷自动机
有穷自动机是描述能力和资源极其有限的计算机 模型,这样简单的计算机能做什么? 自动控制门的例子,这是一个有穷自动机的典型 例子,还可以举一些其他例子?
G2=(V2,T2,P2,S),其中V2={S,A,B},T2={a,b},P1:
S→aB;S→bA;A→bAA:A→a;A→aS;B→b;B→bS;B→aBB 则 L(G2)={w∈{a,b}*|w中a的个数等于b的个数}
2013-8-4
语言识别器
语言识别器又称为自动机,它有三个部分:有限状态
2013-8-4
计算复杂性理论
一个重要成果: 发现了一个按照计算难度给问题分类的 完美体系
2013-8-4
计算复杂性理论
应对难计算问题方法: 通过弄清问题难计算的原因,或可以 改变问题提法。 转而求近似解 寻求满意解 选择计算类型
2013-8-4
计算复杂性理论
典型应用之一:
密码问题。
2013-8-4
有穷自动机和与之对应的马尔科夫链常用于识别 数据中的模式,常用在语音处理和光学字符识别 中,甚至用于对金融市场中价格的变动进行建模 和预测
a1 a2 an
只读输入头
有限状态控制器
2013-8-4
有限状态系统
问题
有农民带着一个狼、一只羊和一捆菜过河,河 边有一条小船,且承载量很小,每次只能承载 一个人加上一样物品(一种动物或一捆菜)。 人不在场的时候,狼会吃掉羊,羊会吃掉菜。 人怎样借助这条船,安全地把狼、羊、菜都从 河的左岸摆渡到河的右岸?
2013-8-4
第一部分
自动机与语言
第1章 正则语言
研究内容 有穷自动机 非确定性 正则表达式 非正则语言
2013-8-4
相关的数学概念和术语
下面是一系列需要用到的基本的数学对象、工
具和概念,例如:
集合、序列、多元组 函数、关系、图
字符串与语言、布尔逻辑;
相关术语,例如: 定义、命题、定理、证明(包括构造性证明、
*上连接运算°封闭并满足结合律,但不满足交换律 ( *,°)构成一个单元半群
2013-8-4
语言
字母表上满足一定条件的串的集合L称为上的一个语

举例: L1={x∈{0,1}*|x=0或者x的首位为1}
L2={x∈{0,1}*||x|≤3}
L3={anbn|n≥1} L3={x∈{a,b}*|x=xR} 性质:设L是字母表上的一个语言,记
形式化定义是精确的,能消除其中任何不明确的
疑点
形式化定义提供了一种非常好的表示方法,有助
于思考并清晰地表达出你的思想
2013-8-4
有穷自动机举例
若A是机器M能接受全部字符串集,则称A是机器M 的语言,记作L(M)=A;或称M能识别A或M接受A 一台有穷自动机可能接受若干个字符串,但它永 远只能识别一个语言,当然也包括空语言 例题1.2:有穷自动机M2 ,L(M2)= 例题1.3:有穷自动机M3 ,L(M3)= 例题1.4:有穷自动机M4 ,L(M4)= 例题1.5:有穷自动机M5 ,以模3方式记录它所 读到的数字之和
中的一个产生式可以进行一步推导,如果通过若干步推 导得到一个只由终极符组成的串,这个串就是L(G)中 的一个句子。所有能通过推导得到的句子集合就是语言L (G)
2013-8-4
文法
设G=(V,T,P,S)是一个文法,则 S是G中的一个句型 若δ α γ 是G中的一个句型,α →β 是G中的一
3)rn∈F
则称M接受ω ,或M识别语言A={ω |M接受ω } 。
2013-8-4
正则语言
定理7:如果一个语言被一台有穷自动机 识别,则称它是正则语言
2013-8-4
DFA的设计
设计方法: 假想设计者本身就是有穷自动机DFA
DFA只有有穷个状态或有穷的存储器
通过观察,解析出需要存储的关键信息,其与该 语言本身有关 将这些信息列成一份可能的有限清单 为每一个可能性设计一个状态
0 0
q110
1 q101
0 0 1
q111 1 q011
q3
2013-8-4
DFA计算的形式化定义
设五元组M=(Q,,,q0,F)是一台有穷自动机, ω =ω 0ω 1ω n是一字符串,并且其中任意ω i是字 母表中的成员。如果存在Q中的状态序列r0,r1, ,rn,满足下列条件: 1)r0=q0 2)(ri,ω i+1)=ri+1,i=0,1,,n-1
通过观察,分析各个状态之间的转移关系,设计 转移函数
2013-8-4
举例
例题1.9:设计接受含有001的字符串 模式001中的字符为关键信息 读到的只有1 读到第一个0
读到第二个0
读到整个模式
1 0 1
0、1
1
开始
q
0
q0
0Biblioteka Baidu
q00
q001
2013-8-4
正则运算
定义10:设A和B是两个语言,定义正则运算并、 连接和星号如下
证明关键:构造识别A∪B的有穷自动机
((r1,r2),a)=((r1,a), (r2,a))
定理13 正则语言类在连接运算下封闭
2013-8-4
非确定性
非确定型有穷自动机N1 0, 1 0, 1
q1
1 q2
0, ε q3
1
q4
2013-8-4
NFA与DFA的比较
在DFA中,转移函数取一个状态和一个输入符号,产 生下一个状态;而在NFA中,转移函数取一个状态和 一个输入符号或者空串,产生可能的下一个状态集 合。
文法是一个四元组G=(V,T,P,S),其中V是变量的一
个有限集合,T是终极符的一个有限集(或称为字母表), V∩T=ø;S是初始符号(S∈V);P是产生式规则,P中的 元素为(α ,β ),表示为α →β , α ,β ∈(V∪T) *,而且α 中至少有一个字符来自V中
从文法G产生语言L(G)的过程:从初始符开始,根据P
L0={ε },Ln=Ln-1 °L,L*=∪i=0,,∞L, L+=∪i=1,, ∞ L,
则 L+=L*°L=L°L*, L*=L+°{ε }
2013-8-4
文法
Chomsky提出可以在一个字母表上给出一组产生规则,根
据这些规则推导出来的全体句子组成的集合就构成一个 语言,这样的一组规则就称为文法
反证法、归纳法)
2013-8-4
字母表和串
字母表:由字符串组成的一个非空有限集称为一个字
母表,记为
串:是指某个字母表上的字符组成的有限序列 串长,空串ε,逆串xR 串的连接,前缀,后缀,子串,真子串
通常用*表示上的全体串(包括空串)的集合,而+
表示上的全体非空串的集合
个产生式,
则δ β γ 也是G中的一个句型,从δ α γ 中得到
δ β γ 的过程称为推导
不含非终极符的句型是L(G)的一个句子
2013-8-4
文法
文法举例 G1=(V1,T1,P1,S),其中V1={S,A},T1={0,1},P1:
S→0S; S→OA; S→1A; A→ε 则 L(G1)={0i1j|i,j≥0}
相关文档
最新文档