日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★

發(fā)布時間:2025/6/17 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★ 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

  • 一、上下文無關(guān)文法 CFG 轉(zhuǎn)為下推自動機(jī) PDA 流程
  • 二、上下文無關(guān)文法 CFG 轉(zhuǎn)為下推自動機(jī) PDA 示例 1



參考博客 :

  • 【計算理論】上下文無關(guān)語法 ( 語法組成 | 規(guī)則 | 語法 | 語法示例 | 約定的簡寫形式 | 語法分析樹 )
  • 【計算理論】上下文無關(guān)語法 ( 代數(shù)表達(dá)式 | 代數(shù)表達(dá)式示例 | 確定性有限自動機(jī) DFA 轉(zhuǎn)為 上下文無關(guān)語法 )
  • 【計算理論】上下文無關(guān)語法 CFG ( CFG 設(shè)計示例 | CFG 歧義性 | Chomsky 范式 | 上下文無關(guān)語法 轉(zhuǎn)為 Chomsky 范式 )
  • 【計算理論】下推自動機(jī) PDA 及 計算示例
  • 【計算理論】下推自動機(jī) PDA ( 設(shè)計下推自動機(jī) | 上下文無關(guān)語法 CFG 等價于 下推自動機(jī) PDA )
  • 【計算理論】上下文無關(guān)語法 ( CFG ) 轉(zhuǎn)為 下推自動機(jī) ( PDA )
  • 【計算理論】下推自動機(jī) PDA ( 上下文無關(guān)語言 CFL 的 泵引理 | 泵引理反證示例 | 自動機(jī)擴(kuò)展 )




一、上下文無關(guān)文法 CFG 轉(zhuǎn)為下推自動機(jī) PDA 流程



上下文無關(guān)文法 CFG 轉(zhuǎn)為下推自動機(jī) PDA 流程 :

① 開始狀態(tài) : 開始狀態(tài) qstart\rm q_{start}qstart? , 跳轉(zhuǎn)到 qloop\rm q_{loop}qloop? 狀態(tài)的指令 ε,ε→K\rm \varepsilon , \varepsilon \to Kε,εK , 使用 K\rm KK 替換棧內(nèi)空字符 ε\varepsilonε , 即將 K\rm KK 放入棧中 ;

② 循環(huán)狀態(tài) : qloop\rm q_{loop}qloop? 狀態(tài)的指令都是從本狀態(tài)指向本狀態(tài) , 生成兩種指令 , 一種是基本指令 , 一種是終端字符指令 ;

基本指令 S→aTb∣b\rm S \to aTb|bSaTbb 生成為 ε,S→aTb\rm \varepsilon , S \to aTbε,SaTbε,S→b\rm \varepsilon , S \to bε,Sb 兩條指令 , 前面都是讀取空字符作為棧讀取的信息 ;

終端字符指令 , 如果存在終端字符 a\rm aab\rm bb , 那么生成 a,a→ε\rm a, a \to \varepsilona,aεb,b→ε\rm b, b \to \varepsilonb,bε 兩條指令 , 含義是讀取棧頂 a\rm aa 字符 , 將該字符使用空字符替代 , 即從棧中刪除該字符 ;


③ 接受狀態(tài) : qloop\rm q_{loop}qloop? 狀態(tài)跳轉(zhuǎn)到 qaccept\rm q_{accept}qaccept? 指令是 ε,K→ε\rm \varepsilon , K \to \varepsilonε,Kε , 棧頂讀取到 K\rm KK 字符刪除 ;

④ 拆分指令 : 在循環(huán)狀態(tài) qloop\rm q_{loop}qloop? 中的基本指令中存在多字符指令 , 如 ε,S→aTb\rm \varepsilon , S \to aTbε,SaTb , S\rm SS 讀取到空字符 ε\varepsilonε , 使用 aTb\rm aTbaTb 字符替換棧頂?shù)?S\rm SS 字符 , 這是 333 個字符 , 肯定不行 , 需要逐個放進(jìn)去 , 先放 b\rm bb , 再放 T\rm TT , 最后放 a\rm aa ;

最終分解為
ε,S→b\rm \varepsilon , S \to bε,Sb 讀取空字符放入 b\rm bb 到棧頂 ,
ε,ε→T\rm \varepsilon , \varepsilon \to Tε,εT 讀取空字符放入 T\rm TT 到棧頂 ,
ε,ε→a\rm \varepsilon , \varepsilon \to aε,εa 讀取空字符放入 a\rm aa 到棧頂 ;





二、上下文無關(guān)文法 CFG 轉(zhuǎn)為下推自動機(jī) PDA 示例 1



將上下文無關(guān)語法 ( CFG ) 轉(zhuǎn)為下推自動機(jī) ( PDA ) :

S→aTb∣b\rm S \to aTb | bSaTbb
T→Ta∣ε\rm T \to Ta|\varepsilonTTaε


上下文無關(guān)文法 CFG 轉(zhuǎn)為下推自動機(jī) PDA 流程 :

① 開始狀態(tài) : 開始狀態(tài) qstart\rm q_{start}qstart? , 跳轉(zhuǎn)到 qloop\rm q_{loop}qloop? 狀態(tài)的指令 ε,ε→K\rm \varepsilon , \varepsilon \to Kε,εK , 使用 K\rm KK 替換棧內(nèi)空字符 ε\varepsilonε , 即將 K\rm KK 放入棧中 ;

② 循環(huán)狀態(tài) : qloop\rm q_{loop}qloop? 狀態(tài)的指令都是從本狀態(tài)指向本狀態(tài) , 生成兩種指令 , 一種是基本指令 , 一種是終端字符指令 ;

基本指令 S→aTb∣b\rm S \to aTb|bSaTbb 生成為 ε,S→aTb\rm \varepsilon , S \to aTbε,SaTbε,S→b\rm \varepsilon , S \to bε,Sb 兩條指令 , 前面都是讀取空字符作為棧讀取的信息 ;

基本指令 T→Ta∣ε\rm T \to Ta|\varepsilonTTaε 生成為 ε,T→Ta\rm \varepsilon , T \to Taε,TTaε,T→ε\rm \varepsilon , T \to \varepsilonε,Tε 兩條指令 , 前面都是讀取空字符作為棧讀取的信息 ;

終端字符指令 , 如果存在終端字符 a\rm aab\rm bb , 那么生成 a,a→ε\rm a, a \to \varepsilona,aεb,b→ε\rm b, b \to \varepsilonb,bε 兩條指令 , 含義是讀取棧頂 a\rm aa 字符 , 將該字符使用空字符替代 , 即從棧中刪除該字符 ;


③ 接受狀態(tài) : qloop\rm q_{loop}qloop? 狀態(tài)跳轉(zhuǎn)到 qaccept\rm q_{accept}qaccept? 指令是 ε,K→ε\rm \varepsilon , K \to \varepsilonε,Kε , 棧頂讀取到 K\rm KK 字符刪除 ;

④ 拆分指令 : 在循環(huán)狀態(tài) qloop\rm q_{loop}qloop? 中的基本指令中存在多字符指令 , 如 ε,S→aTb\rm \varepsilon , S \to aTbε,SaTb , S\rm SS 讀取到空字符 ε\varepsilonε , 使用 aTb\rm aTbaTb 字符替換棧頂?shù)?S\rm SS 字符 , 這是 333 個字符 , 肯定不行 , 需要逐個放進(jìn)去 , 先放 b\rm bb , 再放 T\rm TT , 最后放 a\rm aa ;

ε,S→aTb\rm \varepsilon , S \to aTbε,SaTb 最終分解為 :
ε,S→b\rm \varepsilon , S \to bε,Sb 讀取 S\rm SS 字符放入 b\rm bb 到棧頂替換 S\rm SS 字符 ,
ε,ε→T\rm \varepsilon , \varepsilon \to Tε,εT 讀取空字符放入 T\rm TT 到棧頂 ,
ε,ε→a\rm \varepsilon , \varepsilon \to aε,εa 讀取空字符放入 a\rm aa 到棧頂 ;

ε,T→Ta\rm \varepsilon , T \to Taε,TTa 最終分解為 :
ε,T→a\rm \varepsilon , T \to aε,Ta , 讀取 T\rm TT 字符放入 a\rm aa 到棧頂替換 T\rm TT 字符 ,
ε,ε→T\rm \varepsilon , \varepsilon \to Tε,εT , 讀取空字符放入 T\rm TT 到棧頂 ;



最終的下推自動機(jī)樣式

總結(jié)

以上是生活随笔為你收集整理的【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。