【问题标题】:Show a language is context-free显示语言是上下文无关的
【发布时间】:2014-09-26 04:18:13
【问题描述】:

我被要求证明 ABA^R 形式的歌曲集是上下文无关的(其中 A^R 是 A 颠倒的)。我不知道如何表明语言是上下文无关的。

我们还没有专门研究过如何证明一种语言是上下文无关的,所以它不能太复杂。我唯一能想到的就是为该语言制作一个上下文无关的语法,但我真的不知道这是否足以证明它是上下文无关的,或者我如何为一组歌曲制作语法。

【问题讨论】:

  • 这里有一个答案:stackoverflow.com/questions/3510109/… 另请注意,创建上下文无关语法可以很好地表明语言是上下文无关的。
  • 您不能使用抽引引理来显示语言是上下文无关的。它只能用来表明它不是。有满足抽水引理的非上下文无关语言。
  • A 和 B 是字符串集还是什么?
  • @NuriTasdemir 是的,我猜。这就是我掌握的所有信息。我想我会尝试为它制定一个语法。
  • 使用push down automata。但是A^R 是什么意思是A 反向。你能说得更具体些吗

标签: computer-science context-free-grammar


【解决方案1】:

假设 A 和 B 是一组字符串并且它们是上下文无关的,那么对于语言 A 和 B 来说存在上下文无关文法,比如 G_A 和 G_B。您可以很容易地从 G_A 获得语言 A^R 的上下文无关语法。只需反转语法规则的右侧,瞧,您就有了 A^R 的语法。

如果 G_A 的起始变量是 S_A,G_B 是 S_B,G_A^R 是 S_A' 那么最终的文法将是这些文法的组合(三种文法的每个变量都应该唯一命名)和新的开始变量和新规则说明

S -> S_A S_B S_A'

【讨论】:

  • 在从您的 S 派生一个句子(“歌曲”)时,S_A' 不受限于派生一个与 S_A 派生的相反的短语,我认为这是原始问题所需要的。
  • @MichaelDyck S_A 从 A 派生一个字符串,而 S_A' 从 A^R 派生一个字符串。这两个字符串可能不是彼此相反的,这是故意的。这就是OP的要求。如果这些应该是相反的(我认为你是这样想的)那么问题应该被问为 L = {xyx^R| x \in A AND y \in B}
猜你喜欢
  • 1970-01-01
  • 2016-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
  • 2014-11-07
相关资源
最近更新 更多