- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 有穷自动机 3.2 有穷自动机的形式定义 DFA: Deterministic Finite Automata NFA: Nondeterministic Finite Automata DFA的定义 定义3.1 一个确定的有穷自动机(DFA) M是一个五元组: M = ( K, Σ, f, S, Z ) (1)K是一个非空有穷集合,它的每一个元素称为一个状态; (2)Σ是一个有穷字母表,它的每一个元素称为一个输入字符; Σ也称为输入符号字母表 确定的有穷自动机DFA的表示(续) 3.2.2 状态转换矩阵 矩阵的行表示状态,列表示输入字符,矩阵元素表示相应的状态行在输入字符列下的新的状态,即f(k,a)的值。 3.2.3 有关自动机术语 (1)道路:对于Σ*中的任何字α,若存在一条从初态到某终态的路径。 (2)识别:道路上所有弧的标记连接成的字等于α,则称α可为DFA M所识别(所接受)。 即若t∈Σ*, f(S,t)=P,其中S为DFA M的初始状态,P∈Z(终态集)。 若M的初态结同时也是终态结,则空字ε可为M所识别,即Q∈K, f(Q, ε)=Q (3)运行: f(Q, t1t2) = f(f(Q, t1), t2),其中Q∈K, t1t2为输入字符串,且t1 ∈Σ,t1t2 ∈Σ* 有限自动机识别的语言 例子 例:下图中的自动机所能识别的语言是什么? NFA的表示 用状态转换图(∵ f是多值函数) 由NFA的定义,可把一个含有m个状态和n个输入字符的NFA表示如下: 图中有m个状态结,对每个状态结可射出若干条弧和别的状态结相连,且每条弧用Σ*中的一个字(不一定要不同的字且可以是空字ε)作标记(或称输入字)。整个图中至少含有一个初态结以及若干个(可以是0个)终态结。某些结既可以是初态结也可以是终态结。 补充:递归思想构造文法 在某些复杂的语言中,字符串可能包含一种结构,它递归地作为另一种(或者同一种)结构的一部分而出现,可利用递归思想来构造对应的文法。 例1:定义语言L={ω| ω中a和b的个数相同}的文法。 解:先构造出基础情况的文法: S- ab | ba | ε 再递归地构造出归纳情况的文法(新的生成式不能改变a和b的个数关系): S- Sab | aSb | abS | Sba | bSa | baS 递归思想构造文法 (续) 例1:求一个文法G,使得L(G)即该文法的语言是奇数个a和奇数个b的组合。 解: 因为语言是奇数个a和奇数个b的组合,所以打头的最小语言有四种组合: aa bb ab ba 定义S和A,S是表示奇数个 a和奇数个b的组合,而A是表示偶数个a和偶数个b的组合。 开始递归构造文法: S-aaS | bbS | abA | baA …… A-aaA | bbA | abS | baS | ε…… 补充:如何设计有限自动机 如同文法的设计,自动机的设计也是一个创造过程。有一种做法,在设计各种类型的自动机时都很有帮助,即采用一种心理上的技巧,把自己放在要设计的机器的位置上,考虑自己该如何实现自动机的任务。 假定自己是一台有限自动机,接受到一个输入符号串时,必须确定到目前为止所看到的字符串是否可为该自动机所识别。为了能够判断这一点,必须估算出识别时需要记住哪些关键的东西。 为什么不记住所有看到的东西呢?因为你是一台有限自动机,只有有限个状态,而这些状态是你记住事情的唯一办法。输入串可能很长,而你不可能记住所有的事情。 幸运的是,许多语言只需要记住某些关键的信息就可以了。 设计有限自动机(续) 例1:构造一台有限自动机,识别所有由奇数个a和奇数个b组成的字符串。 设计有限自动机(续) 例1:(1)到此为止是偶数个a和偶数个b; (2)到此为止是奇数个a和偶数个b; (3)到此为止是偶数个a和奇数个b; (4)到此为止是奇数个a和奇数个b。 根据每种可能性设计一个状态,并根据可能的输入符号来设计状态之间的转移条件。 设计有限自动机(续) 例2:设计有限自动机M,识别含有00作为子串的所有{0,1|*上的字符串组成的语言。 如:0010,1001,110001001 设计有限自动机(续) 例2自动机的状态转换图为: NFA和DFA的关系 DFA是NFA的一个特例。 对于每个NFA M,存在一个DFA M’,使得L(M)=L(M’) 对于任何两个有穷自动机M和M’,如L(M)=L(M’)则称M和M’是等价的。 如果M仅通过重新标记它的状态,就能转换成M’,则M和M’称为
文档评论(0)