使用 Myhill-Nerode 证明语言的非正则性

问题描述

证明在 {0,1} 上定义的语言,其中 x 的 0 数= x 的 1 数是不规则的。

解决方法

Myhill-Nerode 说在不可区分性关系上有许多等价类 w.r.t.一种常规语言,因为该语言的最小 DFA 中有状态。

两个字符串 w 和 x 无法区分 w.r.t.正则语言 L 如果对于任何 y 使得 wy 在 L 中,xy 也在 L 中;如果对于任何 z 使得 xz 在 L 中,wz 也在 L 中。换句话说,如果 w 和 x 可以将完全相同的一组字符串连接起来以获得 L 中的某个字符串,则它们是不可区分的。

对于你的语言,我们可以证明这个关系下等价类的数量是无限的。因为没有一个 DFA 有无限多个状态,所以这是一个矛盾;通过显示这一点,我们表明语言不规则。

在您的情况下,我们可以证明 0^n 与 0^m 是可区分的,对于 m > n,因为可以附加到 0^n 以获得您的语言中的字符串的最短字符串是 1^n,而可以附加到 0^m 以获得您语言中的字符串的最短字符串是 1^m,并且 m > n。因此,每个字符串 0^n 与其他每个字符串 0^m 是可区分的,n != m,因此有无限多个等价类。正如我们之前所说,这意味着语言不能是正则的。

如果我们发现存在有限数量的等价类并为它们命名,我们也会找到该语言的最小 DFA。只需为每个等价类添加一个状态并找出转换。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...