为啥L=wxw^R| w, x 属于 a,b^+ 是正则语言

Posted

技术标签:

【中文标题】为啥L=wxw^R| w, x 属于 a,b^+ 是正则语言【英文标题】:Why L=wxw^R| w, x belongs to a,b^+ is a regular language为什么L=wxw^R| w, x 属于 a,b^+ 是正则语言 【发布时间】:2013-01-09 09:17:18 【问题描述】:

使用抽引引理,我们可以很容易地证明语言L1 = WcW^R|W ∈ a,b* 不是常规语言。 (字母表是a,b,c;W^R代表逆串W)

但是,如果我们将字符 c 替换为 "x"(x ∈ a,b+),例如 L2 = WxW^R| x, W ∈ a,b^+,那么 L2 是一种常规语言

你能给我一些想法吗?

【问题讨论】:

你到底想要什么?我建议你修改你的问题“你能给我一些想法吗?”更简洁和建设性的东西。 【参考方案1】:

语言中带有 |W| 的任何字符串> 1 可以解释为语言中的字符串,其中 |W| = 1。因此,如果字符串以相同的符号开头和结尾,则该字符串属于该语言。有两个符号:a 和 b。因此该语言等同于语言a(a+b)(a+b)*a + b(a+b)(a+b)*b。为了证明这一点,您应该形式化“如果 y 在 WxW 中,则 y 在 a(a+b)(a+b)*a + b(a+b)(a+b)*b 中;并且如果 y 在 a(a+b)(a+b)*a + b(a+b)(a+b)*b 中,则 y 在 WxW"中。

在另一种情况下它不起作用,因为 c 是一个固定符号,并且不能包含除了末尾的字符之外的所有字符。一旦您在示例中限制了“x”的长度,语言就会变得非常规。

【讨论】:

我原来的错误方法是-->我们一个特定的“x”,说x = abab,然后当我们应用pumping lemma时,结果是矛盾的。但这是一个错误的方法。我们不能指定任何字符串“x”并使用泵引理来证明它。【参考方案2】:

如果我们将字符 c 替换为 x 其中 (x ∈ a,b+),例如,L2 = WXWR| x, W ∈ a,b+,则 L2 是正则语言。

是的,L2 是常规语言 :)。

L2也可以写正则表达式。

语言 L2 = WXWR| x, W ∈ a,b+ 表示:

字符串应该以任何由ab组成的字符串开头,即W,并以反向字符串WR结尾。 注意: 因为 W 和 WR 是相反的,所以字符串以相同的符号 开始和结束(可以是 ab 并在中间包含ab任何字符串,即X。 (因为+X的长度变得大于一|X| >= 1

此类字符串的示例如下:

aabababa,如下:

   a    ababab    a  
  --   --------   --
   w     X        W^R  

也可以是:

bababbabb,如下:

   b    ababab    b
  --   --------   --
   w     X        W^R

查看W 的长度不是语言定义的约束。

所以任何字符串 WXWR 可以假定等于 a(a + b)+ab(a + b)+b

    a    (a + b)+   a
   ---   --------  ---
    W      X       W^R  

    b    (a + b)+   b
   ---   --------  ---
    W      X       W^R    

这种语言的正则表达式是:a(a + b)+a+b(a + b)+b

不要将WXWRWCWR 混用,它的X+ 使语言正常化。通过包含X(a + b)* 进行思考,我们可以对Wab有限选择(有限是常规)。

语言WXWR 可以说:如果以a 开头,以a 结尾,如果以b 开头,以b 结尾。所以相应地我们需要两个最终状态。

Q6 如果Wa Q5 如果Wb

IT 的 DFA 如下所示。

【讨论】:

绘制 DFA 见this answer 有点相似 这是否意味着我们不能只选择 x 字符串之一?正如你上面提到的例子,如果我们只选择 x = “ababab” 和 w = a^n,那么我们得到 wxw^R = (a^n)ababab(a^n)。但是,如果我们使用抽水引理,这个例子似乎失败了。这就是我感到困惑的部分。我们什么时候应该选择一个合适的带有抽引引理的例子。对于示例 wxw^R,我们无法修复 x,比如 x = 特定字符串,如果我们修复它,我们将无法通过抽引引理。 No W 只是单个符号 ab 我知道我为什么感到困惑。我们仍然可以将泵引理应用到第二种语言中,例如 xy^(2)z = a^(n+|y|) baaba^(n)(我们随机选择 x=baab)。我们注意到 xy^(2)z 也 = a^(n) a^(|y|)baab a^(n)。这仍然是L语言,没有矛盾。以前,我把这误认为是矛盾的。这与我们是否修复 x 无关。无论我们从 x 中选择什么字符串,我们仍然可以得到属于语言 L 的字符串。谢谢@Grijesh :-) @Patrick87 是的,抱歉我忘了添加两个循环。谢谢帕特里克!【参考方案3】:

问题是 W ∈ a,b^+ ,所以 a^n(a+b)a^n 应该是 L2 语言。现在没有这样的 DFA 将接受字符串 a^n(a+b)a^n,因为在接受 n 个 a 和 (a+b)^+ 之后,dfa 无法准确记住如何一开始它接受了很多,所以 L2 不应该是常规的......但是我搜索这个答案的每个地方都说它是常规的......这让我很烦恼

【讨论】:

以上是关于为啥L=wxw^R| w, x 属于 a,b^+ 是正则语言的主要内容,如果未能解决你的问题,请参考以下文章

51nod1563

网站登录简单验证码

第一阶段考试

6682. 2020.06.04省选模拟串在哪

6682. 2020.06.04省选模拟串在哪

N46期-第一阶段考试