【发布时间】:2020-05-27 18:58:08
【问题描述】:
在设计下推自动机时,考虑我的输入是 {a,b} 现在我可以在扫描它们时推送多个 a 或多个 b...然后在弹出时我可以弹出多个 a 或多个 b.. . 或者是不是我一次只能推/弹出一个元素,即推单个“a”或单个“b”,同时只弹出一个“a”或单个“b”?
【问题讨论】:
标签: context-free-grammar pushdown-automaton context-free-language
在设计下推自动机时,考虑我的输入是 {a,b} 现在我可以在扫描它们时推送多个 a 或多个 b...然后在弹出时我可以弹出多个 a 或多个 b.. . 或者是不是我一次只能推/弹出一个元素,即推单个“a”或单个“b”,同时只弹出一个“a”或单个“b”?
【问题讨论】:
标签: context-free-grammar pushdown-automaton context-free-language
假设您有一个依赖于将多个值压入堆栈的 PDA。具体来说,在具有栈顶符号 x 和输入符号 y 的状态 q 中,您将符号 x 替换为字符串 s(可能会或可能不会将 x 保持在堆栈上的位置)并更改为状态 q'。
此 PDA 可以转换为不依赖于同时将多个符号压入堆栈的PDA,如下所示:
请注意,如果我们从 DPDA 开始,则在此转换之后仍然有一个 DPDA:我们有不消耗输入的转换,但是,只要在任何给定时间只能进行一个转换,这对于 DPDA 来说是可以的.
弹出有点困难,但想法是一样的:
【讨论】: