网站大量收购独家精品文档,联系QQ:2885784924

第03章 有穷状态自动机-16、17、18节课-2013-10-15课件.ppt

第03章 有穷状态自动机-16、17、18节课-2013-10-15课件.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章 有穷状态自动机-16、17、18节课-2013-10-15课件

图3-5 接受语言 {x000| x ? {0, 1}*} ?{x001| x ? {0, 1}*}的DFA 定义3-6 设M = (Q, ?, ?, q0, F)为一个FA,对?q ? Q,能引导FA从开始状态q0 到达q的字符串的集合为 set(q) = {x| x ? ?*, ?(q0, x) = q} 根据状态进行划分 根据图3-5所给的DFA, set(q0) = {x| x? {0, 1}*, x = ?或x以1但不包括001结尾} set(q1) = {x| x? {0, 1} *, x = 0或x以10结尾} set(q2) = {x| x? {0, 1} *, x = 00或x以100结尾} set(q3) = {x| x? {0, 1} *, x以000结尾} set(q4) = {x| x? {0, 1} *, x以001结尾} 它们是对{0, 1}*的划分 例3-5 构造一个接受语言{x | x ? {0, 1}*, 且当把x看成 二进制数时,x模3与0同余}的DFA 分析:模3同余自然就构成了二进制数的一个划分。 该划分导致3个集合: {3n| n为非负整数},其元素包括{0, 11, 110, 1001,…}; {3n + 1| n为非负整数},其元素包括{1, 100, 111, 1010,…}; {3n + 2| n为非负整数} ,其元素包括{10, 101, 1000, 1011,…}。 例3-5(续) 先画出如下三个状态。 q0 : 希望能代表{3n| n为非负整数} q1 : 希望能代表{3n + 1 | n为非负整数} q2 : 希望能代表{3n + 2 | n为非负整数} 例3-5(续) 当 x = 3n时, x0 = 2*3n + 0,仍然应由q0代表 x1 = 2*3n + 1,应由q1代表 当 x = 3n + 1时, x0 = 2*(3n + 1) + 0 = 6n + 2,应由q2代表 x1 = 2*(3n + 1) + 1 = 6n + 3,应由q0代表 当 x = 3n + 2时, x0 = 2*(3n + 2) + 0 = 6n + 3 + 1,应由q1代表 x1 = 2*(3n + 2) + 1 = 6n + 3 + 2,应由q2代表 例3-5(续) 其状态转移图(部分)如下所示: 例3-5(续) 应将q0设置为终止状态。 空句子不可能代表二进制数,所以应设置一个新的状态qs作为初始状态,在qs下读入0应转到状态q0 ,读入1则应转到状态q1。 例3-5(续) 其完整状态转移图如下所示: 思考 为表示模3与1同余,应怎样画状态图? 模4与0同余呢? 练习(补充) 构造一个接受语言{x | x ? {0, 1}+, 且当把x看成二进制数时,x模4与0同余}的DFA 习题评讲 例3-4 接受语言{0n1m2k |n, m, k ? 1}的DFA q0 : 启动状态,未读入任何字符 q1 : 已读入一个或多个0 q2 : 到达q1状态后读入一个或多个1 q3 : 到达q2状态后读入一个或多个2 例3-4(续) 出现该语言不能接受的序列时进入陷井状态qt (t表示trap) 注意 当FA进入陷井状态后,就无法离开。 用画图的方式构造FA比较方便、直观。 可以先根据语言的主要特征画出其 “主体框架”,再考虑一些细节要求。 FA的状态具有一定的记忆功能,不同的 状态对应于不同的情况。 FA的记忆功能 如:构造语言 {x000y| x, y ? {0, 1}*}的FA时,需要记忆已经读入0个连续的0,已经读入1个连续的0,已经读入2个连续的0,已经读入至少3个连续的0等至少4个状态。 当需要记忆无穷个状态时,就无法构造相应的FA。如语言 {0n1n| n ? 1} 。 语言 {0m1n| m, n ? 1} 需要4个状态。 例3-6 例 3-6 构造一个DFA,它接受的语言L={x|x∈{0,1}*,且对x中任意一个长度不大于5的子串a1a2…an, a1+a2+…+an≤3,n≤5} 。 输入串为 a1a2…ai…ai+4ai+5…am 例3-6(续) 当i=1,2,3,也就是M读到输入串的第1、2、3个字符时,它需要将这些字符记下来。 因为a1……ai可能需要用来判定输入串的最初4~5个字符组成的子串是否满足语言的要求。 当i

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档