确定有限状态自动机

title: 基础概念.
title: 定义.
content: 确定有限状态自动机formula_2是由 所组成的5-元组。因此一个DFA可以写成这样的形式:formula_9。
title: 工作方式(非正式的语义).
content: 确定有限状态自动机从起始状态开始,一个字符接一个字符地读入一个字符串formula_10(这里的formula_11指示Kleene星号算子。),并根据给定的转移函数一步一步地转移至下一个状态。在读完该字符串后,如果该自动机停在一个属于F的接受状态,那么它就接受该字符串,反之则拒绝该字符串。
title: 扩展转移函数.
content: 为了在保证严谨的前提下,方便地叙述关于DFA的内容,我们定义如下扩展的转移函数:
title: 工作方式(正式的语义).
content: 对于一个确定有限状态自动机formula_9,如果formula_17,我们就说该自动机接受字符串w,反之则表明该自动机拒绝字符串w。  被一个确定有限自动机接受的语言(或者叫“被识别的语言”)定义为:formula_18接受字符串formula_19,也就是由所有被接受的字符串组成的集合。
title: DFA与有向图.
content: 除了数学上的严谨表述,通常为了讨论方便,也使用状态图直观地表示DFA。不难发现,对于一个给定的DFA,存在唯一一个对应的有向图(但是严格意义上一个有向图不能确定出唯一一个DFA)。有向图的每个结点对应一个状态,每条有向边对应一种转移。习惯上将结点画成两个圈表示接受状态,一个圈表示拒绝状态。用一条没有起点的边指向起始状态。  除了在表述上方便以外,在研究某些问题(如“给定的DFA的语言是否为无穷集合”)时,状态图也提供了有效的解法。
title: 利弊.
content: DFA是一种实际的计算模型,因为有平凡的线性时间、恒定空间的在线算法模拟在输入流上的DFA。给定两个DFA有有效算法找到识别它们所识别语言的并集、交集和补集的DFA。还有有效算法确定一个DFA是否接受任何给定字符串,一个DFA是否接受所有字符串,两个DFA是否识别同样的语言,和对特定正则语言找到状态数目最小的DFA(最小DFA)。  在另一方面,DFA在可识别的语言上有严格的限制—很多简单的语言,包括需要多于恒定空间来解决的任何问题,不能被DFA识别。经典的DFA不能识别的简单语言的例子是括号语言,就是由正确配对的括号组成的语言,比如 (()())。由形如ab的字符串组成的语言,就是有限数目个a,随后是相等数目个b。可以证明没有DFA有足够状态来识别这种语言(通俗地说,因为需要至少2n个状态,而n是不恒定的)。
title: 例子.
content: 下面是一个确定有限状态自动机的例子。 确定有限状态自动机formula_9 状态formula_30表示在输入的字符串中有偶数个0,而formula_31表示有奇数个0。在输入中1不改变自动机的状态。当读完输入的字符串的时候,状态将显示输入的字符串是否包含偶数个0。  formula_2能识别的语言是formula_33。用正则表达式表示为:formula_34。
title: 封闭性及一些运算.
title: 封闭性.
content: 确定有限状态自动机的交,并,差,补,连接,替换,同态,逆同态等运算是封闭的,也就是说确定有限状态自动机通过这些运算产生的新的自动机也是确定有限状态自动机。
title: 补运算.
content: formula_35是一个DFA,那么由补运算产生的新DFA定义为:formula_36。显然只要将formula_2中接受的状态设为不接受的状态,同时把不接受的状态设为接受的状态就得到formula_38。补运算的复杂度是:formula_39。
title: 交运算和并运算.
content: 有两个DFA,formula_40和formula_41,那么由这两个DFA创造出来的新的自动机定义为:formula_42。其中formula_43,formula_44为formula_45的开始状态,formula_46为formula_45的转移函数,且作如下定义:formula_48。  交运算和并运算的复杂度都是formula_65。
title: 同态和逆同态运算.
content: 一个同态函数formula_66可以递归的定义为: 于是则有formula_69。(以上所述中formula_70为空字符,formula_71)  此外替换运算和逆同态运算的方法近似。
title: 最小自动机.
title: 等价类自动机.
content: 对于一个正则语言,接受该语言的等价类自动机是一个formula_79的5-元组。其定义如下: ~被称为Nerode关系,是Myhill-Nerode定理的基础。简单的来说就是对于任意formula_84,如果formula_85,那么x~y。
title: 唯一性.
content: 对于任意给定的确定有限状态自动机都能找到一个与之计算能力等价的最小确定有限状态自动机,简称最小自动机。该最小自动机中状态的数量等于能识别相同语言的等价类自动机中等价关系的数量,我们可以称最小自动机和等价类自动机“实际上”是相等的,也就是同构。非正式的说法是:对于最小自动机上的任意状态都可以通过一个同构函数变换成等价类自动机上的一个状态。  能识别一个正则语言的等价类自动机是唯一的,因此能识别该语言的最小自动机也是唯一的。
title: 算法.
content: 定义一个非等价关系:formula_86,如下步骤可以得到这个集合N:  以下是由一个任意DFA转换到一个最小DFA的步骤: 这样就得到了接受相同语言的最小自动机。复杂度为formula_89。

Summary: 在计算理论中,确定有限状态自动机或确定有限自动机(英语:deterministic finite automaton, DFA)是一个能实现状态转移的自动机。对于一个给定的属于该自动机的状态和一个属于该自动机字母表formula_1的字符,它都能根据事先给定的转移函数转移到下一个状态(这个状态可以是先前那个状态)。

Deterministic finite automaton: In the theory of computation, a branch of theoretical computer science, a deterministic finite automaton (DFA)—also known as deterministic finite acceptor (DFA), deterministic finite-state machine (DFSM), or deterministic finite-state automaton (DFSA)—is a finite-state machine that accepts or rejects a given string of symbols, by running through a state sequence uniquely determined by the string. "Deterministic" refers to the uniqueness of the computation run. In search of the simplest models to capture finite-state machines, Warren McCulloch and Walter Pitts were among the first researchers to introduce a concept similar to finite automata in 1943.