自动机理论

作者: SHAN某人 | 来源:发表于2018-11-12 21:02 被阅读1次

自动机

自动机是一种理想化的“机器”,它只是抽象分析问题的理论工具,并不具有实际的物质形态。它是科学定义的演算机器,用来表达某种不需要人力干涉的机械性演算过程。根据不同的构成和功能,自动机分成以下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)} 其中γ为希腊字母Γ(伽马)小写

相关文章

  • 自动机理论

    自动机 自动机是一种理想化的“机器”,它只是抽象分析问题的理论工具,并不具有实际的物质形态。它是科学定义的演算机器...

  • 第八章 匹配原理

    8.1 有穷自动机 正则表达式能迅速进行复杂处理的秘密就在于,它采用了一种特殊的理论模型:有穷自动机(finite...

  • 计算复杂性 自动机模型

    简介 本节主要是介绍计算理论上的一些基本概念, 和一个最简单的计算模型, 即自动机模型. 自动机模型能解决的问题相...

  • AC自动机 专题整理

    AC自动机学习记录 参考资料 字典树(讲解+模版)AC自动机算法AC自动机算法详解hdu 2222 ac自动机入门...

  • 正则表达式的基本使用 2018-07-30

    正则表达式是编程过程中进行字符串模式识别、字符串处理的强力工具。学过一些自动机理论就知道正则表达式其实是有穷自动机...

  • 字符串算法小结

    hash kmp和ac自动机 后缀数组,后缀自动机,后缀树 扩展kmp manacher算法 回文自动机 可删改的...

  • 程序设计语言|有限自动机

    有限自动机是一种识别装置的抽象概念,它能准确地识别正规集。有限自动机有两类:确定的有限自动机和不确定的有限自动机。...

  • 课程学习——有限自动机理论

    一、Chomsky对文法和语言对分类   Chomsky的分类依据是产生该语言的文法。 0型文法   所有一般的P...

  • 8.2 正则表达式的匹配过程

    正则表达式所使用的理论模型就是有穷自动机,其具体实现称为正则引擎(regex engine)。用正则表达式处理字符...

  • 什么是自动机器学习?它有哪些用处?

    一、认识自动机器学习 1、自动机器学习的概念: 自动机器学习(AutoML) 旨在通过让一些通用步骤 (如数据预处...

网友评论

    本文标题:自动机理论

    本文链接:https://www.haomeiwen.com/subject/wkugxqtx.html