第一篇:集合與推理方法安全
1:咱們爲何要學習形式語言與自動機閉包
任何一門科學都有其自身的理論基礎,計算機科學也是這樣.你們如今看看計算機的技術變化的很快,如今咱們很流行的框架和工具頗有可能幾年內就會變成過期的東西.可是計算機科學的總體的思惟不會變,在學習中,咱們更要應該看思考能力的培養,如何清楚的表達本身的能力,如何清晰地解決問題的能力以及本身還欠缺的能力.這方面的東西在我看來,是具備持久的價值的,學習理論可以拓展人們的思惟,並能令人們在這方面獲得訓練.框架
說回形式語言與自動機,你們在大學學習中可能離形式語言與自動機的一門課應該是<編譯原理>,<編譯原理>中是會講到形式語言和自動機的部分東西,另外有的學校可能就有專門的這一門課,好比北航和哈工大等等.說到底,形式語言與自動機實際上是一門將數學系統應用於計算的一種模型.因此我想用這一系列文章來重點介紹形式語言以及與之相對應的自動機體系.函數
形式語言給出了語言的語法規則和分類的形式化方法,而自動機則描述了可以識別的語言的自動裝置.這樣的形式化的描述以及自動機的工做原理將會是這一系列文章的核心.這一些核心在編譯理論,人工智能,現代安全學和通訊中都有着極強的應用,是每一個對於計算機科學感興趣的人都應該熟悉的內容.工具
這一系列文章我如今想先簡單的分爲三大部分:學習
第一部分是基礎的預備知識的學習人工智能
第二部分是講述四類文法所產生的語言以及這些語言的識別裝置設計
第三部分是講述這四類文法的理論在實際生產中的應用對象
可是上述的理論可能會比較枯燥,因此我也想你們有興趣能夠配合蔣宗禮老師的<形式語言與自動機理論>,加上上邊的習題,效果會更好,更加的容易理解和接受.排序
2:什麼是形式語言與自動機?
形式語言和自動機的理論是計算機科學的理論基礎。這些理論來源於 :
(1) Chomsky對天然語言的研究; (2) 巴科斯和諾爾使用巴科斯-諾爾範式(BNF)對 ALGOL 60 語言的語法規則進行描述; (3) Kleene在研究神經細胞時創建的自動機模型。 形式語言理論的研究對象與之前全部語言的研究對象不一樣 , 不止是天然語言 , 而是人類的
一切語言 : 既有天然語言 , 也有人工語言 , 包括高級程序設計語言。 形式語言和自動機的理論已經成爲計算機科學 的理論 基礎 , 其 應用範 圍已 被擴展 到生 物
工程、自動控制系統、圖像處理與模式識別等許多領域。
3:學習以前所須要的知識
在學習形式語言以前,咱們首先要明確下所需的集合,圖論,邏輯證實這樣的知識,這些知識難度不會超太高等數學的難度,若是你已經會了,就直接跳過去吧,若是不會就能夠繼續看下去.
1:集合
當咱們去研究一類對象的時候,咱們能夠將具備同一類對象的總體看做是一個集合,組成一個集合的對象稱爲該集合的元素
若是設A是一個集合,a是集合A的一個元素,就能夠表示爲a∈A,若是a不是集合A的元素,就能夠表示a∈|A,也就是a不屬於A
之後我爲了省事,好比a屬於A,b屬於A,c屬於A的,都寫成a,b,c∈A.
有限個元素x1,x2,.......,xn組成的集合,稱爲有限集合.無限個元素組成的集合,稱爲無限集合.好比,整數構成的集合是一個無限集合.
不含元素的集合,稱爲空集,符號是:∅
2:集合之間的關係
(1) 設兩個集合A、B包含的元素徹底相同,則稱集合A和B
相等,表示爲A=B。
例如,集合A={a,b,c},集合B={b,a,c},則有A=B。 這裏強調, 一個集合中元素排列的順序是可有可無的。 有限集合A中不一樣元素的個數稱爲集合的基數, 表示爲 #A或A。
例如,B={a,b,c,4,8},其基數#B=5。
(2)設兩個集合A、B,當A的元素都是B的元素,則稱A包
含於B,或稱A是B的子集,表示爲A∈B。當A∈B且A≠B, 稱A是B的真子集,表示爲A B。
若是所研究的集合皆爲某個集合的子集時 , 稱該集合爲全集 , 記爲E
(3) 根據(1)和(2) ,對於任意兩個集合A、B,A=B的充要條 件是A∈B且B∈A。
3:冪集
設A是集合,A的全部子集組成的集合稱爲A的冪集,表示 爲2A或ρ(A)。
例 如 ,A= {a,b,c} ,
則 有ρ(A) = { ∅,{a},{b},{c},{a,b},{b,c}, {a,c},{a,b,c}}
當A是 有 限 集 , #A=n, 則 ρ(A) 的 元 素 數 爲C0n+C1n+…+Cn=2n
可是有一個例外,空集∅是任何集合的一個子集
4:集合的運算
( 1 ) 設 兩 個 集 合A、B, 由A和B的 所 有 共 同 元 素 構 成 的 集 合,稱爲A和B的交集,表示爲A∩B。
(2) 設兩個集合A、B, 全部屬於A或屬於B的元素組成的集 合,稱爲A和B的並集,表示爲A∪B。
(3) 設兩個集合A、B, 全部屬於A而不屬於B的一切元素組 成的集合,稱爲B對A的補集,表示爲A-B。
(4) 設兩個集合A、B,全部序偶(a,b)組成的集合,稱爲A、B的笛卡爾乘積,表示爲A×B。
A×B={(a,b)|a∈A且b∈B}
好比:A = {a,b,c},B={0,1},則A*B = {(a,0),(a,1),(b,0), (b,1), (c,0) ,(c,1) }
可是要注意一點,序偶的元素排序是有順序的,不可以隨意的顛倒,(a,b)和(b,a)是不一樣的兩個序偶,因此說若是兩個序偶相等, 應該是對應元素相同, 例如,(a,b)=(c,d),應有a=c和b=d。
對任意集合A、B、C有以下運算律:
(1)A∪A=A,A∩A=A; (2)A∪B=B∪A,A∩B=B∩A;
(3) (A∪B)∪C=A∪(B∪C), (A∩B)∩C=A∩(B∩C);
(4)A∪(B∩C)=(A∪B)∩(A∪C),A∩(B∪C)= (A∩B)∪(A∩C); (5)A∪(A∩B)=A,A∩(A∪B)=A; (6)A∪A=E,A∩A= ∅ (7)A∪B=A∩B,A∩B=A∪B; (8)E∪A=E,E∩A=A;
(9)A∪∅ =A,A∩∅ =∅
5:關係
說到關係,咱們平時用的大於,小於,等於,包括等都是屬於關係,下面我引用蔣老師的書中的描述來講一下關係的形式定義:
定義1.1.1 設A是一個集合,A×A的一個子集R,稱爲是 集合A上的一個二元關係,簡稱關係。
對於a∈A,b∈A,若是(a,b)∈R,稱a和b存在關係R,表示 爲aRb;若是(a,b)∈|R,稱a和b不存在關係R,表示爲a/Rb。
例如 , 天然數集合N中的大於關係 , 可表示爲 > ={(a,b)|a,b∈N且a>b}
當有兩個集合A、B,則從A到B的關係是A×B的一個子集。
定義1.1.2 設集合A,R是A上的關係:
對每一個a∈A,若是有aRa,稱R是自反的; 對 於a,b∈A, 如 果 有a R b, 又 有b R a, 稱R是 對 稱 的 ; 對 於a,b∈A, 如 果 有a R b和b R a, 則 必 有a=b, 稱R是 反對稱的 ; 對於a,b,c∈A,若是有aRb和bRc,則有aRc,稱R是傳遞的;對每一個a∈A,若是a/Ra,稱R是反自反的。
例如 , 數之間的相等關係 , 具備自反性、對稱性和傳遞性 , 小於 關係和大於關係沒有自反性 , 但有傳遞性。
定義1.1.3 設R是非空集合A上的一個關係,若是R有自 反性、對稱性和傳遞性 , 則稱R是一個等價關係。
由等價關係R能夠把A分爲若干子集, 每一個子集稱爲一個等 價類 , 同一等價類中的元素互相是等價的.
定義1 .1 .4 設R是集合A上的一個關係,若是R有自反性、 反對稱性和傳遞性,則稱R是偏序關係(或部分序關係)。
這個值得說一下,如今套用書中的例子
設集合C={2,3,6,8},R是集合C上的整除關係,即R= {(x,y) |x,y∈C且x整除y}
能夠獲得:
R= {(2,2), (3,3), (6,6), (8,8), (2,6), (2,8), (3,6)}
結合上面的偏序關係,咱們能夠描寫出關於偏序的圖,叫作哈斯圖,有興趣的能夠百度瞭解下,並非很重要的東西.
定 義 1 . 1 . 5 設R是 集 合A上 的 關 系 , 如 果 另 有 關 系R′滿 足:
(1)R′是傳遞的(自反的,對稱的) ; (2)R′R; (3) 對任何傳遞的(自反的、對稱的)關係R′′,當有R′′R,就
有R′′R′,則稱關係R′是R的傳遞(自反、對稱)閉包。R的自反閉包表示爲r(R),R的對稱閉包表示爲s(R),R的
傳遞閉包表示爲t(R)。若是給定一個集合A上的關係R, 可用如下方法找出傳遞閉
包t(R),自反閉包r(R)和對稱閉包s(R):
(1)r(R)=R∪IA,其中IA ={(x,x)|x∈A};
(2)s(R)=R∪R-1;
(3)t(R)=R∪R2∪…∪Rn,其#A=n。
舉個例子:
設集合A={a,b,c},A上的關係R={(a,b),(b,b), (b,c)},則R的傳遞閉包爲
t(R) = {(a,b) , (b,b) , (b,c) , (a,c)} , 而R的自反傳遞閉包表示爲
tr(R) = {(a,a), (a,b) ,(b,b), (b,c), (a,c) ,(c,c)}。 從此用R+ 表示R的傳遞閉包,用R* 表示R的自反傳遞閉包。
定義1.1.6 映射是關係的一個特殊類型 , 也稱函數。設集合A和B,f是從A到B的一個關係,若是
對每個a∈A,有唯一的b∈B,使得(a,b)∈f,稱關係f是函 數,記爲f:A→B。
若是存在(a,b)∈f,則a是f的自變量,b是f做用下的像點,所以(a,b)∈f亦可寫成f(a) =b。
由 定 義 1 .1 .6 可 知 , 函 數 有 如 下 特 點 :
(1) 函數f的定義域是A, 不能是A的某個真子集。
(2) 一個a∈A只能對應於唯一的一個b,或者說f(a)是單值的。
f的值域是B的子集,記爲Rf。
函數的幾種特殊類型是 :
(1) 對於f:A→B。若是f的值域Rf =B,即B的每個元素
都是A中一個或多個元素的像點,則稱f是滿射的。 例如,集合A={a,b,c,d},B={x,y,z},若是f:A→B爲:
f(a)=x,f(b)=x,f(c)=y,f(d)=z則f是滿射的。
(2) 對於f:A→B。若是A中沒有兩個元素有相同的象點, 則稱f是入射的,即對於任意a1,a2∈A:
若是a1 ≠a2,則有f(a1)≠f(a2),或者若是f(a1)=f(a2), 則有a1 =a2。
例如,集合A={a,b},B={x,y,z},若是f:A→B爲:f(a) =x,f(b)=y,則稱f是入射的。
(3) 對於f:A→B。若是f既是滿射的,又是入射的,則稱f是雙射的 , 或稱是一一對應的。
例如,集合A={a,b,c},B={1,2,3},
若是f:A→B爲f(a) = 3,f(b) = 1,f(c) = 2
則稱f是雙射的,或者說是一一對應的。
定義1.1.7 設非空集合A,∏={π1,π2,…,πn},其中πi n
A,πi≠∅ (i=1,2,…,n),若是有∪πi=A且πi∩πj=∅ (i≠j),i=1
則稱∏是A的劃分。其中πi是一個劃分塊。
例如,集合S={a,b,c,d},考慮下列集合:
A={{a,b},{c,d}}
B= {{a},{b},{c},{d}}C= {{a},{b,c,d}}
D= {{a,b,c,d}}E={{a,b},{b,c,d}}F= {{a,b},{c}}
則A、B、C和D都是S的劃分,E和F則不是S的劃分。
定義1.1.8 設有集合A、B,若是存在雙射函數f:A→B,則 說A和B有相同的基數,或者說A和B等勢,記爲A~B。
一個無限集 , 存在着它與其自身的一個真子集有 相 同的基數。這裏Ne 和天然數集合都是無限集。
一般 , 考慮一個無限集的基數時 , 老是看它與天然數集合可否 創建一一對應。能與天然數集合創建一一對應的無限集稱爲可數集 ; 不能與天然數集合創建一一對應的無限集稱爲不可數集。
例如:整數集合是可數集; 集合{1, 3, 5, 7, …}是可數集; 實數 集合R是不可數集;集合{x|x∈R,0<x<1}是不可數集,其中R是實數。
6:證實和證實方法
形式語言和有限自動機,有很強的理論性, 許多的論斷是以定理的形式給出的,而定理的 正確性是須要進行證實的。
形式語言和有限自動機理論中定理的證實大多使用反證法和概括法進行。
(1):反證法
反證法也稱爲歸謬法。利用反證法證實一個命題時 , 通常的步驟爲 :
假設該命題不成立; 進行一系列的推理; 若是在推理的過程當中,出現了下列狀況之一:
1 與已知條件矛盾;
2 與公理矛盾;
3 與已證過的定理矛盾;
4 與臨時的假定矛盾;
5 自相矛盾。 因爲上述矛盾的出現,能夠斷言「假設該命題不成立」的假定是不正確的; 確定原來的命題是正確的。
(2)概括法
概括法就是從特殊到通常的推理方法。分爲徹底概括法和不徹底概括法兩種形式。
徹底概括法是根據一切狀況的分析而做出的 推理。由 於必 須考慮 全部 的狀況 , 所 以得 出 的結論是徹底可靠的。
不徹底概括法是根據一部分狀況做出的推理 , 所以 , 不能做爲嚴格的證實方法。 在形式語言與有限自動機理論中 , 大量使用數學概括法證實某個命題。數 學 歸 納 法 可 以 使 用「 有 限 」步 驟 來 解 決「 無 限 」的 問 題 。數學概括法的原理爲 :
假定對於一切非負整數n, 有一個命題M(n) , 假設證實了 :
(1)M(0) 爲真; (2) 設對於任意的k≥0,M(k) 爲真,若是可以推出M(k+ 1) 爲真,則對一切n≥0,
M(n) 爲真。所以,在使用數學概括法證實某個關於非負整數n的命題P(n) 時,只須要證實(1)、(2)
兩點便可。第(1)步稱爲概括基礎, 第(2)步稱爲概括步驟。第(2)步中「設對於任意的k≥ 0,M(k) 爲 真 」, 稱 爲 歸 納 假 設 。
在實際應用中,某些命題P(n)並不是對n≥0都成立,而是對n≥N(N爲大於0的某個自 然數)成立, 此時,也同樣可使用該概括法。具體步驟以下。
假定對於一切非負整數n, 有一個命題M(n), 假設證實了:
(1)M(N) 爲真; (2)設對於任意的k≥N,M(k)爲真,若是可以推出M(k+1)爲真,則對一切n≥N,
M(n) 爲真。
好比說用概括法證實下遞歸:
概括法證實遞歸定義集合性質的步驟以下。(1) 基礎:證實該集合中的最基本元素具備性質P; 並且使得該集合非空; (2) 概括: 證實若是該集合的元素x1 ,x2 ,x3 , …,具備性質P, 則使用某種運算、函數或組
合方法對這些元素進行處理後所得的元素也具備性質P;
(3) 由概括法原理,集合中的全部元素也具備性質P。
這上述的大概是集合的可以歸納的全部知識點了,只須要了解便可,在下一篇文章中,將會描述一下邏輯和圖論的問題,而後基礎知識將很快學完,開始真正有意思的部分