- 1、本文档共70页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
正则表达式的运算符 | 表示或“ * 表示“闭包“—任意有限次(零次或多次)的自重复连接 . 表示“连接“,一般省略 运算优先级 “ * ”, 高于 “ .” ,高于 | 整数的状态转换图 从正规式出发构造状态转换图 连接 a b 或者 a | b 多次 a * 正规式(a|b)*(aa|bb) (a|b)*的状态转换图 正规式 ((0|1)*|(11)*) *的状态转换图 自动机:m个状态和n个输入字符对应的状态转换图: m个状态结点,弧上用字符标记 将NFA变换成DFA的过程(确定化) 闭包ε_CLOSURE(I) I是M’的状态集的子集,I的ε闭包ε_CLOSURE(I)为: (a)若q ? I,则q ? ε_CLOSURE(I); (b)若q ? I,则从q 出发经任意条ε弧能到达的任何状态q’, q’? ε_CLOSURE(I); 定义Ia = ε_CLOSURE(J), J是那些可从I中的某个状态结点出发经过一条a弧能到达的状态结点的全体。 将NFA变换成DFA的过程 (1)确定化 (用子集法) 假设?={a1,a2,a3,…,ak},构造状态转换矩阵, 该表有k+1列,第一行第一列为ε_CLOSURE(X), X是初态结点;如果某行第一列的状态子集为I,那么该行的第i+1列为Iai,检查该行所有状态子集,新出现的状态填入下一行第一列,重复上述过程,直至没有新状态出现为止 新的状态转换矩阵 把状态转换矩阵中每个状态子集视为新的状态,对应的状态转换图是一个DFA M’’,其初态是第一行第一列的状态,终态是含有原终态的状态子集 得到与新的状态转换矩阵相对应的DFA (2) 最小化,化简DFA 例:与正规式(a|b)*(aa|bb) (a|b)* 等价的DFA 正规式 1.(状态转换图)DFA变换成正规文法 状态 转换弧上的字符 初态 转换关系 例:语言L是所有由偶数个0或者偶数个1组成的句子的集合,给出L的正规文法。 正规文法变换成状态转换图 正规文法变换成状态转换图 例:构造文法G(S)的自动机,其相应的语言是什么? G(Z): Z →A0 A → A0|Z1|0 1)从正规式r出发构造NFA (1)引入一个新的开始结点X和一个终止结点Y, 从X到Y 连一条弧,弧上标记为r (2)分解状态转换图 对状态转换图进行替换,重复进行,直至状态转换图中每条弧上都只有一个终结符或者为ε,最终得到的状态转换图,对应的NFA与正规式r等价。 替换规则: 例:一个NFA M=({0,1,2,3,4},{a,b},f,{0},{2,4})其中 f(0,a)={0,3} f(2,b)={2} f(0,b)={0,1} f(3,a)={4} f(1,b)={2} f(4,a)={4} f(2,a)={2} f(4,b)={4} 它的状态图表示如图4.3所示: ∑*上的符号串t被NFA N识别(读出、接受)... DFA是NFA的特例 对每个NFA N存在一个DFA M ,使得L(M)=L(N) 对于任何两个有穷自动机M和N,如果L(M)=L(N),则称 M与N是等价的 对于?*中的任意符号串β , 在转换图中存在一条从初态结点到某一终态结点的通路,该通路上所有弧的符号依次连接成的符号串(忽略标记为为ε 的弧)为β , 则称转换图识别符号串β,β可为DFA M所识别 三.NFA转换为等价的DFA 定理:设L为一个由不确定的有穷自动机接受的集合,则 存在一个接受L的确定的有穷自动机 将NFA转换成接受同样语言的DFA,这种算法称为子集法 思考:Ia = ε_CLOSURE(J)和状态集合I的关系? (1)正规式对应的NFA 为: X 5 1 ε ε a b 2 6 Y ε ε a b 3 4 a b a b Ib Ia I (2)其状态转换矩阵如下: {X,5,1} {5,3,1} {5,4,1} {5,3,1} {5,4,1} {5,3,1,2,6,Y} {5,4,1} {5,3,1} {5,4,1,2,6,Y} {5,3,1,2,6,Y} {5,4,1,6,Y} {5,4,1,2,6,Y} {5,3,1,2,6,Y} {5,4,1,6,Y} {5,3,1,6,Y} {5,4,1,2,6,Y} {5,3,1,6,Y} {5,4,1,2,6,Y} {5,3,1,6,Y} {5,3,1,2,6,Y} {5,4,1,6,Y} 5 3 6 4 6 5 4 6 4
文档评论(0)