兩類問題:
1.計算機能有效解決的 。
2.計算機原則上能解決、但實際上要花費太長時間,以致於除了非常小的問題例項以外,計算機是毫無用處的。
第二類問題定義為」難解的「或」np-難的「。
貫穿自動機理論的概念:字母表、串、語言。
1.1.1有窮自動機簡介
重要應用型別:
1.數位電路的設計和效能檢查軟體。
2.典型編譯器的」詞法分析器「。
3.掃瞄大量文本來發現單詞、短語或其他模式的出現的軟體。
4.所有型別的只有又窮多個不同狀態的系統的驗證軟體。
最簡單的非平凡有窮自動機是兩相開關。
1.1.2結構表示法
兩種重要記號
1.文法在設計某種軟體時是有用的模型,這種軟體處理帶遞迴結構的資料。例子:」語法分析器「。
2.正規表示式表示資料的結構,特別是文字串。
1.1.3自動機與複雜性
對計算侷限性的研究,有兩個重要問題:
1.計算機到底能做什麼?這種研究稱為」可判定性「,計算機能解決的問題稱為」可判定的「。
2.計算機能有效地做什麼?這種研究稱為」難解性「。計算機用不超過輸入規模的某個緩慢增長函式的時間所能解決的問題,稱為」易解的「。通常,所有的多項式函式當作」緩慢增長的「,而把比任何多項式都增長的快的函式看作增長得太快了。
演繹型別:有根據的步驟的序列
歸納型別:帶引數命題的遞迴證明,證明用到帶」較小「引數值的命題本身
1.2.1 演繹證明
演繹證明包含命題序列,其正確性導致從某個初始命題(稱為前提或已知命題)得出」結論「命題。證明中每一步都必須根據某條公認的邏輯原理,利用已知的事實或演繹證明中前面的一些命題,或利用這兩者的組合。前提可能為真也可能為假。
命題:「如果h,則c」,說c是從h演繹出來。
假言推理:如果知道h為真,並且知道「如果h,則c」為真,就可以得出結論c為真。
1.2.2求助於定義
一種在許多證明中推動證明的有用方法:如果不能肯定如何開始證明,就把前提中的所有術語都換成這些術語的定義。
1.2.3其他定理形式
1.2.3.1 說「如果-則」的方式
「如果h,則c」可能在其**現的某些其他形式:
1.h蘊含c
2.h當且僅當c
3.c當h
4.只要h為真,就得出c/如果h成立,則得出c/只要h成立,c就成立
1.2.3.2當且僅當命題
「a當且僅當b」,其他形式:「a iff b」、「a等價於b」、「a恰好當b」。
相當於兩個「如果-則」命題:「如果a,則b」和「如果b,則a」。
要證明「a當且僅當b」,可以證明這樣兩個命題:
1.當部分:「如果b,則a」以及 2.僅當部分:「如果a,則b」,這個命題常常敘述成等價形式「a僅當b」。
1.2.4表面上不是「如果-則」命題的定理
表面上沒有前提的定理,實際隱含了眾所周知的事實。
1.關於集合的證明。
2.反證法。
3.反例證法。
1.3.1證明集合等價性
命題e=f意味著所表示的集合是相同的:e所表示的集合中每個元素都屬於f所表示的集合,f所表示的集合中每個元素也都屬於e所表示的集合。
1.3.2逆否命題
每乙個「如果-則」命題都有一種等價形式:逆否命題,「如果非c,則非h」乙個命題與其逆否命題是同時為真或同時為假的。故可證明其中乙個來證明另乙個。
證明e=f的另一等價證明形式:如果x屬於e,則x屬於f;如果x不屬於e,則x不屬於f。
1.3.3反證法
「如果h,則c」反證法:「h與非c導致矛盾」。
1.3.4反例
判斷定理是否為真,可以輪流地試圖去證明這個定理,如果證明不出,就試圖去證明這個命題是假的。
定理一般都是關於無窮多種的命題。
沒有引數或只有又窮多種引數值的命題稱為事實。
為了證明乙個所謂的定理不是定理,只要證明在任何一種情形之下為假,這就足夠了。
1.4.1整數上的歸納法
1.基礎:對乙個具體的整數i,證明s(i)。
2.歸納步驟:假設n>=i,其中i是基礎中的證書,證明「如果s(n),則s(n+1)」。
歸納法原理:如果證明了s(i),並且證明了對所有n>=i,s(n)蘊含s(n+1),就可以得出:對所有n>=i,s(n)成立。
1.4.2更一般形式的證書歸納法
1.利用多個基礎情形。也就是說對於某個j>i,證明s(i),s(i+1),……s(j)。
2.在證明s(n+1)時,利用所有命題s(i),s(i+1),……s(j)的真實性,而不只是利用s(n)的。而且,如果證明了直到s(j)的基礎情形,就假設n>=j,而不只是假設n>=i。
由這個基礎和歸納步驟得到的結論是:對所有n>=i,s(n)為真。
1.4.3結構歸納法
基礎情形:定義乙個或多個基本結構。
歸納步驟:用前面定義的結構來定義更複雜的結構。
1.4.4互歸納法字母表:符號集合。
串:字母表中符號的列。
語言:相同字母表中串的集合。
1.5.1字母表
字母表是符號的有窮非空集合。用σ表示字母表。常見字母表包括:
1.σ=,二進位制字母表。
2.σ=,所有小寫字母的集合。
3.所有ascii字元的集合,或者所有可列印的ascii字元的集合。
1.5.2串
串(有時候稱為單詞)是從某個字母表中選擇的符號的有窮序列。
1.5.2.1空串
空串是出現0次符號的串。記作ε,是可從任何字母表中選擇的串。
1.5.2.2串的長度
根據串的長度(也就是說,串中符號的位數)來對串進行費雷。例如01101長度為5。串w的長度的標準記號是|w|,例如|011|=3,|ε|=0。
1.5.2.3字母表的冪
如果σ是乙個字母表,就可用指數記號來表示這個字母表某個長度的所有串的集合。定義σ^k,是長度為k的串的集合,串的每個符號都屬於σ。
字母表上所有串的集合約定記作σ*,σ*=σ0 ∪ σ1 ∪…
字母表上非空串的集合記作σ+
1.5.2.4串的連線
設x和y都是串。於是,xy表示x和y的連線,就是說用x的乙個副本後面跟著y的乙個副本所形成的串。
x=01101,且y=110,則xy=01101110,yx=11001101.
1.5.3語言
σ是某個具體的字母表,全都從σ中選出的串的乙個集合稱為語言。如果σ是字母表,且l⊆σ,則l是σ上的語言。
唯一重要的約束就是所有字母表都是有窮的。因此語言可以有無窮多個串,但限制這些串為從乙個固定的有窮字母表取出的。
1.5.4問題
乙個問題就是判定乙個給定的串是否屬於某個具體語言的提問。
自動機理論,語言和計算導論1 1節翻譯
在電腦科學內重要的核心內容中,有若干種原因需要我們研究狀態機理論及其複雜性。該節主要是向讀者展示理論研究動機及在本書當中的一些主要話題及一些輪廓。在圖1.2中,5個狀態分別以當前看到的then的字首來命名,輸入序列對應相應的字串行。我們可以把它想象成詞法分析器在編譯時刻一次檢驗程式的乙個字元的過程,...
形式語言與自動機理論總結
一 圖形總結。重點 喬姆斯基體系 四大文法之間的關係 二 文字詳解。1,集合關係 並 交 補 差 笛卡爾積 冪積 二元關係 1 笛卡爾積 axb,即都分別對應的乘積。例1 1,a b 則 axb 2 冪積 2 a,即所有的子集。例1 2,a 則2 a 3 二元關係 任意的r a b,r 是a到b 的...
形式語言與自動機理論總結
一 圖形總結。重點 喬姆斯基體系 四大文法之間的關係 二 文字詳解。1,集合關係 並 交 補 差 笛卡爾積 冪積 二元關係 1 笛卡爾積 axb,即都分別對應的乘積。例1 1,a b 則 axb 2 冪積 2 a,即所有的子集。例1 2,a 則2 a 3 二元關係 任意的r a b,r是a到b的二元...