文章目錄
I . 上下文無關語言 ( CFL ) 的 泵引理 ( Pumping Lemma )
有些語言 在 上下文無關語法 與 下推自動機 計算能力之外 ;
通過 上下文無關語言 ( CFL ) 的 Pumping Lemma ( 泵引理 ) 可以證明上述命題 ;
( 證明的不是充要條件 , 只證明必要條件 )
上下文無關語言 ( CFL ) 的 泵引理 ( Pumping Lemma ) :
假設 是 上下文無關的語言 ( CFL ) , 一定會存在一個 泵長度 ( Pumping Length ) , 使得 語言中的字符串長度都大於等於 , 語言中的每個字符串都可以被分爲 五個部分 , 滿足下面 個條件 :
- ① , ; 其中 表示 個 串聯在一起 , 如 就是 ;
- ② ;
- ③ ;
這是一個必要條件 , 如果某語言是 上下文無關語言 , 那麼符合上述要求 ; 反過來 , 如果不符合上述要求 , 什麼都不能代表 , 該語言可能是 CFL , 也可能不是 CFL ;
如果證明 某 語言不是 上下文無關語言 ( CFL ) , 先假設該語言是 CFL , 假如不符合上述 條件 , 說明假設不成立 , 該語言不是 CFL ;
正則表達式 也有一個 泵引理 , 注意區分 ;
II . 上下文無關語言 ( CFL ) 的 泵引理 ( Pumping Lemma ) 示例
使用 上下文無關語言 ( CFL ) 的 泵引理 ( Pumping Lemma ) 證明
不是 上下文無關語言 ( CFL ) ;
1 . 假設 : 假設 是 上下文無關語言 ( CFL ) ;
2 . 泵長度 : 根據 泵引理 , 存在一個 泵長度 ;
3 . 是 語言 的字符串 : ;
4 . 泵引理 :
- ① , ; 其中 表示 個 串聯在一起 , 如 就是 ;
- ② ;
- ③ ;
5 . 根據泵引理 , 將其分爲 部分 :
其中 ;
6 . 和 相等的情況討論 :
其中 和 不能同時是 或 , 如果 同時是一個數 ( 或 ) , 如果重複 和 部分 , 該重複的數字會增多 , 如 增多 , 沒有增多 , 導致字符串不符合語言的要求 ;
因此 和 必須是不同的 字符 , 一個是 一個是 ;
7 . 和 取值不等 並處於 中間的 之間的情況討論 :
如果 和 處於中間的 和 之間 , 那麼 和 同時增加後 , 第一個 與 第三個 個數不再相等 , 第二個 與 第四個 個數不再相等 , 不符合語言要求 ;
8 . 和 取值不等 並處於 左側的 之間的情況討論 :
如果 和 處於左側的 和 之間 , 那麼 和 同時增加後 , 第一個 與 第三個 個數不再相等 , 第二個 與 第四個 個數不再相等 , 不符合語言要求 ;
9 . 和 取值不等 並處於 右側的 之間的情況討論 :
如果 和 處於右側的 和 之間 , 那麼 和 同時增加後 , 第一個 與 第三個 個數不再相等 , 第二個 與 第四個 個數不再相等 , 不符合語言要求 ;
10 . 結論 :
因此該字符串 不滿足 上下文無關語言 ( CFL ) 的泵引理 ;
假設不成立 , 因此該語言 不是上下文無關語言 ;
引申 : 下推自動機 之所以無法識別 這個語言 , 是因爲下推自動機的 棧是後進先出的 , 先入棧的字符 , 後出來 , 這樣就使得 前後相等 的字符串無法識別 , 鏡面反射的字符串可以被識別 , 如果將棧替換成 先進先出的隊列 , 那麼就可以識別 語言 了 ;
III . 自動機擴展
1 . 確定性優先自動機 ( DFA ) 最小化 : 確定性有限自動機 ( DFA ) 有算法可以將其最小化 , 可以找到一個最小的確定性優先自動機 與 原來的 確定性有限自動機 ( CFG ) 等價 ;
( 等價的 確定性有限自動機 DFA 所識別的語言是相同的 )
2 . 下推自動機 ( PDA ) 無法最小化 , 也無法做等價判定 ;
給定一個下推自動機 ( PDA ) , 無法優化該下推自動機 ( PDA ) , 也無法得到一個最小的下推自動機 ;
兩個 下推自動機 ( PDA ) 是否等價 也無法進行判定 ;
3 . 語言 與 計算模型 :
① 正則語言 : 對應的計算模型是 有限自動機 ( FA ) , 包括 確定性有限自動機 ( DFA ) , 非確定性有限自動機 ( NFA ) ;
② 上下文無關語言 : 對應的計算模型是 上下文無關語法 ( CFG ) , 下推自動機 ( PDA ) ;
4 . 自動機演化
① 下推自動機 ( PDA ) : 下推自動機 ( PDA ) 比 確定性有限自動機 ( DFA ) 多了一個棧結構 ;
② 圖靈機 : 圖靈機 比 下推自動機 多了一個棧 , 圖靈機 有 個棧結構 ;
③ 自動機擴張 : 再加一個棧 , 個棧的效果與 個棧的效果基本相同 , 大於等於 個棧的效果都是相同的 , 還是圖靈機 ;