- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * a b S A B a b Z b a a a a K’={[S]} f([S],a)=[A] f([S],b)=[B] K’={[S],[A],[B]} f([A],a)=[Z] f([A],b)=[B] f([B],a)=[AB] f([B],b)=[Z] K’={S],[A],[B],[Z],[AB]} f([Z],a)=[AZ] f([Z],b)=φ f([AB],a)=[ABZ] f([AB],b)=[BZ] K’={S],[A],[B],[Z],[AB],[AZ], [BZ],[ABZ]} f([AZ],a)=[AZ] f([AZ],b)=[B] f([BZ],a)=[ABZ] f([BZ],b)=[Z] f([ABZ],a)=[ABZ] f([ABZ],b)=[BZ] * 举例(续1) 输入 状态 a b [S] [A] [B] [A] [Z] [B] [B] [AB] [Z] [Z] [AZ] ? [AB] [ABZ] [BZ] [AZ] [AZ] [B] [BZ] [ABZ] [Z] [ABZ] [ABZ] [BZ] a b S A B a b Z b a a a a 根据左边状态转换矩阵,可以得到DFA N’的状态集合(表的左列状态),即 K’={[S],[A],[b],[Z],[AB],[AZ],[BZ],[ABZ]} * * 举例(续2) S B AB ABZ A Z BZ AZ b b b b b b b a a a a a a a a 开始状态:[S] 终止状态:[Z],[AZ],[BZ],[ABZ] 根据上面状态转换矩阵,同时可以得到N’的映像函数,根据该映像可以画出它的状态转换图(如下)。 终态集合中的元素为:由新映像得到的状态、 且这些状态包含原NFA N的终态集合中的状态。 * 四、具有?动作的FA 若在一FA中,允许对?也作状态转移,则这样的FA称为具有?动作的FA(NFA).此时,有的矢线上标记为? 标记为? 的矢线对识别符号串无影响,但却改变了当前的状态. 例如,右图中的FA中,从状态0到状态3存在路径: 0(a) ?0(a)?0(?) ?2(c) ?2(c) ?2(?) ?3,即M识别了aa?cc?=aacc. ~的定义 M=(K,?,f,S0,Z),其中,f的定义为 f:K?(??{?})? 2k. 在~中, ?可以视为一个输入符号,在矩阵表示中,也有相应的列. 0 1 2 3 ? ? ? a b b c f也可以拓广到f’:K??* ? 2k. f’(S,x)是由这样的状态Q组成,存在从S到Q的路径,该路径上的连线标记组成的符号串恰好为x,其中,允许有有限个标记为? * * 状态S的?-闭包:?-CLOSURE(S) 为定义拓广的f’,首先引入每个状态S的?-闭包的定义: ?-CLOSURE(S),它是从S出发经过若干标记为?的矢线所能达到的全部状态之集,其归纳定义如下: (1)S??-CLOSURE(s); (2)设Sj??-CLOSURE(S),且Sj ?? Sk,则Sk??-CLOSURE(S); (3)有限地使用规则(2)所得的集合为?-CLOSURE(S). 例,在上页的NFA中, ?-CLOSURE(0)={0,1,2,3} ?-CLOSURE(1)={1} ?-CLOSURE(2)={2,3} ?-CLOSURE(3)={3}. 进一步,?-CLOSURE还可定义在 ?-CLOSURE:?(K)??(K),设Q?K (Q??(K)),则 * * 转换函数f的拓广 利用?-CLOSURE(S),可定义f’如下: * * ‘ 四、具有? 动作的FA f与f’的区别 由f’的定义可知,f’(S,a) 与f(S,a) 不同,f’(S,a)是从S出发经过路径a据达的状态集(可走若干步);而f(S,a)是从S出发经过矢线a所达状态之集(只走一步) 其实, f(S,a) ? ?-CLOSURE(f(S,a)) ? f’(S,a) 只走一步a矢线 | 多步,第一步必须走a矢线 | 路径a :第一步可以是?矢线 例如,在前面的NFA中, f’(0, ?)= ?-CLOSURE(0)={0,1,2,3} f(0, ?)={1,2} f’(0,a)={0,1,2,3} f(0,a)={0} ?-NFA的接受集: L(M)={w|f’(S0,w)?Z??} * * 四、具有?-动作的FA ?-NFA的用途:构造更复杂的FA 有了?-NFA,就可把识别各种不同单词
原创力文档


文档评论(0)