上下文无关语言与正则语言的交集及确定性PDA的设计
1. 上下文无关语言与正则语言的交集
1.1 设计思路
若 $L_1$ 是上下文无关语言,$L_2$ 是正则语言,那么存在一个下推自动机(PDA)$M_1 = (make - ndpda\ K_1\ \Sigma_1\ \Gamma\ S_1\ F_1\ R_1)$ 和一个确定有限自动机(DFA)$M_2 = (make - dfa\ K_2\ \Sigma_2\ S_2\ F_2\ R_2)$,使得 $L_1 = L(M_1)$ 且 $L_2 = L(M_2)$。为了得出 $L_1 \cap L_2$ 是上下文无关语言,我们将构建一个新的 PDA 来同时模拟 $M_1$ 和 $M_2$,只有当 $M_1$ 和 $M_2$ 都接受时,这个新 PDA 才接受。
新 PDA 的每个状态是一个超级状态,代表 $M_1$ 中的一个状态和 $M_2$ 中的一个状态。新 PDA 会模拟 $M_1$ 的所有转换,同时跟踪 $M_2$ 的转换。具体规则如下:
- 若 $M_1$ 有一个规则在输入 $a$ 时从状态 $P$ 转移到状态 $Q$,那么对于 $M_2$ 中的每个状态 $Y$,新 PDA 有一个规则从超级状态 $(P\ Y)$ 转移到超级状态 $(Q\ T)$,其中 $(Y\ a\ T) \in R_2$。
- 若 $M_1$ 有一个规则在输入为空($EMP$)时从状态 $P$ 转移到状态 $Q$,那么对于 $M_2$ 中的每个状态 $Y$,新 PDA 有一个规则从超级状态 $(P\ Y)$ 转移到超级状态 $(Q\ Y)$,以模拟 $M_2$ 状态不变。
我们定义如下概念:
- 压
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



