微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是 L = {ww^Ru | w, u ∈ {0,1}+} 正则语言?

如何解决是 L = {ww^Ru | w, u ∈ {0,1}+} 正则语言?

让 L = {wwRu | w,u ∈ {0,1}+}。 L 是正规语言吗?注意 w,u 不能为空。

我试图通过抽水引理证明它不是正则语言,但是当 w = 0^p1^p,01^p,(01)^p 时我失败了。一旦我取 y = 0^p1^p,xyyz 将是 00.../11.../01^n0... 等。

而且我无法绘制其 DFA/NFA 或编写其正则表达式来证明它是正则语言。

那么 L 是正规的还是不正规的?如何证明?

解决方法

语言不规则,我们可以用 Myhill-Nerode 定理证明。

考虑字符串序列 01,0101,...,(01)^n,...

首先,请注意这些字符串都不在语言中。对于某些 m,任何这些字符串的任何前缀都是偶数长度的形式 (01)^2m,因此在序列中只是一个较短的字符串;将这样的前缀一分为二,要么两个子字符串都以 0 开头并以 1 结尾,要么第一个子字符串以 0 开头和结尾,第二个子字符串以 1 开头和结尾。在任何一种情况下,这些字符串都不是以下形式w(w^R)u 对于任何 w 或 u。

接下来,请注意,我们可以附加到这些字符串中的任何一个以生成语言中的字符串的最短可能字符串始终是其自身的反向后跟 0 或 1。也就是说,将 01 变成一个语言中的字符串,我们必须附加 100 或 101;没有更短的字符串我们可以附加到 01 以获得语言中的字符串。对于 0101 也是如此:10100 和 10101 是将 0101 转换为 L 中字符串的最短可能字符串。对于 (01)^n 形式的每个字符串,依此类推。

这意味着 (01)^n 形式的每个字符串对于目标语言 w(w^R)u 都是可区分的。 Myhill-Nerode 定理告诉我们,常规语言的最小 DFA 具有与不可区分关系下的等价类一样多的状态。因为对于我们的语言,我们有无限多个可区分的字符串,因此该语言的最小 DFA 必须具有无限多个状态。但是,一个 DFA 不能有无限多个状态;这是一个矛盾。这意味着我们的语言不能是正则的。

,

语言是常规的:

L = 00(0+1)+ + 11(0+1)+ + 0(11)+0(0 +1)+ + 1(00)+1(0+1)+

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?