📜 [原文1]
$L_{1}=\left\{0^{n} 1^{m} \mid n \neq m\right\}$。这可以通过所有三种方法证明是非正则的,尽管在这种情况下,泵引理是最复杂的,而其他方法更简单。
这段话首先定义了一个语言 $L_1$。这个语言由一串 0 后面跟着一串 1 组成。它的核心约束条件是:0 的数量(表示为 $n$)不等于 1 的数量(表示为 $m$)。
然后,它提出了一个论点:语言 $L_1$ 是一个非正则语言。正则语言是指可以用有限自动机(DFA 或 NFA)识别的语言。非正则语言则不能。直观地想,有限自动机的“记忆”是有限的,它无法记住一个任意大的数字。而要判断 $n$ 是否等于 $m$,机器需要精确地“计数”0 的数量,然后用这个计数值去比对 1 的数量。当 $n$ 和 $m$ 可以是任意大的数时,这超出了有限自动机的能力范围。
最后,这段话预告了将使用三种不同的数学工具来证明 $L_1$ 的非正则性:
它还特别指出,对于 $L_1$ 这个特定的例子,泵引理的证明过程最为复杂,而另外两种方法则相对直接和简单。
让我们看几个字符串的例子来理解 $L_1$:
本节介绍了待证明的语言 $L_1 = \{0^n 1^m \mid n \neq m\}$,并指出它是一个非正则语言。同时,它预告了将要使用的三种证明方法(泵引理、封闭性、Myhill-Nerode定理),并提示了泵引理在本例中的复杂性。
这部分的存在是为了引入一个典型的非正则语言案例,并以此为载体,展示和对比不同的证明技术。它作为一个引子,为后续详细的数学证明铺平了道路,并引导读者思考不同证明方法的优劣和适用场景。
要判断一个字符串是否在 $L_1$ 中,我们需要一个计数器。当读到 0 时,计数器增加;当读到 1 时,计数器减少。如果读完字符串后,计数器的值不为零,则字符串在 $L_1$ 中。一个有限自动机的状态数量是有限的,它无法表示一个无限增长的计数值。因此,它无法处理任意大的 $n$ 和 $m$,也就无法可靠地判断 $n \neq m$。
想象一个天平,左边放 0,右边放 1。我们的任务是检查天平最后是否不平衡。我们有一堆 0 和一堆 1,必须先把所有的 0 都放上去,然后再把所有的 1 都放上去。一个有限自动机就像一个眼神不好、只有有限记忆力的人。如果只给他几个砝码(状态),他可以记住“左边比右边多/少 1 个或 2 个”。但如果给他成千上万个 0,他无法记住精确的数量,也就无法在之后放 1 的时候判断最终是否平衡。因此,他无法完成这个任务。
📜 [原文2]
泵引理证明:
首先,我们展示一种应用泵引理的错误方式(一次失败的尝试)。
给定 $p$ 是泵引理保证的泵长度,假设我们选择简单的字符串 $w=0^{p} 1^{p+1}$。
根据泵引理,我们可以将 $w$ 写为 $w=x y z$,其中:
通过我们对 $w$ 的选择,我们知道对于某个 $k>0$,$y=0^{k}$。当我们对子串 $y$ 进行 $i$ 次泵送时,这会引入 $i-1$ 个额外的 $y$ 副本(因为原始单词已经包含了一个 $y$ 副本)。因此,字符串变为 $x y^{i} z=0^{p+k(i-1)} 1^{p+1}$。为了得出 $L_{1}$ 不是正则的结论,我们需要证明存在 $i$ 使得生成的字符串不在该语言中,即 $p+k(i-1)=p+1$。如果我们知道 $k=1$,我们可以选择 $i=2$。然而,我们不能假设 $k=1$ —— 我们只知道 $1 \leq k \leq p$。因此,如果例如 $k=2$,我们得到 $p+k(i-1) \neq p+1$(无论我们选择什么 $i$),所以该字符串仍然具有 $0^{n} 1^{m}$ 的形式且 $n \neq m$,这意味着它仍在语言中。
因此,泵送这个选择的字符串不会导致与泵引理产生矛盾,所以让我们尝试一个不同的字符串选择。
这部分内容是一个教学性的演示,它展示了一个在使用泵引理时常见的错误。泵引理是一个反证法工具,其逻辑是:
这段文字的精髓在于,它选择了一个看似合理的字符串 $w=0^p 1^{p+1}$,并展示了为什么这个选择是失败的。
因为我们必须找到一个对所有可能的分割都有效的矛盾,而对于 $w=0^p 1^{p+1}$,我们至少有一种分割(例如 $k=2$)无法导出矛盾,所以这次证明尝试失败了。
这部分通过一个具体的反例,生动地展示了在使用泵引leem时选择初始字符串 $w$ 的重要性。一个不明智的选择(如 $w=0^p 1^{p+1}$)可能导致无法在所有情况下都制造出矛盾,从而使证明失败。它强调了证明者必须考虑对手(引理)所有可能的合法分割。
此处的目的不是为了证明,而是为了教学。它通过展示一个常见的错误,帮助学生更深刻地理解泵引理证明的对抗性本质,并强调了选择一个“好”的字符串 $w$ 的必要性。这个“好”的字符串应该具有某种结构,使得无论对手如何在前 $p$ 个字符内划分 $y$,我们都能通过泵送来破坏语言的属性。
我们想让天平平衡。我们有一个初始不平衡的天平($p$ 个 0 和 $p+1$ 个 1)。对手从左边的 0 中拿走一小把 $k$ 个($y=0^k$)。现在我们有能力把这一小把 0 加回去任意多次(泵送 $i$ 次)。我们的目标是通过加 0,让左边的总数等于右边的 $p+1$。如果对手拿走 $k=1$ 个,我们加一次($i=2$)就够了。但如果对手拿走 $k=2$ 个,我们无论加多少次($i$ 必须是整数),0 的总数都是偶数增量,永远无法从 $p$ 变成 $p+1$。我们的策略失败了。
想象你在玩一个游戏,目标是让一根绳子断掉。绳子 ($w$) 的初始状态是 $0^p1^{p+1}$。对手(引理)在绳子的前 $p$ 段(都是 0)中选择一小段 $y=0^k$ 作为“薄弱点”。你(证明者)可以通过复制这个薄弱点 $i$ 次来“拉伸”绳子。绳子断掉的条件是 0 的数量等于 1 的数量。如果你选择的绳子 $w=0^p1^{p+1}$,对手选了 $y=00$ ($k=2$) 作为薄弱点。你每次拉伸,增加的都是偶数个 0,0 的总数永远是 $p, p+2, p+4, ...$ 或者 $p-2, p-4, ...$。你永远无法让 0 的总数精确地等于 $p+1$。所以这条绳子,在这种情况下,你拉不断。你需要换一根初始设计得更好的绳子。
📜 [原文3]
相反,让我们选择字符串 $w=0^{p} 1^{p+p!}$。这个字符串在 $L_{1}$ 中,因为 $p \neq p+p!$。
现在,我们应用泵引理。对于任何将 $w=x y z$ 写入的方式,其中 $|x y| \leq p$ 且 $|y|>0$,必须满足对于某个 $k>0$,$y=0^{k}$。目标是泵送 $y$ 以实现相同数量的 0 和 1。如果我们泵送 $y$ $i$ 次并考虑 $w^{\prime}=x y^{i} z=0^{p+(i-1) k} 1^{p+p!}$,我们必须选择 $i$ 使得:
这是可行的,因为 $p!$ 可以被任何 $k>0$ 整除,这确保了通过选择合适的 $i$(即 $i=p!/ k+1$),我们可以使 0 和 1 的数量相等,即生成的字符串不再属于 $L_{1}$。因此,我们得出结论 $L_{1}$ 不是正则的。$\square$
这是泵引理证明的正确版本。这里的关键在于选择了一个更巧妙的字符串 $w$。
这与泵引理的第三条规则(所有 $xy^iz$ 都必须在 $L_1$ 中)产生了矛盾。
因此,我们最初的假设“$L_1$ 是正则的”是错误的。结论:$L_1$ 非正则。
这个推导出的 $i$ 就是我们用来制造矛盾的武器。
通过巧妙地选择字符串 $w=0^p 1^{p+p!}$,我们利用了阶乘的性质。无论泵引理如何在前 $p$ 个 0 中选择子串 $y=0^k$,我们总能计算出一个整数泵送次数 $i = p!/k + 1$,使得泵送后的字符串中有 $p+p!$ 个 0,恰好等于 1 的数量。这使得新字符串 $xy^iz$ 不在 $L_1$ 中,从而与泵引理的结论相矛盾,证明了 $L_1$ 非正则。
这部分旨在展示一个泵引理的“标准”且成功的应用。它与前一部分的失败尝试形成鲜明对比,突出了构造一个能够“抵抗”对手所有合法选择的字符串 $w$ 的重要性。$p!$ 的使用是解决这类“计数”问题的经典技巧。
我们还是想让天平平衡。这次我们更有策略。我们放了 $p$ 个 0 在左边,放了 $p+p!$ 个 1 在右边。对手还是从左边的 $p$ 个 0 里拿走一小把 $k$ 个。我们的目标是把 0 的数量从 $p$ 变成 $p+p!$,也就是说,我们需要增加 $p!$ 个 0。我们手上有 $k$ 个 0 一把的砝码,需要加多少次才能凑够 $p!$ 个?答案是 $p!/k$ 次。因为 $k$ 是 $1$ 到 $p$ 之间的数,$p!$ 保证能被 $k$ 整除。所以我们总能凑出整数次。加上原来的一次,总共泵送 $i=p!/k + 1$ 次,天平就精确地平衡了。
想象一条非常长的绳子 ($w = 0^p 1^{p+p!}$),它的“断裂点”是 0 和 1 数量相等。对手在前 $p$ 段中截取了一小段 $y=0^k$ 作为“可拉伸”的部分。我们知道,要让绳子断裂,我们需要增加 $p!$ 个 0。我们每次拉伸,会增加 $k$ 个 0。因为 $p!$ 这个数字的特性,它就像一个“万能胶水”,无论你撕下的碎片 $k$ 有多大(在 $1$ 到 $p$ 范围内),$p!$ 都能被 $k$ 整除。所以我们总能精确地计算出需要拉伸 $p!/k$ 次,来补足 $p!$ 个 0 的长度,使绳子达到断裂点。我们的策略成功了。
📜 [原文4]
为了导出矛盾,假设语言 $L_{1}=\left\{0^{m} 1^{n} \mid m \neq n\right\}$ 是正则的,那么,我们知道它的补集 $L_{1}^{c}$ 也是正则的,因为正则语言在补运算下是封闭的。我们考虑以下两个语言:$L_{\text {eq }}=\left\{0^{n} 1^{n} \mid n \geq 0\right\}$。这是具有相等数量 0 和 1 的字符串语言,我们从课堂上知道它不是正则的。另一方面,$L_{\text {all }}=\left\{0^{m} 1^{n} \mid m, n \geq 0\right\}$,它包含所有由任意数量的 0 后跟任意数量的 1 组成的字符串,是正则的(同样,我们在课上证明了这一点)。
我们可以将 $L_{\text {eq }}$ 表示为
由于正则语言在交集运算下是封闭的,$L_{\text {eq }}$ 也将是正则的,但我们知道它不是,因此这导致了矛盾。因此,我们的假设是不正确的,$L_{1}$ 不可能是正则的。
这个证明方法比泵引理更简洁,它利用了正则语言的封闭性质。封闭性意味着,对正则语言进行某些运算(如并集、交集、补集、连接、星号闭包等),其结果仍然是正则语言。
该证明的逻辑是一个经典的反证法:
让我们通过逻辑流程来看:
[易錯点与边界情况]
该证明通过反证法,假设 $L_1$ 是正则的。然后利用正则语言在补集和交集运算下的封闭性,结合一个已知的正则语言 $L_{all}$,构造出了著名的非正则语言 $L_{eq}$。这导出了“$L_{eq}$ 既是正则的又是非正则的”这一矛盾,从而证明了最初的假设是错误的,$L_1$ 必须是非正则的。
这部分展示了一种比泵引理更优雅、更强大的证明技巧。它不涉及复杂的字符串构造和分类讨论,而是站在一个更高的抽象层次上,通过语言之间的代数关系来推导结论。这体现了数学中“利用已知结果证明新问题”的思想。
这就像在证明“独角兽($L_1$)”存在。
想象有一个“正则语言俱乐部”,这个俱乐部有两条铁律:
我们想知道 $L_1$ 这个团体有没有资格入会。我们假设它有。
📜 [原文5]
我们只需要证明在 $\sim_{L_{1}}$ 下存在無限多个等价类。我们声称字符串 $0^{q}, q \geq 0$ 都是彼此可区分的。设 $q \neq r$,我们只需要证明 $0^{q} \not \nsim_{L_{1}} 0^{r}$。取 $z=1^{q}$ 作为区分扩展。注意 $0^{q} 1^{q} \notin L_{1}$ 但 $0^{r} 1^{q} \in L_{1}$。因此,对于所有 $p, r \geq 0$,$0^{p} \not \sim_{L_{1}} 0^{r}$,所以 $\sim_{L_{1}}$ 有无限多个等价类。因此,根据 Myhill-Nerode,$L_{1}$ 不是正则的。
这是第三种证明方法,使用了 Myhill-Nerode 定理。这个定理提供了一个判断语言是否正则的充要条件。
Myhill-Nerode 定理的核心思想是等价关系 $\sim_L$。对于一个语言 $L$,如果两个字符串 $x$ 和 $y$ 在后面无论追加任何相同的字符串 $z$ 后,得到的新字符串 $xz$ 和 $yz$ 的“命运”总是相同(即要么都属于 $L$,要么都不属于 $L$),我们就说 $x$ 和 $y$ 是不可区分的,记为 $x \sim_L y$。
这个证明的策略是:找到一个无限的字符串集合,并证明这个集合中的任意两个不同的字符串都是相互可区分的。如果能做到,就说明每个字符串都至少属于一个不同的等gaoj类,从而证明等价类的数量是无限的。
Myhill-Nerode 证明通过构造一个无限的字符串集合 $\{0^q \mid q \ge 0\}$,并证明其中任意两个不同的元素 $0^q$ 和 $0^r$ 都是可区分的(通过追加后缀 $1^q$),来表明语言 $L_1$ 存在无限个等价类。根据 Myhill-Nerode 定理,这直接意味着 $L_1$ 不是一个正则语言。
这部分展示了证明非正则性的最强大的方法。Myhill-Nerode 定理不仅能证明非正则性,还能揭示语言内在的结构复杂性(即需要多少“记忆”/状态)。这个证明比泵引理更根本,因为它直接触及了正则语言与有限状态之间的核心关系。
想象一个自动机是一个信息处理节点。当它读完一个前缀 $x$ 后,它进入某个状态。这个状态就是它对 $x$ 的“全部记忆”。如果两个前缀 $x$ 和 $y$ dẫn đến同一个状态,意味着自动机认为它们是“等价的”,即它无法区分 $x$ 和 $y$。我们的证明显示,对于 $L_1$,前缀 0、00、000... 每一个都必须被自动机记作不同的东西,因为它对后续的输入(比如 1、11、111...)有不同的反应需求。因此,需要无限种不同的记忆,即无限个状态。
把自动机的状态想象成一个个不同颜色的桶。每读完一个前缀字符串,你就把这个字符串放进一个桶里。规则是:如果两个字符串放进了同一个桶,那么无论你往这两个字符串后面接上任何相同的尾巴,它们最终的“成品”必须同属于 $L_1$ 或同不属于 $L_1$。
我们的证明找到了一个无限的字符串集合 $S=\{\epsilon, 0, 00, \dots\}$。我们证明了,你不能把 00 和 000 放在同一个桶里。为什么?因为如果你把尾巴 11 接上去,00 11 (不在$L_1$) 和 000 11 (在$L_1$) 命运不同,这违反了同桶规则。同理,任何两个 $0^q$ 和 $0^r$ ($q \neq r$)都不能放在同一个桶里。因此,你需要无限个桶来装下集合 $S$ 中的所有字符串。而一个有限自动机只有有限个桶,所以它无法胜任。
📜 [原文6]
$L_{2}=\left\{w w \mid w \in\{a, b\}^{*}\right\}$
泵引理证明:
为了导出矛盾,假设 $L_{2}$ 是正则的,并设 $p$ 为泵长度。
我们选择字符串 $w=a^{p} b a^{p} b$,它在该语言中。根据泵引理,$w$ 可以被分成 3 部分,$w=x y z$,使得 $|x y| \leq p$,$|y|>0$,且对于所有 $i \geq 0$,$x y^{i} z \in L_{2}$。由于 $w$ 的前 $p$ 个字符是 $a$,所以必须有 $y=a^{k}$,其中 $1 \le k \le p$(原文中 $0 \le k \le p$ 是一个小笔误,应为 $1 \le k \le p$ 因为 $|y|>0$)。
设 $i=3$。新的字符串是 $w^{\prime}=x y^{i} z=a^{p+2 k} b a^{p} b$,它不在该语言中。我们得出了一个矛盾,因此 $L_{2}$ 不是正则的。
这部分证明语言 $L_2 = \{ww \mid w \in \{a, b\}^*\}$ 是非正则的。这个语言由任意一个 $\{a, b\}$ 上的字符串 $w$ 和它自身的精确拷贝连接而成。例如 abab, aaaa, ababaabab 都在 $L_2$ 中。直觉上,为了验证一个字符串是否为 $ww$ 形式,机器需要读完前半部分,记住它,然后精确匹配后半部分。这需要无限的记忆力。
该证明使用了泵引理。
该证明通过精心构造字符串 $w=a^p b a^p b$,利用泵引理对字符串前部的泵送操作,破坏了 $w$ 原有的 $u u$ 对称结构。泵送后的字符串 $a^{p+2k} b a^p b$ 不再能表示为两个相同子串的连接,从而证明了 $L_2$ 非正则。
这部分展示了如何应用泵引理来证明一个需要“自我匹配”的语言的非正则性。关键在于选择的字符串要包含一个“锚点”(如此处的 $b$),使得对一部分的修改能被轻易地检测出来。
[直觉心z智模型]
自动机需要验证字符串的后半部分是否与前半部分完全相同。这意味着,当它读完前半部分 $w$ 时,它必须以某种方式“完整地记住” $w$ 的全部信息。由于 $w$ 可以是任意长、任意复杂的字符串,而有限自动机的状态(记忆)是有限的,所以它不可能记住所有可能的 $w$。因此,它无法完成这个任务。
想象你在检查一长串DNA序列是否是“回文双螺旋”结构(即 $ww$ 的形式)。你是一个只有有限视力范围(状态有限)的检查员。你从头开始看,当你看到中点时,你必须回头看,或者已经记住了前半段的所有细节,才能和后半段一一比对。如果DNA序列非常非常长(超过你的记忆极限),你肯定会忘记前半段的内容,从而无法做出准确的判断。$L_2$ 就是这样的语言,它要求无限的记忆力。
📜 [原文7]
考虑 $\{a, b\}^{*}$ 中两个不相等的字符串 $w \neq s$。设 $z=w$,使得 $w z=w w \in L$ 且 $s w \notin L$。我们已经为 $w$ 和 $s$ 找到了一个区分扩展,这意味着 $w$ 和 $s$ 对于 $L_{2}$ 是成对可区分的。
由于 $w$ 和 $s$ 是任意选择的,任何一对不相等的字符串都必须是成对可区分的。因此,每个字符串必须形成它自己的等gaoj类。因为有无限多个字符串,所以必须有无限多个等gaoj类。根据 Myhill-Nerode 定理,这意味着 $L_{2}$ 不是正则的。
这个证明比泵引理更直接,也更深刻。它直接攻击了正则语言有限等价类的核心性质。
Myhill-Nerode 证明通过展示任意两个不同的字符串 $w$ 和 $s$ 都可以被后缀 $z=w$ 所区分,断定 $L_2$ 的每一个字符串都构成一个独立的等价类。由于存在无限多个字符串,因此存在无限多个等价类,根据Myhill-Nerode 定理,$L_2$ 非正则。
这部分再次展示了 Myhill-Nerode 定理的强大和优雅。它提供了一个比泵引理更简洁、更具洞察力的视角来理解为什么 $L_2$ 是非正则的。它直接揭示了该语言的内在复杂性:需要区分无限多种不同的前缀。
一个 DFA 在读完一个前缀 $w$ 后,必须进入一个状态,这个状态封装了所有关于 $w$ 的“未来可能性”的信息。对于 $L_2$ 来说,这个状态必须能唯一地识别出 $w$ 本身,以便在未来遇到 $w$ 的拷贝时进行匹配。如果两个不同的前缀 $w$ 和 $s$ 进入了同一个状态,意味着 DFA 已经“忘记”了它们的区别。但我们的证明显示,可以通过追加 $w$ 来“揭穿”DFA的遗忘:$ww$ 会被接受,$sw$ 会被拒绝。所以 $w$ 和 $s$ 必须进入不同的状态。因为有无限个不同的 $w$,所以需要无限个状态。
想象一个配钥匙的商店。每个前缀字符串 $w$ 是一把独特的钥匙。要打开 $L_2$ 这扇门,你需要插入两把完全一样的钥匙,一把接一把 ($ww$)。DFA 是一个锁匠,他只有一个小盒子(有限状态)来存放他刚刚检查过的第一把钥匙的“模具”。
我们的证明说:任何两把不同的钥匙,比如 ab 和 aba,都必须制作出不同的模具。为什么?因为如果锁匠为它们制作了同一个模-A,然后我们递给他第二把钥匙 ab。对于 ab+ab,锁匠用模具-A比对,通过了。对于 aba+ab,锁匠也用同一个模具-A去比对,他也必须说通过(因为他已经忘了第一把是ab还是aba了)。但abaab是错的钥匙组合!所以,为了不出错,锁匠必须为每一把独一无二的钥匙都准备一个独一无二的模具。世界上有无限种钥匙,所以锁匠需要无限个模具。他的小盒子装不下,所以他开不了这家店(DFA无法识别 $L_2$)。
📜 [原文8]
$L_{3}=\left\{1^{2^{n}} \mid n \geq 0\right\}$
泵引理证明:
为了导出矛盾,假设 $L_{3}$ 是正则的。设 $p$ 为泵长度。
考虑 $w=1^{2^{p}}$。$w \in L_{3}$ 且其长度为 $|w|=2^{p}>p$(这可以通过归纳法对任何 $p>0$ 进行证明)。根据泵引理,$w$ 可以被分成 3 部分,$w=x y z$,使得 $|x y| \leq p$,$|y|>0$,且对于所有 $i \geq 0$,$x y^{i} z \in L_{3}$。那么这些部分必须具有以下形式:$x=1^{a}$,$y=1^{b}$ 和 $z=1^{c}$,其中 $a+b+c=2^{p}$,$a+b \leq p$ 且 $b>0$。
设 $i=2$。新的字符串是 $w^{\prime}=x y^{i} z=1^{a} 1^{2 b} 1^{c}$。因此,$\left|w^{\prime}\right|=a+2b+c = (a+b+c)+b = 2^{p}+b$。我们知道 $b>0$,并且我们知道 $b \leq a+b \leq p$,所以 $b \leq p$。因此 $2^p < |w'| = 2^p+b \le 2^p+p$。因为 $p \ge 1$, $p < 2^p$ (对于 $p \ge 1$)。所以我们有 $2^p+p < 2^p+2^p = 2 \cdot 2^p = 2^{p+1}$。
综合起来,$2^{p}<\left|w^{\prime}\right|<2^{p+1}$。由于 $w^{\prime}$ 的长度严格地介于两个连续的 2 的幂之间,所以 $w^{\prime}$ 的长度不可能是 2 的幂,因此 $w^{\prime}$ 不在该语言中。这是一个矛盾,所以 $L_{3}$ 不是正则的。
(原文中不等式的推导可以更清晰地写作这样)
这部分证明语言 $L_3 = \{1^{2^n} \mid n \ge 0\}$ 是非正则的。这个语言的字符串只由 '1' 组成,其长度必须是 2 的幂 (e.g., $1^1, 1^2, 1^4, 1^8, \dots$)。
证明使用了泵引理。
该证明通过选择一个长度为 2 的幂($2^p$)的字符串,利用泵引理增加其长度。增加的长度 $b$ 被限制在 $1 \le b \le p$。由于从一个 2 的幂 $2^p$ 到下一个 $2^{p+1}$ 的增长速度远远超过 $p$,泵送后的字符串长度 $2^p+b$ 会“卡”在两个连续的 2 的幂之间,从而使其不属于 $L_3$,导出矛盾。
这部分展示了如何处理长度具有指数增长规律的语言。它强调了分析“增长差距”的重要性。语言中合法字符串的长度 ($2^n$) 之间的间隔增长得非常快,而泵引理能带来的长度变化 ($b \le p$) 却是线性的,跟不上指数增长的步伐。
一个有限自动机无法进行乘法或指数运算。它只能通过循环来“加法”地计数。$L_3$ 的字符串长度序列是 $1, 2, 4, 8, 16, \dots$。这些数字之间的间隔越来越大。一个 DFA 循环一次(对应泵送一次)只会增加固定的长度 $k$。它无法实现这种“下一次的跳跃距离是上一次的两倍”的指数级增长模式。
想象你在一条数轴上跳跃,但你只能落在标有 $2^n$ 的石头上(1, 2, 4, 8, ...)。你有一双“泵引理”鞋,它允许你每次跳跃后,再额外向前“挪”一小步,挪动的距离 $b$ 是有限的($b \le p$)。
你现在站在了 $2^p$ 这块石头上。下一块合法的石头在 $2^{p+1}$。两者之间的距离是 $2^p$。你的鞋子最多只能让你额外挪 $p$ 步。只要 $p$ 小于 $2^p$ (对于 $p \ge 1$ 总是成立),你就无论如何也挪不到下一块石头 $2^{p+1}$ 上。你只会掉进 $2^p$ 和 $2^{p+1}$ 之间的空隙里。这就产生了矛盾。
📜 [原文9]
只要证明 $L_{3}$ 中的任何两个字符串都有一个区分扩展就足够了,因为有无限多个这样的字符串,所以这意味着有无限数量的等价类。
对于任何非负整数 $m<n$,设 $x=1^{2^{m}}$ 且 $y=1^{2^{n}}$。字符串 $z=1^{2^{m}}$ 是一个区分扩展。我们可以看到 $x z=1^{2^{m}+2^{m}}=1^{2^{m+1}} \in L_{3}$ 而 $y z=1^{2^{n}+2^{m}}$。但是 $m<n$ 意味着 $2^{m}<2^{n}$ 且 $2^{m}+2^{n}<2^{n}+2^{n}=2^{n+1}$。因为 $2^{n}<|y z|= 2^{m}+2^{n}<2^{n+1}$,所以 $y z$ 不在该语言中。由于 $x z \in L_{3}$ 且 $y z \notin L_{3}$,它们对于 $L_{3}$ 是成对可区分的。
这对 $L_{3}$ 中的所有字符串对都成立,因此在 $\sim_{L_{3}}$ 下必须有无限多个等价类。那么根据 Myhill-Nerode 定理,$L_{3}$ 不是正则的。
这个证明再次使用了 Myhill-Nerode 定理。策略是选取 $L_3$ 语言自身这个无限集合,并证明其中任意两个不同的字符串都是可区分的。
Myhill-Nerode 证明通过选取 $L_3$ 语言自身作为无限集合,并证明其中任意两个不同的字符串 $1^{2^m}$ 和 $1^{2^n}$ 都可以被后缀 $1^{2^m}$ (取较短者) 所区分。这表明 $L_3$ 存在无限个等价类,因此根据 Myhill-Nerode 定理,$L_3$ 非正则。
这部分展示了 Myhill-Nerode 定理在处理具有特定数学结构(如 2 的幂)的语言时的威力。它再次说明,该定理能从“需要多少记忆”的角度,对语言的正则性给出深刻的判断。
DFA 在读完前缀 $1^{2^m}$ 后,需要进入一个状态。这个状态必须“知道”它需要再来 $2^m$ 个 '1' 才能达到下一个合法长度 $2^{m+1}$。而当它读完前缀 $1^{2^n}$ 后,它需要进入另一个状态,这个状态必须“知道”它需要再来 $2^n$ 个 '1' 才能达到 $2^{n+1}$。由于对于每个不同的 $m$,所需的“补全”数量都不同,所以机器必须为每个 $1^{2^m}$ 都准备一个独一无二的状态。因此需要无限个状态。
想象你在爬一座梯子,但梯子的横档(合法长度)分布在高度 $1, 2, 4, 8, 16, \dots$ 的位置。你 ($x=1^{2^m}$) 正站在高度 $2^m$ 的横档上。你的朋友 ($y=1^{2^n}$) 站在更高的 $2^n$ 横档上。现在,你们俩都必须再向上爬同样的高度 $z=2^m$。
你爬了 $2^m$ 高度后,总高度是 $2^m+2^m=2^{m+1}$,你正好到达了上一级横档,安全!
你的朋友爬了 $2^m$ 高度后,总高度是 $2^n+2^m$。因为他本来就比你高 ($n>m$),他现在的位置在 $2^n$ 和 $2^{n+1}$ 之间。他悬在空中,没有踩到横档,不安全!
因为你们俩面对同样的挑战(爬 $z$ 高度)却得到了不同的结果(一个安全一个不安全),说明你们俩的初始位置($x$ 和 $y$)是本质不同的,不能被有限自动机视为“相同状态”。因为有无限个这样的初始位置,所以需要无限个状态。
📜 [原文10]
对于字母表 $\{a, b, c\}$,定义
这是一个满足泵引理的非正则语言示例 —— 因此我们不能使用泵引理来证明非正则性(不会产生矛盾)。下面我们详细阐述这一点,然后展示使用我们见过的另外两种方法的两个替代解决方案。
这部分定义了一个更为复杂的语言 $L_4$。它的结构依赖于前缀 c 的数量的奇偶性。
接着,它抛出了一个非常重要的结论:$L_4$ 是一个非正则语言,但它却满足泵引理的条件。这意味着我们无法使用泵引理来证明它的非正则性。这是泵引理的一个局限性:泵引理是正则语言的必要非充分条件。即:
最后,预告了将首先解释为什么泵引理会失效,然后用 Myhill-Nerode 定理和封闭性来证明其非正则性。
本节引入了一个特殊的语言 $L_4$,其规则根据前缀 $c$ 的数量的奇偶性而变化。它作为一个重要的反例,说明了泵引理的单向性——满足泵引理并不能保证一个语言是正则的。
$L_4$ 的存在是为了深化学生对正则语言理论的理解,特别是泵引leem的局限性。它迫使我们使用更强大的工具(如 Myhill-Nerode 或封闭性)来处理这类更微妙的语言,展示了理论工具箱中不同工具的威力和适用范围。
一个 DFA 看到 $c$ 时可以切换它的“模式”。比如它有一个状态表示“接下来要检查回文”,另一个状态表示“接下来什么都不用检查”。
$L_4$ 本质上是两个语言的并集:$L_{even} = \{c^{2k}w \mid k \ge 0, w \in \{a,b\}^*\}$ 和 $L_{odd} = \{c^{2k+1}w \mid k \ge 0, w \in \{a,b\}^*, w=w^R\}$。$L_{even}$ 是正则的,但 $L_{odd}$ 是非正则的。一个正则和一个非正则语言的并集是非正则的。这个直觉将在“通过封闭性证明”中被严格化。
想象一个有两种模式的门禁系统。
这个门禁系统的一部分功能(严格模式)需要非常高级的识别技术(无限记忆),所以整个系统不是一个简单的有限自动机。然而,泵引理这个“质检员”却可能被欺骗,下面将解释原因。
📜 [原文11]
首先,我们将证明该语言满足泵引理,尽管它不是一个正则语言。我们需要证明存在一个泵数 $p$,使得对于任何字符串 $w' \in L_{4}, |w'| \geq p$,我们永远无法通过泵引理导出矛盾。将泵数设置为 $p=2$。我们需要证明对于任何 $|c^{n} w| \geq 2$ 的字符串 $c^{n} w \in L_{4}$,都存在一种划分 $c^{n} w=x y z$,其中 $|x y| \leq 2, |y| \geq 1$,使得对于任何 $i \geq 0, x y^{i} z \in L_{4}$。
情况 1:$n$ 是奇数。那么,$w$ 是一个回文。取划分 $x=\epsilon, y=c, z=c^{n-1}w$。显然 $|x y|=1 \leq 2$ 且 $|y|=1 \geq 1$。注意,对于任何 $i \geq 0, x y^{i} z=c^{i} c^{n-1} w=c^{n+i-1} w$。如果 $n+i-1$ 是偶数,我们显然有 $x y^{i} z \in L_{4}$;如果 $n+i-1$ 是奇数,由于 $w$ 是回文,我们同样有 $x y^{i} z \in L_{4}$。
情况 2:$n$ 是偶数。设置 $x=\epsilon, y=c^{n} w$ 的前两个字符(这些字符存在,因为 $|c^{n} w| \geq 2$),$z=$ 字符串的剩余部分。如果 $n=0$,那么 $x, y, z \in \{a, b\}^{*}$,因此对于任何 $i \geq 0, x y^{i} z \in \{a, b\}^{*}$。因此,由于 $x y^{i} z$ 不以 $c$ 开头,它以偶数个 $c$ 开头(0个),所以 $x y^{i} z \in L_{4}$。如果 $n \neq 0$,那么 $n \geq 2$,因此 $y=c^{2}$。因此,对于任何 $i \geq 0, x y^{i} z=c^{n+2(i-1)} w$,其中 $w \in\{a, b\}^{*}$。但请注意,由于 $n$ 是偶数,$n+2(i-1)$ 始终是偶数,因此 $x y^{i} z \in L_{4}$。
在任何一种情况下,我们都有一种划分 $c^{n} w=x y z$,使得对于任何 $i \geq 0, x y^{i} z \in L_{4}$。因此,泵引理对 $L_{4}$ 成立。
注意,满足泵引理的 $L_{4}$ 并不能告诉我们 $L_{4}$ 是否是正则的。接下来我们使用两种替代方法证明它不是正则的。
这部分的核心是证明 $L_4$ 满足泵引理,从而说明泵引理无法用于证明其非正则性。这里的角色发生了转换:我们不再是试图制造矛盾的“攻击者”,而是扮演“防御者”,为泵引理找到一个永远不会导致矛盾的划分方案。
我们将泵长度设为 $p=2$。我们需要为任何长度 $\ge 2$ 的 $w' \in L_4$ 找到一个“安全”的划分。
令 $w' = c^n w$。
情况 1: $n$ 是奇数
情况 2: $n$ 是偶数
总结: 我们已经证明,对于 $L_4$ 中任何足够长的字符串,我们总能找到一种“安全”的泵送方式(通常是泵送开头的 $c$),使得泵送后的字符串永远不会违反 $L_4$ 的规则。因此,泵引理无法用来证明 $L_4$ 非正则。
这段文字通过对所有可能情况的 exhaustive case analysis,展示了对于语言 $L_4$,总能找到一种泵送方式(即泵送前缀 $c$)使得泵送后的字符串仍然留在 $L_4$ 中。这证明了 $L_4$ 满足泵引理,因此泵引理对 $L_4$ 无效,不能用它来证明 $L_4$ 的非正则性。
本节的存在是泵引理教学中的一个关键高级主题。它打破了初学者可能形成的“泵引理是万能的”这一错误印象,揭示了其局限性,并强调了Myhill-Nerode 定理和封闭性等其他工具的不可或缺性。
泵引leem的弱点在于它只能在字符串的“局部”(前 $p$ 个字符)动手术。$L_4$ 的复杂性(回文校验)被“藏”在了字符串的后部 $w$ 中。我们的安全泵送策略,通过只修改更靠前的 $c$ 的数量,巧妙地规避了对 $w$ 部分的扰动。当 $c$ 的数量变为偶数时,对 $w$ 的回文要求就消失了,泵送自然安全。当 $c$ 的数量保持奇数时,$w$ 本身就是回文,所以也安全。泵引理这个“局部手术医生”无法触及语言复杂性的“病灶”。
想象一个“合法公民”($L_4$中的字符串)的判定规则。规则是:如果你的ID号($c$的数量)是奇数,你的指纹($w$)必须是左右对称的。如果ID号是偶数,指纹随便。
泵引理是一个检查员,他只能检查一个人的“ID号的前两位”($|xy| \le p=2$)。
检查员发现他无论怎么修改,都无法使一个合法公民变得“非法”。他只好无奈地报告:“根据我的检查方法,这个公民判定系统没有问题”。但他错了,因为他的检查方法有局限性。
📜 [原文12]
我们需要证明在 $\sim_{L_{4}}$ 下存在无限多个等价类。我们声称字符串 $c a^{n}, n \geq 0$ 都是彼此可区分的。设 $n \neq m$,我们需要证明 $c a^{n} \not \nsim_{L_{4}} c a^{m}$。取 $z=b a^{n}$ 作为区分扩展。注意 $c a^{n} b a^{n} \in L_{4}$,因为 $a^{n} b a^{n}$ 是一个回文。然而,$c a^{m} b a^{n} \notin L_{4}$,因为 $c$ 出现了奇数次,而 $a^{m} b a^{n}$ 在 $m \neq n$ 时不是回文。因此,对于所有 $n \neq m; n, m \geq 0$,$c a^{n} \not \nsim_{L_{4}} c a^{m}$,因此 $\sim_{L_{4}}$ 有无限多个等价类。因此,根据 Myhill-Nerode,$L_{4}$ 不是正则的。
这个证明回归到了更强大的 Myhill-Nerode 定理。
[易錯点与边界情况]
Myhill-Nerode 证明通过构造一个形如 $ca^n$ 的无限字符串集合,并使用后缀 $ba^n$ 作为区分扩展,成功证明了该集合中任意两个元素都是可区分的。这揭示了 $L_4$ 具有无限数量的等价类,从而根据 Myhill-Nerode 定理判定其为非正则语言。
本节展示了 Myhill-Nerode 定理如何成功地处理泵引理失效的情况。它绕过了“局部修改”的限制,从语言的全局结构(需要区分无限多的前缀状态)出发,给出了一个根本性的证明。
DFA 在读完前缀 $ca^n$ 后,必须进入一个状态。这个状态需要记住 $n$ 的值,因为它决定了什么样的后缀(比如 $ba^n$)可以与之构成一个合法的回文。由于 $n$ 可以是任意非负整数,DFA 需要无限种不同的“记忆”来存储所有可能的 $n$ 值。因此,需要无限个状态。
回到锁匠的比喻。这次,我们给锁匠一系列的钥匙,它们都有一个固定的前缀 c,后面跟着不同数量的齿 a^n(钥匙 ca, caa, caaa, ...)。规则是,如果第一把钥匙是 c... (奇数c),那么第二把钥匙必须能和第一把钥匙的后半部分 a^n 组合成一个中心对称的图案。
我们证明,锁匠不能为 ca 和 caa 制作同一个模具。为什么?因为如果我们接着递给他第二把钥匙 ba。
由于同一个模具对同一个后续钥匙产生了不同的结果,这是不允许的。所以 ca 和 caa 必须有不同的模具。这个逻辑可以推广到所有 ca^n,因此需要无限个模具。
📜 [原文13]
或者,可以使用封闭性和泵引理的组合来证明这一点。假设 $L_{4}$ 是正则的。设 $L_{5}=\left\{c w \mid w \in\{a, b\}^{*}\right\}$。不难证明 $L_{5}$ 是正则的(我们将此留作练习)。因此,由于正则语言在交集运算下是封闭的,我们得到 $L_{r}=L_{4} \cap L_{5}$ 也是正则的。
然而,我们可以看到 $L_{r}=L_{4} \cap L_{5}=\left\{c w \mid w \in\{a, b\}^{*}, w=w^{R}\right\}$。
现在,我们可以使用泵引理来证明 $L_{r}$ 不可能是正则的(我们将此留作练习 —— 这与我们在课上证明回文语言不是正则的过程非常相似)。
我们证明了如果 $L_{4}$ 是正则的,那么 $L_{r}$ 就会是正则的,但我们知道 $L_{r}$ 不是正则的,所以我们得到了一个矛盾,并得出结论 $L_{4}$ 不是正则的。
这个证明结合了封闭性和泵引理,是一种“先简化,再攻击”的策略。
该证明展示了一种强大的策略:如果一个语言 $L$ 太复杂,不好直接攻击,可以尝试通过与一个简单的正则语言进行交集或并集等操作,将其“过滤”或“简化”成一个我们熟悉且更容易攻击的“核心”非正则语言 $L_r$。然后通过证明 $L_r$ 非正则,并利用封闭性,倒推出原始语言 $L$ 也必定是非正则的。
本节的目的是展示封闭性质作为一个“预处理”工具的强大用途。它可以将一个复杂的问题转化为一个已知的或更简单的问题。这在证明非正则性时是一个非常高效和优雅的技巧,特别是当泵引leem直接应用很棘手时。
我们怀疑一个大组织 ($L_4$) 是非法的(非正则)。直接调查很困难,因为它有很多分支,有些是合法的($n$ 偶数),有些是非法的($n$ 奇数)。
我们的策略是:我们知道另一个完全合法的组织 $L_5$ (它的章程是“所有成员名字必须以c开头”)。我们去调查那些同时属于 $L_4$ 和 $L_5$ 的成员,组成一个新团体 $L_r$。
调查发现,$L_r$ 的所有成员都是 "c" + 一个回文名字。我们对回文名字的团体非常熟悉,早就知道它是一个非法组织(非正则)。
我们的逻辑是:如果 $L_4$ 是合法的,并且 $L_5$ 是合法的,那么它们的共同成员 $L_r$ 也应该是合法的(交集封闭性)。但我们发现 $L_r$ 是非法的。所以唯一的解释就是我们最初的假设错了:$L_4$ 本身就是一个非法组织。
想象 $L_4$ 是一锅成分复杂的汤,我们想证明它“有毒”(非正则)。直接化验整锅汤很麻烦(直接用泵引理)。
我们的方法是使用一个“过滤器”($L_5$),这个过滤器只允许“以胡萝卜丁(c)开头的分子”通过。我们知道这个过滤器本身是“干净”的($L_5$ 是正则的)。
我们将 $L_4$ 这锅汤通过过滤器,得到一碗清澈的汤 $L_r$。
我们发现,这碗过滤后的汤 $L_r$ 的成分是 “胡萝卜丁(c) + 对称的蛋白质分子(回文)”。我们对这种“对称蛋白质汤”有现成的毒性报告,知道它绝对有剧毒($L_r$ 是非正则的)。
推理过程:如果原来的汤 $L_4$ 是无毒的,经过一个干净的过滤器 $L_5$ 过滤后,得到的汤 $L_r$ 也应该是无毒的(封闭性)。但我们发现 $L_r$ 有剧毒。因此,唯一的结论是:原来的汤 $L_4$ 就含有毒素。
1. $(i-1) k+p=p+p!$
* 解释: 这是在对语言 $L_1$ 进行泵引理证明时,为构造矛盾而设立的目标方程。它旨在通过调整泵送次数 $i$,使得泵送后字符串中的 0 的数量(左侧)等于 1 的数量(右侧)。
2. $L_{e q}=L_{1}^{c} \cap L_{all}$
解释: 这是在通过封闭性证明 $L_1$ 非正则时构造的核心关系。它表明,著名的非正则语言 $L_{eq}$ (0和1数量相等) 可以通过对我们假设为正则的 $L_1$ 进行补集运算,再与已知的正则语言 $L_{all}$ (01*)进行交集运算得到。
3. $L_{4}=\left\{c^{n} w \mid n \geq 0, w \in\{a, b\}^{*}, \text{ 且如果 } n \text{ 是奇数则 } w=w^{R}\right\}$
* 解释: 这定义了一个复杂的语言 $L_4$,其后缀 $w$ 是否为回文取决于前缀 $c$ 的数量 $n$ 的奇偶性,该语言是泵引理失效的一个经典例子。
1. $(i-1) k+p=p+p!$
* 解释: 这是在对语言 $L_1$ 进行泵引理证明时,为构造矛盾而设立的目标方程。它旨在通过调整泵送次数 $i$,使得泵送后字符串中的 0 的数量(左侧)等于 1 的数量(右侧)。
2. $L_{e q}=L_{1}^{c} \cap L_{all}$
解释: 这是在通过封闭性证明 $L_1$ 非正则时构造的核心关系。它表明,著名的非正则语言 $L_{eq}$ (0和1数量相等) 可以通过对我们假设为正则的 $L_1$ 进行补集运算,再与已知的正则语言 $L_{all}$ (0\1\*)进行交集运算得到。
3. $L_{4}=\left\{c^{n} w \mid n \geq 0, w \in\{a, b\}^{*}, \text{ 且如果 } n \text{ 是奇数则 } w=w^{R}\right\}$
* 解释: 这定义了一个复杂的语言 $L_4$,其后缀 $w$ 是否为回文取决于前缀 $c$ 的数量 $n$ 的奇偶性,该语言是泵引理失效的一个经典例子。
[[END_OF_RESPONSE]]所有解释内容已全部输出完毕。