Deterministic Finite Automaton
对于一个alphabet ,我们称一个有限长字符序列为下的一个word,全体word(也即全体有限长字符序列)记为。定义下的一个语言(language)为的一个子集(也即某个)。
长度为0的word记为,这也是一个word;,这也是一个language;
DFA
一个确定性有限状态自动机(deterministic finite automaton, DFA)是一个五元组。其中,是一个有限大小的集合,称为状态集(set of states);是一个alphabet;称为状态转移函数(transition function),在任意状态,通过字符做状态转移,会到达状态,这一过程可以简写为;,称为初始状态(initial states);,称为终止状态集合(set of final states)。
对于中的一个word ,如果从的初始状态开始,依次以做状态转移,最终到达某个终止状态,就称自动机接受word 。如果终止状态,就称自动机不接受。规定,语言能被任何自动机接受。
如果上的一个language 中的每个word都能被自动机接受,并且每个不属于的word都不被接受,就称接受language 。此时可以记作。
NFA
一个非确定性有限状态自动机(nondeterministic finite automaton, NFA)是一个五元组。其中,是一个有限集,依然称为状态集;,NFA中空串也可以做状态转移;NFA的状态转移函数定义为,也即状态转移可以同时到达多个状态(有多条同一个字符的状态转移边);初始状态也有多个,;终止状态的定义和DFA相同,。
对于中的一个word ,如果存在状态序列满足,就称接受。和原先一样,如果接受的word集合恰好是language ,就称接受语言。
Regular Expressions
给定alphabet ,是否每个下的language都存在某个DFA或NFA能接受它?“全体能被某个DFA接受的language集合”和“全体能被某个NFA接受的language集合”相比,哪个集合更大?第一个问题的答案是否定的,一般只有一部分language能被DFA或NFA接受,这类language被称为是regular的;第二个问题的答案是,这两个集合恰好相等,也即DFA和NFA在表达能力上等价。
DFA与NFA表达能力的等价性
下面证明对于下的任意一个language ,存在一个DFA 能接受当且仅当存在一个NFA 能接受。
还没写
Regularity
对于,我们证明language (可以简写为)不能被任何NFA或DFA接受。只需证明不能被NFA接受。Pf. 如果存在这样一个NFA接受该language,那么对于任意,能被该NFA接受,那么该NFA上存在一个状态转移序列:出发,做次字符的转移,到达状态,再做次字符的转移,到达状态。对于足够大的,这一过程经过的个状态一定有重复(因为状态总数是有限的),假设重复发生在第个字符转移到第个字符时,这意味着状态转移形成了环,自动机可以在该环上重复转移任意多次,最终依然到达终止状态,这样接受的字符串一定不在language当中,矛盾。 Qed.
那么,符合什么条件的language是能被NFA接受的呢?我们先考察一下能被NFA接受的language的特性,根据这些特性总结出一套称为“正则表达式”的表达字符串的方法,然后证明一个language能被某个NFA接受当且仅当其能用正则表达式表示。
还没写。
Infinite Words
定义下的infinite word为,。下的全体infinite word集合记为。
对于一个下的language ,也即对于,记表示集合,它是中的word拼成的infinite word集合。注意,如果,那么中包含finite word,根据定义,性质不成立;如果,那么成立。
NBA
我们无法判定一个infinite word是否被NFA接受,因为它永远不会停止状态转移。如何用一个有限状态自动机来定义一个无限字符串是否被接受呢?一个方法是判断:在状态转移过程中,是否无穷次经过终止状态。
非确定性Buechi自动机(nondeterministic Buechi automata, NBA)定义如下: