【问题标题】:Prove that the set of regular languages is a proper subset of the set of the context-free languages证明正则语言集是上下文无关语言集的真子集
【发布时间】:2011-06-06 20:58:07
【问题描述】:

我正在复习(不是家庭作业)一些计算理论并遇到了这个问题:

你如何证明正则语言集是上下文无关语言集的真子集。

现在我知道一种语言是正规的,如果它被有限自动机接受。

而且我知道一种语言是上下文无关的,如果它被下推接受 自动机。

但我不确定是什么解决方案。

【问题讨论】:

    标签: language-theory computation-theory


    【解决方案1】:

    任何 DFA 都相当于一个 PDA,它碰巧从不将任何东西压入其堆栈,因此所有常规语言也是上下文无关的。更正式地说:

    DFA 被定义为一个 5 元组 (Σ,S,s0,δ,F),由输入字母表、状态集、 开始状态、转换表和一组最终(接受)状态。

    PDA 被定义为一个 7 元组,包括 DFA 的所有元素,外加两个附加参数:Γ(堆栈字母表)和 Z(初始堆栈符号)。 PDA 转换表与 DFA 转换表有些不同:每个转换可以依赖于 输入符号和当前堆栈符号,并且转换可以推入或弹出 从堆栈中。

    因此,通过引入由单个符号组成的虚拟堆栈字母表,映射 DFA 转换表是微不足道的(尽管写出来有点烦人和冗长!) (state, input) -> state 到等效的 PDA 转换表 (state, input, stack) -> (state, stack)

    为了完成真子集关系的证明:存在上下文无关的语言,但不是正则的,因此正则语言形成了上下文无关语言的一个真子集。示例:由平衡括号组成的字符串语言。

    【讨论】:

    • 谢谢 - 你对这个声明有任何参考吗:任何 DFA 都相当于一个 PDA,它碰巧从不将任何东西压入堆栈,因此所有常规语言也是上下文无关的?
    • @David:我稍微扩展了我的答案,以展示如何构建更正式的证明。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 2019-09-21
    • 2020-07-11
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    相关资源
    最近更新 更多