【问题标题】:Q: Pumping Lemma Proof问:抽引理证明
【发布时间】:2019-05-10 19:05:32
【问题描述】:

我最近有一个任务,我必须决定语言是否是常规语言,并带有抽引引理。

L1 = {xy ∈ {a, b}∗ : |x| = |y|,要么 x 以 a 开头,y 以 b 结尾,要么 x 和 y 都不是所有 a 的字符串}。

L2 = {xy ∈ {a, b}∗ : |x| = |y|,x 包含子字符串 aa,y 以 b} 开头。

对于这两种语言,假设泵送长度为 n,我提供了字符串 s = (a^n)(b^n),因为它满足“|x| = |y|,x 以 a 开头,y 以 b 结尾” L1 的条件和“|x| = |y|, x 包含子串 aa 并且 y 以 b 开头”条件 L2。所以,s = x(y^i)z,我选择了 x = (a^n-1),y = a,z = b^n。对于任何偶数 i,x(y^i)z 中的总字母数是奇数,因此 s 不在 L1 和 L2 中,因为 |x|不能等于 |y|了。我只是想知道我做得对还是错过了什么?

【问题讨论】:

  • 你的证明并不完全正确。您不选择s = xyz 的分解。您需要证明对于 xyz 的所有分解 |xy| = n, |y|>=1,存在一些 i 使得 x(y^i)z 不在该语言中。您已经为一个分解展示了这一点 - 您需要为所有分解展示它。
  • 谢谢 Welbog,我现在明白了
  • The CS site 或许能更好地帮助你。
  • 感谢您考虑 Rishav :)

标签: computer-science automata automata-theory


【解决方案1】:

对于 L1,令 w = a^pbba^p。那么 w 在 L1 中,因为它可以分成相同长度的子串 x = a^pb 和 y = ba^p,它们都不是只有 a 的字符串。根据正则语言的引理,w = uvx where |uv| 0 并且 uv^kx 对于所有自然数 k >= 0 都在 L1 中。但是,uv 必须是从字符串开头开始的 a 字符串;向上抽气会导致结果字符串的前半部分 x 仅由 a 组成(假设字符串仍然是偶数长度的字符串;否则,字符串无论如何都不能在 L1 中);抽空将导致 y,即所得字符串的后半部分,仅由 a 组成。无论哪种方式,生成的字符串都不是该语言。这意味着 L1 不可能是正则的。

对于 L2,令 w = a^paba^p。向上抽气意味着生成的字符串将以 a(或具有奇数长度)开头,向下抽气也是如此。在前一种情况下,结果字符串的 y 将从 w 前半部分的 a 开始;在后者中,结果字符串的 y 将从 w 的后半部分的 a 开始。在任何情况下,我们都会得到一个不是该语言的字符串,所以 L2 也不是正则的。

【讨论】:

  • 谢谢帕特里克,已超过截止日期,但您的回答让我确信我给出了正确的答案,我的解决方案与您提供的解决方案完全相同:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
  • 2012-01-11
  • 2015-08-14
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
相关资源
最近更新 更多