设 P 是一个非确定性下推自动机 (NPDA),在其堆栈字母表中只有一个状态 q 和一个符号 Z。状态 q 是 PDA 的起始状态和接受状态。堆栈在 PDA 操作开始之前用一个 Z 初始化。令PDA的输入字母表为Σ。令 L(P) 成为 PDA 通过读取字符串并达到其接受状态而接受的语言。通过读取字符串并清空其堆栈,令 N(P) 成为 PDA 接受的语言。
下面哪个描述是正确的?
(A) L(P) 一定是 Σ* 但 N(P) 不一定是 Σ*
(B) N(P) 一定是 Σ* 但 L(P) 不一定是 Σ*
(C) L(P) 和 N(P) 都必然是 Σ*
(D) L(P) 和 N(P) 都不一定是 Σ*答案: (D)
解释:下推自动机(PDA)通过读取字符串并到达接受的语言 L(P)
它的接受状态和PDA通过阅读接受的语言N(P)
一个字符串,并清空堆栈,但它可能是字符串的情况下,
PDA 转换上的死配置,即 PDA 没有
特定字母表或字符串的过渡。因此它不接受
Σ* 上的所有字符串。
For example- Transitions for the PDA are as follows:
1. (q, a, Z) -> (q, aZ)
2. (q, b, Z) -> (q, bZ)
3. (q, a, a) -> (q, aa)
4. (q, a, b) -> (q, ab)
5. (q, b, a) -> (q, ba)
6. (q, null, Z) -> (q, Z)
7. (q, null ,a) -> (q, null)
8. (q, null, b) -> (q, null)
这里 q 是初始和接受状态,Z 是初始堆栈符号
和 a 和 b 是输入字母表。这里 {null, a, b, ab, aab………..} 是
在这两种情况下都接受,但在“bb”的情况下,PDA进入死机
配置,因为不存在此类转换。因此既不是 L(P) 也不是 N(P)
必然是Σ*。
这个解释是由Yashika Arora 提供的。
这个问题的测验