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

📅  最后修改于: 2022-05-13 01:54:10.534000             🧑  作者: Mango

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

Myhill Nerode定理是语言理论的一个基本结果。该理论由John MyhillAnil Nerode在 1958 年证明。它用于证明语言 L 是否是正则的,也用于 DFA(Deterministic Finite Automata)中的状态最小化。

要理解这个定理,首先我们需要了解什么是不可区分性:

给定语言 L 和 x,y 是 ∑* 上的字符串,如果对于每个字符串z ∈ ∑*, xz, yz ∈ L 或 xz, yz ∉ L 则称 x 和 y 在语言 L 上是不可区分的。形式上,我们用以下符号表示 x 和 y 在 L 上是不可区分的:x ≡ L y。

L是一个等价关系,因为它是:

1)自反:对于所有字符串x,xz ∈ L 当且仅当 xz ∈ L 因此 x ≡ L x。

2)对称:假设 x ≡ L y。这意味着 xz, yz ∈ L 或 xz, yz ∉ L 对于所有 z ∈ ∑*。等效地,这意味着 yz,xz ∈ L 或 yz, xz ∉ L 对于所有 z ∈ ∑* 这意味着 y ≡ L x

3)传递性:假设 x ≡ L y 和 y ≡ L w。然后为了矛盾起见假设 x 和 w 不是不可区分的。这意味着必须存在一些 z 使得 xz 和 wz 中的一个恰好是 L 的成员。假设 xz 是 L 的成员而 wz 不是 L 的成员。xz ∈ L 意味着 yz ∈ L。wz ∉ L 意味着yz ∉ L。这是一个矛盾,因为 yz 不能既是 L 的成员又不是 L 的成员。因此 x ≡ L y 和 y ≡ L w ⇒ x ≡ L w。

因为 ≡ L是 ∑* 上的等价关系,所以 ≡ L将 ∑* 划分为不相交的集合,称为等价类。

迈希尔尼罗德定理:

当且仅当 ≡ L将 ∑* 划分为有限多个等价类时,一种语言是规则的。如果 ≡ L将 ∑* 划分为n 个等价类,则识别 L 的最小 DFA 恰好具有n个状态。

例子 :

证明 L = {a n b n | n ≥ 0} 不规则。

我们可以通过证明当 k ≠ i 时,a k和 a i可以通过 L 区分来证明 L 具有无限多个等价类。因此,对于 x = a k和 y = a i我们让 z = b k 。然后 xz = a k b k在语言中,但 yz = a i b k不是。因此,L 的每个等价类最多可以包含一个形式为 a i的字符串,因此必须有无限多个等价类。这意味着根据 Myhill Nerode 定理,L 不是正则的。

注意:为了证明语言 L 是否是正则也可以使用 Pumping Lemma 来完成,这与 Myhill Nerode 定理之间的区别在于,有一些非常规语言满足 Pumping Lemma 但没有这样的非正则语言满足 Myhill Nerode 定理。