📜  计算理论中的引理

📅  最后修改于: 2022-05-13 02:24:08.271000             🧑  作者: Mango

计算理论中的引理

有两个抽水引理,定义为
1. 常规语言,以及
2. 上下文——自由语言为正则语言抽取引理
对于任何正则语言 L,都存在一个整数 n,使得对于所有 x ∈ L 和 |x| ≥ n,存在 u,v,w ∈ Σ∗,使得 x = uvw,并且
(1) |紫外线| ≤ n
(2) |v| ≥1
(3) 对于所有 i ≥ 0: uv i w ∈ L简单来说,这意味着如果一个字符串v 被“pumped”,即如果 v 被插入任意次数,结果字符串仍然保留在 L 中。 Pumping Lemma 被用作语言不规则性的证明。因此,如果一种语言是规则的,它总是满足抽引引理。如果至少存在一根不属于 L 的由抽吸制成的字符串,那么 L 肯定不是正则的。
与此相反的情况可能并不总是正确的。也就是说,如果 Pumping Lemma 成立,并不意味着该语言是规则的。
p1

例如,让我们证明 L 01 = {0 n 1 n | n ≥ 0} 是不规则的。
让我们假设 L 是规则的,然后通过抽引引理,上述给定的规则如下。
现在,让 x ∈ L 和 |x| ≥n。因此,通过抽引引理,存在 u, v, w 使得 (1) – (3) 成立。我们证明对于所有 u, v, w, (1) – (3) 都不成立。
如果 (1) 和 (2) 成立,则 x = 0 n 1 n = uvw with |uv| ≤ n 和 |v| ≥1。
所以,u = 0 a , v = 0 b , w = 0 c 1 n其中:a + b ≤ n, b ≥ 1, c ≥ 0, a + b + c = n
但是,那么 (3) 对于 i = 0 失败
uv 0 w = uw = 0 a 0 c 1 n = 0 a + c 1 n ∉ L,因为 a + c ≠ n。
p2
为上下文无关语言 (CFL) 抽取引理
CFL 的抽吸引理指出,对于任何上下文无关语言 L,都可以找到两个可以“抽吸”任意次数并且仍然使用相同语言的子串。对于任何语言 L,我们将其字符串分成五个部分并抽取第二个和第四个子字符串。
抽引引理在这里也被用作证明语言不是 CFL 的工具。因为,如果任何一个字符串不满足其条件,那么该语言就不是 CFL。
因此,如果 L 是一个 CFL,则存在一个整数 n,使得对于所有具有 |x| 的 x ∈ L ≥ n, 存在 u, v, w, x, y ∈ Σ∗, 使得 x = uvwxy, 并且
(1) |vwx| ≤ n
(2) |vx| ≥1
(3) 对于所有 i ≥ 0: uv i wx i y ∈ L
p3

对于上面的示例,0 n 1 n是 CFL,因为任何字符串都可能是在两个位置抽水的结果,一个代表 0,另一个代表 1。
让我们证明,L 012 = {0 n 1 n 2 n | n ≥ 0} 不是上下文无关的。
让我们假设 L 是上下文无关的,然后通过 Pumping Lemma,上面给出的规则如下。
现在,让 x ∈ L 和 |x| ≥n。因此,通过抽引引理,存在 u, v, w, x, y 使得 (1) – (3) 成立。
我们证明对于所有 u, v, w, x, y (1) – (3) 都不成立。如果 (1) 和 (2) 成立,则 x = 0 n 1 n 2 n = uvwxy with |vwx| ≤ n 和 |vx| ≥1。
(1) 告诉我们 vwx 不包含 0 和 2。因此,要么 vwx 没有 0,要么 vwx 没有 2。因此,我们有两种情况需要考虑。
假设 vwx 没有 0。通过 (2),vx 包含一个 1 或一个 2。因此 uwy 有“n”个 0,并且 uwy 有少于“n”个 1 或少于“n”个 2。
但是 (3) 告诉我们 uwy = uv 0 wx 0 y ∈ L。
所以,uwy 有相同数量的 0、1 和 2,这给了我们一个矛盾。 vwx 没有 2 的情况类似,也给我们带来了矛盾。因此 L 不是上下文无关的。