【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★
文章目錄
- 一、計算理論內(nèi)容概覽
- 二、計算問題的 有效性
- 三、語言 與 算法模型
- 四、可計算性 與 可判定性
- 五、可判定性 與 有效性
- 六、語言分類
一、計算理論內(nèi)容概覽
計算理論分為 形式語言與自動機 , 可計算部分 , 計算復雜性部分 ;
形式語言與自動機 內(nèi)容 : 自動機 , 確定性有限自動機 , 非確定性有限自動機 , 正則語言 , 泵引理 , 上下文無關語法 , 下推自動機 , 都屬于 形式語言 與 自動機 部分 ;
可計算 內(nèi)容 : 圖靈機 , 確定性圖靈機 , 非確定性圖靈機 , 丘奇-圖靈命題 , 可判定性 , 可計算性 等問題 ;
計算復雜性 內(nèi)容 : 時間復雜性 , 模型間的時間復雜性關系 , P\rm PP 類 , NP\rm NPNP 類 ;
二、計算問題的 有效性
可計算性 包含 可判定性 , 可判定性 包含 有效性 ;
可計算性 > 可判定性 > 有效性 ;
計算問題 對應的算法中 , 有些算法是 有效的 , 有些算法是 無效的 ,
如 : 窮舉算法 , 蠻力搜索之類的算法 , 沒有有效性可言 , 肯定不是有效算法 ; 貪心算法 , 歐幾里得算法 是有效算法 ;
這里希望可以區(qū)分 有效算法 與 無效算法 ;
在上一篇博客 【計算理論】計算復雜性 ( 多項式等價 | P 類 | 丘奇-圖靈論題延伸 ) 中給出了有效算法的嚴格的數(shù)學定義 ;
有效算法 : 就是在 多項式時間 內(nèi) , 可以執(zhí)行完畢 , 得到一個確定的結(jié)果的算法 ;
三、語言 與 算法模型
語言 與 算法模型 :
① 正則語言 ( 自動機 ) : Lr=L(a?b?)\rm L_r = L(a^*b^*)Lr?=L(a?b?) , 該語言是正則表達式語言 ; r\rm rr 下標含義是 regular 正則 ;
正則語言參考 : 【計算理論】正則語言 ( 正則表達式原子定義 | 正則表達式遞歸定義 | 正則表達式語言原子定義 | 正則表達式語言結(jié)構(gòu)歸納 | 正則表達式語言示例 | 根據(jù)正則表達式構(gòu)造自動機 )
② 上下文無關語言 ( 下推自動機 ) : LCFL={anbn:n≥0}\rm L_{CFL} = \{ a^nb^n : n \geq 0 \}LCFL?={anbn:n≥0} , 該語言不是正則表達式語言 , 是上下文無關語言 ; 下標 CFL\rm CFLCFL 含義是 Context-Free Grammer , 上下文無關語法 ;
上下文無關語法參考 : 【計算理論】上下文無關語法 ( 語法組成 | 規(guī)則 | 語法 | 語法示例 | 約定的簡寫形式 | 語法分析樹 )
③ 可判定語言 ( 判定機 ) : Ld={anbncn:n≥0}\rm L_ze8trgl8bvbq = \{ a^nb^nc^n : n \geq 0 \}Ld?={anbncn:n≥0} , 該語言不是上下文無關語言 , 是可判定語言 ; 下標 d\rm dd 含義是 Decidability 可判定 ;
可判定語言參考 : 【計算理論】可判定性 ( 丘奇-圖靈論題 | 可判定性引入 | 圖靈機語言 | 圖靈機結(jié)果 | 判定機 | 部分函數(shù)與全部函數(shù) | 可判定性定義 )
④ 可計算語言 ( 圖靈機 ) : LTr=ATM\rm L_{Tr} = A_{TM}LTr?=ATM? , 該語言是可計算的 , 不是圖靈可判定的 ; 下標 Tr\rm TrTr 含義是 Turing-recognizable ( 圖靈機可識別 ) 即可計算的 ;
⑤ 不可計算語言 ( 沒有對應算法模型 ) : LnTr=A ̄TM\rm L_{nTr} = \overline{A}_{TM}LnTr?=ATM? , 圖靈機不識別語言 , 不可計算語言 ;
參考博客 : 【計算理論】可判定性 ( 通用圖靈機和停機問題 | 可判定性 與 可計算性 | 語言 與 算法模型 )
四、可計算性 與 可判定性
可判定性 與 可計算性
① 可判定性 ( Decidability ) : 計算模型是 圖靈機中的 判定機 ;
② 可計算性 ( Turing-recognizable 圖靈機可接受的 ) : 計算模型是 圖靈機 ;
可計算性 包含 可判定性 ;
可計算性 與 可判定性 之間的相互關系 :
補集可計算 : 如果一個語言的 補集 ( Complement ) 是可計算的 ( Turing-recognizable ) , 那么稱該語言是 補集可計算的 ( co-Turing-recognizable ) ;
判定 = 可計算 + 補集可計算 : 如果一個語言是 可判定的 ( Decidable ) , 那么這個語言是 可計算的 ( Turing-recognizable ) , 同時這個語言又是 補集是可計算的 ( co-Turing-recognizable ) ;
可計算 : Turing-recognizable
補集可計算 : co-Turing-recognizable
之前提到過 通用圖靈機語言 ATM\rm A_{TM}ATM? 是 可計算的 , 對應的計算模型是 圖靈機 , 但 ATM\rm A_{TM}ATM? 是 不可判定的 ;
可判定 = 可計算 + 補集可計算
通用圖靈機語言 ATM\rm A_{TM}ATM? 是 不可判定的 , 可計算的 , 其補集肯定是不可計算的 ;
參考博客 : 【計算理論】可判定性 ( 通用圖靈機和停機問題 | 可判定性 與 可計算性 | 語言 與 算法模型 )
五、可判定性 與 有效性
可判定性 與 有效性 :
① 可判定性 ( Decidability ) : 計算模型是 圖靈機中的 判定機 ;
② 有效性 : 在 多項式時間 內(nèi) , 可以執(zhí)行完畢 , 得到一個確定的結(jié)果的算法 ;
六、語言分類
語言分類 :
① 可計算語言 : 下推自動機等價問題算法 EQPDA\rm EQ_{PDA}EQPDA? , 通用圖靈機語言 ATM\rm A_{TM}ATM? ;
② 可判定語言 : 無效算法語言 , 有效算法語言 ;
③ 無效算法語言 : 蠻力窮舉算法 ;
④ 有效算法語言 : 正則表達式 , 上下文無關語言 , 動態(tài)規(guī)劃算法 , 貪心算法 ;
下圖中 , 分為 可計算 , 可判定 , 無效算法 , 有效算法 ;
① 可計算 : 藍色部分之外的是 可計算語言 , 對應的計算模型是 圖靈機 ;
② 可判定 : 藍色圓框 之內(nèi)的是 可判定語言 , 對應的計算模型是 判定機 ;
③ 無效算法 : 藍色圓框 與 紅色圓框 之間的是 無效算法 , 蠻力窮舉算法 ;
④ 有效算法 : 紅框內(nèi)的算法是 有效算法 , 可以在 多項式時間 內(nèi)得到一個結(jié)果 ;
總結(jié)
以上是生活随笔為你收集整理的【计算理论】计算复杂性 ( 阶段总结 | 计算理论内容概览 | 计算问题的有效性 | 语言与算法模型 | 可计算性与可判定性 | 可判定性与有效性 | 语言分类 ) ★的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算理论】计算复杂性 ( 多项式等价
- 下一篇: 【计算理论】计算复杂性 ( P 类 |