computation-theory - 使用 Myhill-Nerode 证明语言的非正则性
问题描述
证明在 {0,1} 上定义的语言,其中 x 的 0 的数量 = x 的 1 的数量是不规则的。
解决方案
Myhill-Nerode 说,对于一种常规语言,在不可区分关系上的等价类与该语言的最小 DFA 中的状态一样多。
两个字符串 w 和 x 在常规语言 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。只需为每个等价类添加一个状态并找出转换。
推荐阅读
- c++ - 我相信 [dcl.typedef]/1 有缺陷,否则我错过了什么?
- pytorch - 用于预测字符的 LSTM:训练循环中的单元状态和隐藏状态
- python - 将 Pandas 数据框转换为每列字典列表的最佳方法
- sql - 两个日期之间的完整日历月
- python - 直方图中的断轴和 Python 中的概率分布
- ios - 如何将核心数据对象分组为 UITableView 的数据源
- node.js - Alexa Smart Home Skill - 需要帮助才能发出 http 请求
- javascript - 在 JavaScript/ES6/ES7 中迭代数组中的嵌套值
- html - 采用柔性设计的固定头
- input - 在另一个字段中使用下拉输入作为占位符