繁体   English   中英

PDA M 中的堆栈大小可以增长到最多容纳 k 个符号。 L(M) 是什么语言?

[英]the stack size in a PDA M can grow to hold at most k symbols. What kind of language is L(M)?

PDA M 中的堆栈大小可以增长到最多容纳 k 个符号。 L(M) 是什么语言? 证明你的主张。

我认为答案是这样的:如果语言 L(M) 最多可以容纳 k 个符号,则它是一种常规语言。 由于它最多可以容纳 k 个符号,因此堆栈大小是有限的。 此外,我们可以创建一个接受 L(M) 的 DFA,因此我们可以得出结论,该语言 L(M) 是正则的。

但是我正在和我的朋友争论这是否正确

你是对的,这样的自动机接受常规语言。

论证这一点的一种方法是展示如何为这些有限堆栈 PDA 中的任何一个构建 NFA。 构造很简单,正如您所建议的那样,并在评论中提出了建议:

  1. 带上你的有限堆栈 PDA
  2. 对于有限堆栈 PDA 中的每个 state q 和每个可能的堆栈配置 S(肯定不会超过 (|E| + 1)^k),在 NFA 中定义 state qS
  3. 对于每个转换 (q, S, s, q', S'),其中 q 是初始 state,S 是初始堆栈配置,s 是转换符号,q' 是转换 state,S' 是之后的堆栈配置转移,在符号 s 上的 NFA 中添加从 qS 到 q'S' 的转移。 注意:对空/epsilon/lambda 转换也执行此操作
  4. 将 NFA 的初始 state 设为 state q0S0 其中 q0 是有限堆栈 PDA 的初始 state,S0 是空堆栈
  5. 使 PDA 的接受状态成为 qaSa,其中 qa 在有限堆栈 PDA 中接受(和/或如果您通过空堆栈接受,Sa 是空堆栈)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM