泵引理
来自维基百科,自由的百科全书
在可計算性理論中的形式語言理論中,泵引理(Pumping lemma)聲稱給定類的任何語言可以被「抽吸」並仍屬於這個類。一個語言可以被抽吸,如果在這個語言中任何足夠長的字符串可以分解成片段,其中某些可以任意重複來生成語言中更長的字符串。這些引理的證明典型的需要計數論證比如鴿籠原理。
![]() |
兩個最重要例子是正則語言的泵引理和上下文無關語言的泵引理。鄂登引理是另一種更強的上下文無關語言的泵引理。
這些引理可以用來確定特定語言不在給定語言類中。但是它們不能被用來確定一個語言在給定類中,因為滿足引理是類成員關係的必要條件,但不是充分條件。
泵引理是1961年由 Y. Bar-Hillel、M. Perles 和 E. Shamir首次發表的[1]。
正則語言的泵引理
假設是正則語言,則存在整數,對任意字符串且(n為泵長度,可理解為正則語言等效的極小化DFA的狀態個數),可以將寫成的形式,使得以下說法成立:
- ,
- ,
- 。
- 因為L是正則語言,所以存在一個與之等價的確定有限狀態自動機,
- 假設n是這個確定有限狀態自動機中狀態的數量,
- 假設和
- 在這個自動機讀入w的前n個字符後一定有一個狀態達到過兩次,
- 也就是說對於其中一種w的分解方式w=xyz有
- 因此對於所有的都有
通過泵引理可以用反證法證明L不是正則語言。證明的時候需要注意以下幾點:
- 假設要證明的語言為正則語言
- 是未知的
- 可以在滿足和的條件下自由選擇
- 也是未知的
- 找到一個,使得,也就是說和泵引理的第三條矛盾
一個證明L不是正則語言的例子
- 證明不是正則語言
- 假設是正則語言,令n為泵引理常數
- 選擇,則
- 於是存在使得滿足條件,,。
- 因為且,所以中不包含但最少有一個
- 當的時候,,中的數量比多,所以
- 與泵引理的第三條矛盾,因此不是正則語言
普遍化的泵引理[2]
並不是所有滿足泵引理的語言都是正則語言。就是這樣的一個例子,它雖然滿足泵引理,但並不是正則語言。Jeffrey Jaffe發展出了一個普遍化的泵引理,使它可以證明一個語言是正則語言。它的描述如下:
- 一個語言是正則語言,若且唯若存在一個自然數,使得任意字符串可以通過至少一種方式被寫成的形式時,以下說法成立:
- ,
- ,
- ,。
一個可行的用於判斷一個語言是否為正則語言的方法,可以參見邁希爾-尼羅德定理。一般來說證明一個語言是正則的,可以通過對該語言構造一個有限狀態機或正則表達式來實現。
上下文無關語言的泵引理
若 L 是上下文無關語言,則存在一常數 n > 0 使得語言 L 中每個字串 w 的長度 |w| ≧ n,而當 w = uvxyz 時:
- |vxy| ≦ n,
- |vy| ≧ 1,且
- 對所有的 k ≧ 0,字串 uvkxykz 屬於 L 。
- 或 或 ,換句話說,L 就是包含 所有字串且 a、b、c 三者數目相同的語言。
- 令 n 為泵引理常數, 屬於 L,w = uvxyz,而 |vxy| ≤ n,|vy| ≥ 1,則 vxy 不可能同時包含 a 與 c。
- 當 vxy 不包含 a 時,vy 只可能包含 b 或 c,則 uxz 包含 n 個 a 及不到 n 個的 b 或 c,使得 uxz 不屬於 L。
- 當 vxy 不包含 c 時,uxz 會包含 n 個 c 及不到 n 個的 a 或 b,使得 uxz 不屬於 L。
- 因此,無論是上述何種狀況,L 都不會是上下文無關語言。
- 令 n 為泵引理常數, 屬於 L,w = uvxyz,而 |vxy| ≤ n,|vy| ≥ 1,則 vxy 不可能同時包含 a 與 c。
-
- 令 n 為泵引理常數,,w = uvxyz,而 |vxy| ≤ n,|vy| ≥ 1
- 若 vxy 只包含 a,則 uxz 會包含不到 n 個 a 及 個 b,不屬於 L;
- 若 vxy 只包含 b,則 uxz 會包含 n 個 a 及不到 個 b,不屬於 L;
- 若 vxy 裏有 a 也有 b,
- 若 v 或 y 包含 a 與 b, 不在 裏;
- 若 v 只包含 l 個 a,且 y 只包含 m 個 b, 會包含 n + lk 個 a 與 個 b,由於兩者都是線性成長,不可能永遠滿足 的條件,不屬於 L。
- 因此,無論是上述何種狀況,L 都不會是上下文無關語言。
- 令 n 為泵引理常數,,w = uvxyz,而 |vxy| ≤ n,|vy| ≥ 1
-
- 令 n 為泵引理常數, 屬於 L,w = uvxyz,而 |vxy| ≤ n,則 vxy 必然為 或形式(此處有)。即 vxy無法同時包含前後兩組0,也無法同時包含前後兩組1。將uvxyz轉變成uxz必然導致前後兩組0或兩組1的數目產生差異。使得uxz不再滿足ww形式。亦即uxz不屬於L。
- 因此,L 都不會是上下文無關語言。
引用
Wikiwand - on
Seamless Wikipedia browsing. On steroids.