第七章:下推自动机.

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

7.1 基本定义
• ├Mn是├M 的n次幂
– (q1,ω1,β1)├Mn(qn,ωn,βn)
• ├M*是├M 的克林闭包
– (q,ω,α)├M*(p,x,β)
• ├M+是├M 的正闭包
– (q,ω,α)├M+(p,x,β)
7.1 基本定义
• 例 7-1 考虑接受语言L={ω2ωT | ω∈{0,1}*} 的PDA的设计。 • 解法1:首先是根据PDA的构造过程、工作 原理和GNF的最左派生来分析。 • 先设计产生L的CFG G1: G1:S2|0S0|1S1 • 再将此文法转化成GNF: G2:S2|0SA|1SB A0 B1
7.1 基本定义
δ(q , ε , Z)={(p 1 , γ 1 ) , (p 2 , γ 2 ) , … , (pm,γm)}
• 空移动:表示M进行一次ε-移动(空移动), 即M在状态q,栈顶符号为Z时,无论输入 符号是什么,对于i=1,2,…,m,可以选 择地将状态变成pi,并将栈顶符号Z弹出, 将γi中的符号从右到左依次压入栈,读头不 移动。
• 下推自动机(pushdown automaton,PDA) M= (Q,∑,Γ,δ,q0,Z0,F) Q——状态的非空有穷集合。q∈Q,q称为 M的一个状态(state); ∑——输入字母表(input alphabet)。要求M的 输入字符串都是∑上的字符串; Γ——栈符号表(stack alphabet)。A∈Γ,叫 做一个栈符号;
第7章下推自动机
• 主要内容
– – – – PDA的基本概念。 PDA的构造举例。 用终态接受语言和用空栈接受语言的等价性。 PDA是CFL的接受器。
• 重点
– PDA的基本定义及其构造,PDA是CFL的等价描述。
• 难点
– 根据PDA构造CFG。
7.1 基本定义
• PDA应该含有三个基本结构
– 存放输入符号串的输入带。 – 存放文法符号的栈。 – 有穷状态控制器。
7.1 基本定义
• Z0——Z0∈Γ叫做开始符号(start symbol), 是 M 启动时候栈内惟一的一个符号。所以, 习惯地称其为栈底符号; • q0——q0∈Q,是M的开始状态(initial state), 也可叫做初始状态或者启动状态; • F——FQ,是M的终止状态(final state)集 合,简称为终态集。q∈F,q称为M的终 止状态,也可称为接受状态(accept state), 简称为终态。
第7章下推自动机
• FA是识别和处理RL的装置,而RL是CFL 的一个子集,所以在构造PDA时应该兼顾 到FA对RL的处理方式。 • 理解:构造下推自动机的思路,首先我们 要构造处理CFL的工具,所以从CFL出发, CFL可以经过若干部转化成为GNF,主要 因为GNF的语法规则是最左派生,由于有 统一的规则决定其更容易被处理。
第7章下推自动机
通过提出的栈,再来构造下推自动机。
问题:为什么用栈,而不用队列或者 树等其他模型?
第7章下推自动机
• PDA描述CFL,所以它应该与CFG等价。 • PDA应该包含FA的各个元素,或者包含那 些可以取代FA的各个元素的功能的元素。 • PDA按照最左派生的派生顺序,处理处于 当前句型最左边的变量,因此,需要采用 栈作为其存储机构。 • 按照FA的“习惯”,PDA用终态接受语言。 • 模拟GNF的派生PDA用空栈接受语言。 怎 么理解?
7.1 基本定义
如果(p,γ)∈δ(q,a,Z),a∈∑,则 (q,aω,Zβ)├M(p,ω,γβ) 表示M做一次非空移动,从ID(q,aω,Zβ) 变成ID(p,ω,γβ)。 如果(p,γ)∈δ(q,ε,Z),则 (q,ω,Zβ)├M(p,ω,γβ) 表示M做一次空移动,从ID(q,aω,Zβ)变成 ID(p,ω,γβ) 。
7.1 基本定义
条件 当前状态 有输入 栈顶符号 输入符号 输入为空 当前状态 栈顶符号 响应 新状态 修改栈顶 右移读写头 新状态 修改栈顶
7.1 基本定义
图像模拟
a
b
c
S S S A A β
β Z Z

↑ ↑
FSC
p → q
7.1 基本定义
• M接受的语言 : – M用终态接受的语言 百度文库 L(M)={ω | (q0,ω,Z0)├*(p,ε,β)且 p∈F} – M用空栈接受的语言 • N(M) ={ω | (q0,ω,Z0)├*(p,ε,ε)}
• PDA的动作
– 在有穷状态控制器的控制下根据它的当前状态、 栈顶符号、以及输入符号作出相应的动作,在 有的时候,不需要考虑输入符号。
7.1 基本定义
• PDA的物理模型
7.1 基本定义
比较: • PDA M= (Q,∑,Γ,δ,q0,Z0,F) • FA M= (Q,∑, δ,q0, F)
7.1 基本定义
7.1 基本定义
• 两种移动 • δ(q,a,Z)={(p1,γ1),(p2,γ2),…,(pm, γm)} • 有输入的移动:表示M在状态q,栈顶符号 为Z时,读入字符a,对于i=1,2,…,m, 可以选择地将状态变成pi,并将栈顶符号Z 弹出,将γi中的符号从右到左依次压入栈, 然后将读头向右移动一个带方格而指向输 入字符串的下一个字符。
7.1 基本定义
• δ——状态转移函数(transition function),有 时候又叫做状态转换函数或者移动函数。 δ:Q×(∑∪{ε})×Γ
2
Q *
δ(q,a,Z)={(p1,γ1),(p2,γ2),…, (pm,γm)} 思考: 对应的转移具有选择性,这是不 是表明DFA是非确定的呢?
7.1 基本定义
• 符号使用约定 • 英文字母表较为前面的小写字母,如a,b, c,…,表示输入符号; • 英文字母表较为后面的小写字母,如x,y, z,…,表示由输入字符串; • 英文字母表的大写字母,表示栈符号; • 希腊字母α,β,γ,…,表示栈符号串。
7.1 基本定义
7.1 基本定义
• 即时描述(instantaneous description,ID) (q,ω,γ)∈(Q,∑*,Γ*)称为M的一个 即时描述。它表示M处于状态q,ω是当前 还未处理的输入字符串,而且M正注视着ω 的首字符,栈中的符号串为γ,γ的最左符 号为栈顶符号,最右符号为栈底的符号, 较左的符号在栈的较上面,较右的符号在 栈的较下面。
相关文档
最新文档