自动机理论

自动机

自动机是一种理想化的“机器”,它只是抽象分析问题的理论工具,并不具有实际的物质形态。它是科学定义的演算机器,用来表达某种不需要人力干涉的机械性演算过程。根据不同的构成和功能,自动机分成以下4种类型:有限自动机(finite automata, FA)、下推自动机(pushdown automata, PDA)、线性界限自动机(linear-bounded automata)和图灵机(Turing machine)。

有限自动机

有限自动机又分为确定性有限自动机(definite automata, DFA)和不确定性有限自动机(non-definite automata, NFA)两种。

确定性有限自动机

(确定性有限自动机) DFA M是一个五元组:M=(Σ,Q,δ,q0,F)

其中,Σ是输入符号的有穷集合;Q是状态的有限集合;q0∈Q是初始状态;F是终止状态集合,F⊆Q;δ是Q与Σ的直积Q×Σ到Q(下一个状态)的映射,它支配着有限状态控制的行为,有时也称为状态转移函数。


上图是DFA的原理示意图。其含义是:处在状态q∈Q中的有限控制器从左到右依次从输入带上读入字符。开始时有限控制器处在状态q0,输入头指向Σ*中一个链的最左符号。映射δ(q,a)=q′(q,q′∈Q,a∈Σ)表示在状态q时,若输入符号为a,则自动机M进入状态q′并且将输入头向右移动一个字符。

映射与状态转换图
映射δ(q,a)=q′(q,q′∈Q,a∈Σ)

为了明确起见,终止状态用双圈表示,起始状态用有“开始”标记的箭头表示。如:

DFA M示例:

上图的例子中,Σ输入符号的有穷集合为0和1,Q状态的有限集合为{q1,q0},初始状态q0为q1,F终止状态集合为{q0},δ状态转移方程为 q1(0)->q0 、q1(1)->q1 、q0(1或0)->q0

有限自动机所接受的语言

如果存在一个状态p,有p∈δ(q0, x)且p∈F,则称句子x被NFA M所接受。被NFA M接受的所有句子的集 合称为NFA M定义的语言,记作T(M):

T(M) = {x | p∈δ(q0,x) 且 p∈F }

因而有限自动机可以用来检验句子是否合法

不确定性有限自动机  NFA M

NFA M是一个五元组:

M=(Σ,Q,δ,q0,F)

其中,Σ是输入符号的有穷集合;Q是状态的有限集合;q0∈Q是初始状 态;F是终止状态集合,F⊆Q;δ是Q与Σ的直积Q×Σ到Q的幂集2Q的映 射。 NFA与DFA的重要区别是:在NFA中δ(q, a)是一个状态集合,而 在DFA中δ(q, a)是一个状态。根据定义,对于NFA M有映射: δ(q, a)={q1,q2,…,qk},k≥1 其含义是:NFA M在状态q时,接受输入符号a时,M可以选择状态 集q1,q2,…,qk中的任何一个状态作为下一个状态,并将输入头向右 边移动一个字符的位置。

NFA接受的语言

如果存在一个状态p,有p∈δ(q0, x)且p∈F,则称句子x被NFA M所接受。被NFA M接受的所有句子的集 合称为NFA M定义的语言,记作T(M):

T(M) = {x | p∈δ(q0,x) 且 p∈F }

有定理

设L是被NFA所接受的语言,则存在一个DFA,它能够接受L。

正则文法与有限自动机

因为正则文法是产生式模型,不能很好验证句子是否符合文法规则,通过将正则文法转变成有限自动机形式可以很好地解决这类问题。

若G=(VN,VT,P,S)是一个正则文法,则存在一个 FA M=(Σ,Q,δ,q0,F),使得T(M)=L(G)。 根据这个定理,可以用以下方法由给定的正则文法G=(VN,VT, P,S)构造FA M。具体步骤如下:

(1)令Σ=VT,Q=VN∪{T},q0=S,其中T是一个新增加的非终 结符;
(2)如果在P中有产生式S→ε(空),则F={S,T},否则F={T};
(3)如果在P中有产生式B→a(终止符),B∈VN,a∈VT,则T∈δ(B, a);
(4)如果在P中有产生式B→aC(终止符与非终止符),B,C∈VN,a∈VT,则C∈δ(B, a);
(5)对于每一个a∈VT,有δ(T, a)=∅。

给定正则文法G=(VN,VT,P,S),其中, VN={S,A}, VT={0,1} P:S→0 A A→1 S A→0 构造与G等价的NFA:
(1)设NFA M=(Σ,Q,δ,q0,F),根据上述构造步骤有: Σ=VT={0,1}, Q=VN∪{T}={S,A,T},q0=S, F={T}

(2)映射δ为
δ(S,0)={A} (因为有规则S→0 A)
δ(S,1)=∅ δ(A,0)={T} (因为有规则A→0)
δ(A,1)={S} (因为有规则A→1 S)
δ(T,0)=∅ δ(T,1)=∅

(3)该NFA M的状态转换图可以由上面的映射关系构成,如下图所示。


上下文无关文法与下推自动机

下推自动机(PDA)可以看成是一个带有附加下推存储器的有限自 动机,下推存储器是一个堆栈(stack)。其原理示意图如图所示。


不确定的下推自动机(PDA)可以表达成一个七元组:

M=(Σ,Q,Γ,δ,q0,Z0,F)

其中,Σ是输入符号的有穷集合;Q是状态的有限集合;Γ为下推存储器 符号的有穷集合;q0∈Q是初始状态;Z0∈Γ为最初出现在下推存储器顶 端的开始符号;F⊆Q是终止状态集合;δ是从Q×(Σ∪{ε})×Γ到Q×Γ* 的子集的映射。映射关系δ:

δ(q,a,Z) = {(q1,γ1),(q2,γ2), ... ,(qm,γm)} 其中γ为希腊字母Γ(伽马)小写
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,013评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,205评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,370评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,168评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,153评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,954评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,271评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,916评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,382评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,877评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,989评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,624评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,209评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,199评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,418评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,401评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,700评论 2 345

推荐阅读更多精彩内容