📜  TOC中的基本定理(Myhill nerode theorem)(1)

📅  最后修改于: 2023-12-03 15:20:39.604000             🧑  作者: Mango

TOC中的基本定理(Myhill-Nerode theorem)

TOC(Theory of Computation, 计算理论)中的基本定理是指Myhill-Nerode定理。它是自动机的理论分支之一,用于确定一个语言是否为正则语言。它是从一个字符串被另一个字符串区分出来的方式和这种区分方式的不同数量来判断一个语言是否正则(即能否被正则表达式描述)。

定义

给定一个语言 $L \subseteq \Sigma^$,其中 $\Sigma$ 是一个字母表,对于任意两个字符串 $x, y \in \Sigma^$,如果对于所有的字符串 $z \in \Sigma^*$ 都有:

$$xz \in L \Leftrightarrow yz \in L$$

则称字符串 $x$ 和字符串 $y$ 是不可区分的(indistinguishable)。也就是说,从字符串 $x$ 和字符串 $y$ 开始,如果在接下来的输入中,一个最终的状态存在于 $L$ 中,那么另一个字符串也必须以同样的状态结束。

Myhill-Nerode 定理告诉我们,如果存在无限多个不可区分的字符串,则该语言一定不是正则语言。反之,如果存在有限个不可区分的字符串,则该语言是正则语言。

证明

Myhill-Nerode 定理的证明非常直观。我们可以用等价类的概念来证明它。

对于语言 $L$ 中的任意一个字符串 $s$,定义其等价类 $[s]$ 为所有 $L$ 中的字符串 $t$,使得对于任意 $z \in \Sigma^*$,有:

$$sz \in L \Leftrightarrow tz \in L$$

也就是说,一个字符串的等价类是所有无法被 $L$ 中的其他字符串所区分的字符串集合。可以证明,这些等价类的个数是唯一且有限的。

如果存在无限多个不可区分的字符串,则会有无限个等价类。因为有无限多个字符串是等价的,它们在等价类中一定是不同的。因此,$L$ 不可能是正则语言。

反之,如果只存在有限个不可区分的字符串,则可以从这些字符串的等价类中构造出正则表达式,表示 $L$ 中的所有字符串。这是因为,对于任意一个字符串 $s$,我们只需要知道它所属的等价类,就可以根据该等价类中的任意一个字符串的后缀集合的正则表达式构造出 $s$ 对应的正则表达式。

应用

Myhill-Nerode 定理在理论计算机科学中有着广泛的应用,例如在编译原理、自然语言处理等领域中。在编译原理中,Myhill-Nerode 定理可以用于确定一个正则表达式是否等价于一个 DFA,从而可以优化自动生成的有限自动机。在自然语言处理中,Myhill-Nerode 定理可以用于识别形式语言中的句子类型。

参考文献
  • Sipser, M. Introduction to the Theory of Computation. Cengage Learning, 2012.