【计算理论】计算理论总结 ( 泵引理 Pumping 证明 ) ★★
文章目錄
- 一、泵引理 ( Pumping )
- 二、泵引理證明示例 1
- 三、泵引理證明示例 2
- 四、泵引理證明示例 3
參考博客 : 【計(jì)算理論】Pumping 引理 ( 四個(gè)等價(jià)概念 | 自動(dòng)機(jī)界限 | Pumping 引理簡(jiǎn)介 | Pumping 引理證明正則表達(dá)式 | Pumping 引理示例分析 )
一、泵引理 ( Pumping )
正則語言 是 正則表達(dá)式 表達(dá)的語言 ;
正則表達(dá)式 是 原子字符 , 或 原子字符進(jìn)行遞歸 并運(yùn)算 ∪\cup∪ , 串聯(lián)運(yùn)算 °\circ° , 星運(yùn)算 ?*? 形成的字符串組成的語言 ;
正則表達(dá)式 等價(jià)于 確定性有限自動(dòng)機(jī) 等價(jià)于 非確定性有限自動(dòng)機(jī) ;
使用泵引理可以判定一個(gè)語言是否是正則語言 ;
泵引理 :
① 正則語言 : A\rm AA 是正則語言 ;
② 數(shù)字 : 存在數(shù)字 p\rm pp , 這個(gè) p\rm pp 叫做 泵長(zhǎng)度 ;
③ 字符串 : s\rm ss 是 A\rm AA 語言中的子字符串 , 其長(zhǎng)度大于等于 p\rm pp ; ( 字符串兩個(gè)要求 )
④ 字符串分組及要求 : 所有的子字符串 s\rm ss 可以分為三個(gè)部分 , s=xyz\rm s = xyzs=xyz , 滿足如下要求 :
- xyiz∈A(i≥0)\rm xy^iz \in A \quad ( i \geq 0 )xyiz∈A(i≥0) : i\rm ii 表示中間的 y\rm yy 的重復(fù)次數(shù) ;
- ∣y∣>0\rm |y| > 0∣y∣>0 : y\rm yy 是中間重復(fù)的部分 , 星計(jì)算部分 ;
- ∣xy∣≤p\rm |xy| \leq p∣xy∣≤p
使用泵引理證明某語言是正則語言步驟 : 使用 反正法 進(jìn)行證明 ;
① 提出假設(shè) : 首先假設(shè)該語言是正則的 ;
② Pumping 引理常數(shù)提出 : 存在一個(gè)常數(shù) p\rm pp , 所有長(zhǎng)度至少為 p\rm pp 的任何字符串 , 都滿足 Pumping 引理 的三個(gè)性質(zhì) ;
③ 找出矛盾 假設(shè)不成立 : 如果不滿足 Pumping 引理 , 說明上面假設(shè)該語言是正則語言 是不成立的 , 該語言不是正則語言 ;
二、泵引理證明示例 1
證明 : {0n1n:n≥0}\{ 0^n 1^n : n \geq 0 \}{0n1n:n≥0} 語言 不是正則語言 ;
1. 提出假設(shè) : 假設(shè) {0n1n:n≥0}\{ 0^n 1^n : n \geq 0 \}{0n1n:n≥0} 語言 是正則語言 ;
2. 泵長(zhǎng)度 : 存在一個(gè)泵長(zhǎng)度 p\rm pp , 只要是 長(zhǎng)度至少為 p\rm pp 的子字符串 s\rm ss , 都 滿足 Pumping 引理 的三個(gè)性質(zhì) ; s\rm ss 字符串可以分為三個(gè)部分 , s=xyz\rm s = xyzs=xyz , 滿足如下要求 :
- xyiz∈A(i≥0)\rm xy^iz \in A \quad ( i \geq 0 )xyiz∈A(i≥0) : i\rm ii 表示中間的 y\rm yy 的重復(fù)次數(shù) ;
- ∣y∣>0\rm |y| > 0∣y∣>0 : y\rm yy 是中間重復(fù)的部分 , 星計(jì)算部分 ;
- ∣xy∣≤p\rm |xy| \leq p∣xy∣≤p
3. 找出矛盾 : 找出一個(gè) 長(zhǎng)度至少為 p\rm pp 的子字符串 s\rm ss , 不符合泵引理要求 , 這里就出現(xiàn)了矛盾 , 假設(shè)不成立 ;
選擇字符串 s=0p1p\rm s = 0^p 1^ps=0p1p , 該字符串有 p\rm pp 個(gè) 0\rm 00 和 p\rm pp 個(gè) 111 字符組成 ;
yyy 出現(xiàn)三種情況 : yyy 全部由 000 組成 , yyy 全部由 111 組成 , yyy 全部由 0,10,10,1 組成 ;
① yyy 全部由 000 組成 情況分析 :
假設(shè) : 假設(shè) yyy 全部由 000 組成 , 其不停的重復(fù) , 得到的新字符串 , 仍然屬于 AAA 語言 ;
yyy 重復(fù)后不符合要求 : i\rm ii 是任意值 , 但是 000 重復(fù)若干次之后 , 如 重復(fù)次數(shù)i=p+1\rm i = p + 1i=p+1 , 000 的個(gè)數(shù)就大于 111 的個(gè)數(shù)了 , 此時(shí)不符合 s=0p1ps = 0^p 1^ps=0p1p 要求了 , 因此這種情況不成立 ;
② yyy 全部由 111 組成 情況分析 :
假設(shè) : 假設(shè) yyy 全部由 111 組成 , 其不停的重復(fù) , 得到的新字符串 , 仍然屬于 AAA 語言 ;
yyy 重復(fù)后不符合要求 : i\rm ii 是任意值 , 但是 111 重復(fù)若干次之后 , 如 重復(fù)次數(shù)i=p+1\rm i = p + 1i=p+1 , 111 的個(gè)數(shù)就大于 000 的個(gè)數(shù)了 , 此時(shí)不符合 s=0p1ps = 0^p 1^ps=0p1p 要求了 , 因此這種情況不成立 ;
③ yyy 全部由 0,10,10,1 組成 情況分析 :
假設(shè) : 假設(shè) yyy 全部由 0,10,10,1 組成 , 其不停的重復(fù) , 得到的新字符串 , 仍然屬于 AAA 語言 ;
yyy 重復(fù)后不符合要求 : i\rm ii 是任意值 , 但是 0,10,10,1 重復(fù)若干次之后 , 如 重復(fù)次數(shù)i=p+1\rm i = p + 1i=p+1 , 就會(huì)打亂 s=0p1ps = 0^p 1^ps=0p1p 字符串中 0,10,10,1 的相互順序 , 其中 0,10,10,1 不能存在交叉 , 因此這種情況不成立 ;
經(jīng)過上述討論 , yyy 的三種情況都不符合 Pumping 引理 , 因此 {0n1n:n≥0}\{ 0^n 1^n : n \geq 0 \}{0n1n:n≥0} 語言不是正則語言 ;
三、泵引理證明示例 2
證明 : {0n1n2n:n≥0}\{ 0^n 1^n2^n : n \geq 0 \}{0n1n2n:n≥0} 語言 不是正則語言 ;
1. 提出假設(shè) : 假設(shè) {0n1n2n:n≥0}\{ 0^n 1^n2^n : n \geq 0 \}{0n1n2n:n≥0} 語言 是正則語言 ;
2. 泵長(zhǎng)度 : 存在一個(gè)泵長(zhǎng)度 p\rm pp , 只要是 長(zhǎng)度至少為 p\rm pp 的子字符串 s\rm ss , 都 滿足 Pumping 引理 的三個(gè)性質(zhì) ; s\rm ss 字符串可以分為三個(gè)部分 , s=xyz\rm s = xyzs=xyz , 滿足如下要求 :
- xyiz∈A(i≥0)\rm xy^iz \in A \quad ( i \geq 0 )xyiz∈A(i≥0) : i\rm ii 表示中間的 y\rm yy 的重復(fù)次數(shù) ;
- ∣y∣>0\rm |y| > 0∣y∣>0 : y\rm yy 是中間重復(fù)的部分 , 星計(jì)算部分 ;
- ∣xy∣≤p\rm |xy| \leq p∣xy∣≤p
3. 找出矛盾 : 找出一個(gè) 長(zhǎng)度至少為 p\rm pp 的子字符串 s\rm ss , 不符合泵引理要求 , 這里就出現(xiàn)了矛盾 , 假設(shè)不成立 ;
選擇字符串 s=0p1p2p\rm s = 0^p 1^p2^ps=0p1p2p , 該字符串有 p\rm pp 個(gè) 0\rm 00 , p\rm pp 個(gè) 111 , p\rm pp 個(gè) 222 字符組成 ;
yyy 出現(xiàn)三種情況 : yyy 全部由 000 組成 , yyy 全部由 111 組成, yyy 全部由 222 組成 , yyy 全部由 0,1,20,1,20,1,2 組成, yyy 全部由 0,10,10,1 組成 , yyy 全部由 1,21,21,2 組成 ;
如果字符串僅有 0,1,20, 1, 20,1,2 單個(gè)字符 , 重復(fù)任意 i\rm ii 次后 , 不能保證三個(gè)字符數(shù)量相等 , 矛盾 ;
如果字符串由多個(gè)字符組成 , 一旦重復(fù)之后 , 次序就被打亂 , 無法保證三個(gè)字符次序 , 也是矛盾 ;
四、泵引理證明示例 3
證明 : {www∣w∈{a,b}?}\rm \{ www | w \in \{a, b\}^* \}{www∣w∈{a,b}?} 語言 不是正則語言 ;
{a,b}?\rm \{a, b\}^*{a,b}? 中的星運(yùn)算 ?*? 是 將 {a,b}\rm \{a, b\}{a,b} 中的有限個(gè)字符串串聯(lián)在一起 , 將若干個(gè) a\rm aa 與若干個(gè) b\rm bb 以任意先后順序任意交錯(cuò)順序進(jìn)行排列 ; 即 a,b\rm a, ba,b 組成的任意字符串都屬于上述語言 ;
1. 提出假設(shè) : 假設(shè) {www∣w∈{a,b}?}\rm \{ www | w \in \{a, b\}^* \}{www∣w∈{a,b}?} 語言 是正則語言 ;
2. 泵長(zhǎng)度 : 存在一個(gè)泵長(zhǎng)度 p\rm pp , 只要是 長(zhǎng)度至少為 p\rm pp 的子字符串 s\rm ss , 都 滿足 Pumping 引理 的三個(gè)性質(zhì) ; s\rm ss 字符串可以分為三個(gè)部分 , s=xyz\rm s = xyzs=xyz , 滿足如下要求 :
- xyiz∈A(i≥0)\rm xy^iz \in A \quad ( i \geq 0 )xyiz∈A(i≥0) : i\rm ii 表示中間的 y\rm yy 的重復(fù)次數(shù) ;
- ∣y∣>0\rm |y| > 0∣y∣>0 : y\rm yy 是中間重復(fù)的部分 , 星計(jì)算部分 ;
- ∣xy∣≤p\rm |xy| \leq p∣xy∣≤p
3. 找出矛盾 : 找出一個(gè) 長(zhǎng)度至少為 p\rm pp 的子字符串 s\rm ss , 不符合泵引理要求 , 這里就出現(xiàn)了矛盾 , 假設(shè)不成立 ;
選擇字符串 s=apbp\rm s = a^p b^ps=apbp , 該字符串有 p\rm pp 個(gè) a\rm aa , p\rm pp 個(gè) b\rm bb 字符組成 ;
yyy 出現(xiàn)三種情況 : y\rm yy 全部由 a\rm aa 組成 , y\rm yy 全部由 b\rm bb 組成, y\rm yy 由 ab\rm abab 組成 ;
如果字符串僅有 a,b\rm a,ba,b 單個(gè)字符 , 重復(fù)任意 i\rm ii 次后 , 不能保證兩個(gè)字符數(shù)量相等 , 矛盾 ;
如果字符串由多個(gè)字符組成 , 一旦重復(fù)之后 , 次序就被打亂 , 無法保證兩個(gè)個(gè)字符次序 , 也是矛盾 ;
總結(jié)
以上是生活随笔為你收集整理的【计算理论】计算理论总结 ( 泵引理 Pumping 证明 ) ★★的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算理论】计算理论总结 ( 正则表达式
- 下一篇: 【鸿蒙 HarmonyOS】Harmon