- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * 复习 一.确定有限自动机 确定有限自动机M为一个五元组: M = ( S ,? , s0 ,f ,Z ),其中: S:是一个有穷状态集,它的每个元素称为一个状态; ?:是一个有穷字母表,它的每个元素称为一个输入 字符; s0?S:是唯一的一个初始状态(开始状态); F:是状态转换函数:S??? S,且单值函数; Z?S:是终止状态集(可接受状态集、结束状态集)。 二、 非确定有限自动机NFA 一个非确定有限自动机(NFA)M是一个五元组: M = ( S, ?, S0, f, Z ),其中: S:是一个有限集合,它的每个元素称为一个状态; Σ:是一个有穷字母表,它的每个元素称为一个输入字符; S0: S0 ? S , 是非空初始状态集; f:是状态转换函数,它是一个从S× (?∪{?}) 到S 的子集的映射,即S× (?∪{?}) → 2s ; Z: Z ? S ,是终止状态集。 三.DFA的两种表示方式 状态转换图 :用有向图表示自动机 DFA M=( {S,U,V,Q}, {a,b}, f, S, {Q}),其中 f 定义为: f ( S, a )=U f ( V, a )=U f ( S, b )=V f ( V, b )=Q f ( U, a )=Q f ( Q, a )=Q f ( U, b )=V f ( Q, b )=Q 状态转换图 U S V Q a a b a b a b ,b DFA接受的字符串 对于?*中的任何字符串t,若存在一条从初始结点到某一终止结点的路径,且这条路上所有弧上的标记符连接成的字符串等于t,则称t可为DFA M所接受(识别)。 若DFA M的初始状态同时又是终止状态,则空字符串可为DFA M所接受(识别)。 DFA M 所能接受的字符串的全体记为L(M). 状态转换矩阵:用二维数组描述DFA DFA M=( {S,U,V,Q}, {a,b}, f, S, {Q}),其中 f 定义为: f ( S, a )=U f ( V, a )=U f ( S, b )=V f ( V, b )=Q f ( U, a )=Q f ( Q, a )=Q f ( U, b )=V f ( Q, 1 )=Q 输入字符 状态 a b S+ U V U Q V V U Q Q* Q Q 五、DFA的实现1 状态转换矩阵的形式: 1.当前状态State置为初始状态; 2.读一个字符 ? CurrentChar; 3.如果CurrentChar?Eof并且 T(State,CurrentChar)?error, 则当前状态转为新的状态: State = T(State,Current), 读下一字符 ? CurrentChar ; 重复第3步工作。 4.如果当前字符为Eof并且当前状态属于终止状态,则接受当前字符串,程序结束;否则报错。 b DFA的实现2 状态转换图的形式: 每个状态对应一个带标号的switch语句 转向边对应goto语句 1.非终止状态对应的switch语句 i j k a Li: switch ( CurrentChar ) { case ‘ a’ :goto Lj; case ‘b’ : goto Lk; default : Error( ); } 2.终止状态对应的switch语句 i j k Li: seitch ( CurrentChar ) { case ‘ a’ : goto Lj; case ‘b’ : goto Lk; case ‘Eof’ : Accept; default : Error( ); } a b 例: a ? a, b 1 0 2 a b a L0: switch ( CurrentCha
文档评论(0)