自動機理論的中心概念

2022-08-04 09:45:10 字數 1681 閱讀 9728

字母表:

字母表是符號的有窮非空集合。用「σ」符號表示字母表。常見的字母表包括:

σ=,二進位制字母表

σ=,所有小寫字母的集合

串:串(有時候被稱為單詞)是從某個字母表中選擇的符號的有窮序列。

空串:空串是出現0次符號的串。這個串記作ε,是可以從任何字母表中選擇的串。

串的長度:

串的長度,即串中的符號的位數。串的長度的標準記號是|w|。例如 |011|=3。

字母表的冪:

如果σ是乙個字母表,就可以用指數記號來表示這個字母表某個長度的所有串的集合。定義σk是長度為k的串的集合,而串的每個符號屬於σ。

串的連線:

設x和y都是串。於是,xy表示x和y的連線,也就是說,用x的乙個副本後面跟著y的乙個副本所形成的串。

克萊尼星號:

設集合s是乙個字元集合,則s*表示由這個字元集合中的字元組成的字串集合。

語言:σ是某個具體的字母表,全都從σ*中選出的串的某個集合表示語言。如果σ是字母表,並且l是σ*的子集,則l是σ上的語言。注意,σ上的語言不必包含帶有σ所有符號的串,所以一旦確定l是σ上的語言,也就知道了l是任何是σ超集(即包含集合σ的集合)的字母表上的語言。

關於什麼是語言,唯一重要的約束就是所有字母表都是有窮的。因此語言可以有無窮多個串,但限制這些串為從乙個固定的有窮字母表中取出的。

問題:在自動機理論中,乙個問題就是判定乙個給定的串是否是屬於某個具體語言的提問。更準確地說,如果σ是字母表,l是σ上的語言,則問題l就是:

集合表示法作為一種定義語言的方式,常用的「集合表示法」:,來描述乙個語言。這個表示式讀作:「單詞w的集合,使得w如此這般」

文法:g=(v,t,p,s),其中

文法的簡寫形式:

只寫產生式,如果幾個產生式的左端相同,則把右端的結果用」|「連線起來。第乙個產生式的左端符號表示起始符。

文法推導:

例如:

語言的文法定義:設g=(v,t,p,s)是一種文法,則由這種文法定義的語言定義為:

不同的推導型別:

文法的分類:

不同型別文法的區分:

1型文法:1)產生式的左邊可以有多個字元,但必須有乙個非終結符

2)產生式的右邊,可以是終結符,也可以是非終結符,但必須是有限個字元

2型文法:1)產生式的左邊只能有乙個字元,而且是非終結符

2)產生式的右邊,可以是終結符,也可以是非終結符,但必須是有限個字元

3型文法:1)產生式的左邊只能有乙個字元,而且是非終結符

2)產生式的右邊,最多只有兩個字元:i:如果只有乙個字元,那麼必須是終結符

ii:如果有兩個字元,那麼一定是乙個終結符和乙個非終結符

3型文法包括左線形文法、右線形文法、正規文法:

左線形文法:產生式的右部要麼沒有非終結符,如果有非終結符也只能有乙個,並且非終結符只能位於產生式右端的最左邊

右線形文法:產生式的右部要麼沒有非終結符,如果有非終結符也只能有乙個,並且非終結符只能位於產生式右端的最左邊

正規文法:正規文法是右線形文法的乙個子集,其產生式的右端只有三種情況:

空串只有乙個終結符

只有乙個終結符後接乙個非終結符

AC自動機理解

對於ac自動機可能有的疑問。首先上 該 使用char型陣列儲存,事實上string也完全可以。includeusing namespace std char s 1000005 struct tree 字典樹 ac 1000000 trie樹 int cnt 0 trie的指標 inline voi...

形式語言與自動機理論總結

一 圖形總結。重點 喬姆斯基體系 四大文法之間的關係 二 文字詳解。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的二元...