为啥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+ 表示:
字符串应该以任何由a
和b
组成的字符串开头,即W
,并以反向字符串WR结尾。
注意: 因为 W 和 WR 是相反的,所以字符串以相同的符号 开始和结束(可以是 a
或 b
)
并在中间包含a
和b
的任何字符串,即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)
+a
或 b(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
不要将WXW
R 与WCW
R 混用,它的X
与+
使语言正常化。通过包含X
即(a + b)*
进行思考,我们可以对W
即a
和b
有有限选择(有限是常规)。
语言WXW
R 可以说:如果以a
开头,以a
结尾,如果以b
开头,以b
结尾。所以相应地我们需要两个最终状态。
W
是a
Q5 如果W
是b
IT 的 DFA 如下所示。
【讨论】:
绘制 DFA 见this answer 有点相似 这是否意味着我们不能只选择 x 字符串之一?正如你上面提到的例子,如果我们只选择 x = “ababab” 和 w = a^n,那么我们得到 wxw^R = (a^n)ababab(a^n)。但是,如果我们使用抽水引理,这个例子似乎失败了。这就是我感到困惑的部分。我们什么时候应该选择一个合适的带有抽引引理的例子。对于示例 wxw^R,我们无法修复 x,比如 x = 特定字符串,如果我们修复它,我们将无法通过抽引引理。 NoW
只是单个符号 a
或 b
我知道我为什么感到困惑。我们仍然可以将泵引理应用到第二种语言中,例如 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^+ 是正则语言的主要内容,如果未能解决你的问题,请参考以下文章