无上下文语言(Pumping lemma a ^ n b ^ m c ^ min(n,m))

时间:2017-11-05 22:22:45

标签: regular-language proof context-free-language pumping-lemma

我正在努力解决以下问题。我应该使用泵浦引理。

证明{a ^ n b ^ m c ^ min(n,m)| m,n> = 0}不是无上下文。

1 个答案:

答案 0 :(得分:1)

考虑语言中的字符串class StorySerializer < ActiveModel::Serializer include Pundit attributes :id, :title, :summary, :published, :published_date, :created_at, :updated_at, :cover belongs_to :user has_many :chapters # ------------------------------------------------------------------------ # Note: need to use 'object.chapters' not 'self.chapters` below. # ------------------------------------------------------------------------ def chapters policy_scope(object.chapters) end end 。通过无上下文语言的抽象引理,该字符串可以写为uvxyz,以便:

  • | vxy | &LT; P
  • | VY | &GT; 0
  • u(v ^ n)x(y ^ n)z也是所有自然数的语言n

在我们的字符串中放置vxy有五种情况需要考虑:

  1. vxy完全在第一部分中。如果我们选择n = 0并且抽空,我们会失去一个,但是c的数量也需要减少以保留在语言中。这种vxy的放置不起作用。

  2. vxy跨越a和&b; s。选择n = 0并抽空将失去一个和b。由于c的数量并未相应减少,因此对vxy的选择也不起作用。

  3. vxy完全在b的部分。案例1中的相同论点也适用于此。

  4. vxy跨越了广告中的c。选择n&gt; 0和加注将添加b和c。现在c的数量将严格大于a的数量,这意味着这个选择也不起作用。

  5. vxy完全在c的部分。向任一方向泵送将使得c的数量与a的数量和b的数量不同,因此选择也会失败。

  6. 在我们的字符串中有五个可能放置vxy的地方,所有这些都失败了。这意味着我们的字符串不能根据抽取引理的要求编写,因此,我们的语言不能没有上下文。