DFA最小化算法中状态等价判断方法

发布时间:2023-03-28 13:46:20   来源:文档文库   
字号:
第1O卷第6期 V01.1O.No.6 宜宾学学报 Journal of Yibin Universiy 2010年6月 June,2010 DFA最小化算法中状态等价判断方法 刘益 (宜宾学院计算机与信息工程学院,四川宜宾644000) 摘要:对使用‘‘分割法’’最小化DFA中出现的当一个状态没有相应的产生式存在时如何进行分割,提出了正确使用“分割法”最小化DFA关键是需要正 确判断DFA中各个状态之间的等价关系,并对当一个状态没有相应的产生式存在时如何判断等价进行了分析. 关键词:DFA;最小化;分割法 中图分类号:TP301.1 文献标志码:A 文章编号:1671-5365(2010)06-0055-02 An Equaton Relation Research on the Minimizaton Algorthm of DFA LIU Yi (School ofComputr and Iformaton Engineerng,Yibin Univery,Yibin 644000 China) Absract:As for a state wihout coresponding producton usng he segmentaton algorhm to minimize DFA,the key i to udge the equation relation among states.And the equation relation fr a state without corresponding production was analyzed. Key words:DFA;minimization;segmentation algorithm 确定有限自动机DFA(Determinisic Finie Automa- on)的应用范围很广,它可以作为识别语言、电路设计、模 采用“分割法”后得到: DFA M’=({S,a,b},{0,1},8,S,{a}),且: 6(S,0)=a 6(S,1)=a 8(b,1):a 型检测以及加密算法等方面的一种工具 .一个DFA的 获得一般是通过对NFA确定化后得到.但这样的DFA可 分析在文献 中的例子,例子2: DFA M=({0,1,2,3},{a,b},6,0,{2,3}),且: 6(0,a):1 8(1,a)=1 8(1,b)=2 8(2,a)=3 8(2,b)=3 8(3,a)=3 8(3,b)=3 采用“分割法”后得到: 能含有多余状态,还需要对其进行最小化.最小化后的 DFA即可以更好地表示状态之间的内在关系,也便于在利 用DFA描述任务模型时提高计算机的工作效率.对DFA 进行最小化的方法常采用“分割法”.在一些特殊情况下使 用分割法最小化DFA,会出现最小化后的DFA与最小化 前的DFA不等价 ,说明分割法在最小化DFA中可能存 DFA M’=({0l,23},{a,b},8,01,{23}),且: 6(0l,a)=O1 6(O1,b)=23 8(23,a)=23 6(23, b)=23 在缺陷.本文将对这个问题进行分析,找出在使用分割法 最小化DFA过程中存在的误区. 从上两例看出:采用分割法后得到的DFA M’与DFA 1问题的提出 DFA的最小化是指一个DFA中不存在多余状态,并 且在其状态集中不存在两个相互等价的状态,但必须保证 最小化后的DFA与最小化前的DFA能够识别相同的语言 集.如果最小化后的DFA与最小化前的DFA不能识别相 M不能识别相同的语言集.因此文献作者提出的分割法算 法有问题,在一些DFA最小化上不能给出正确结论. 2 DFA最小化算法分析 分割法通过对DFA M的状态集进行分析,将集合分 割成一些不相交的子集.划分之后,这些子集中的状态是 同的语言集,则称它们是不等价,即在最小化过程中出现 了错误. 等价的.然后从每个子集中选出一个元素,消去其他元素, 重新构造一个DFA M’.这个DFA M’就是最小化的,而且 L(M)=L(M’).可以看出,分割法是对状态集的集合分 分析文献 中的例子,例子1: DFA M=({S,a,b},{0,1},6,S,{a,b}),且: 8(S,0)=a 6(s,1)=b 6(b,1)=a 收稿日期:2010—03—16.修回:2010—05—12 割,而划分的依据是集合中元素之间的等价问题.因此,分 割法的核心问题是讨论状态集中各状态之间的等价问题. 作者简介:刘益(1971一),男,四川宜宾人,讲师,硕士研究生,主要从事人工智能研究 
56 宜宾学院学报 第10卷 所谓两个状态相互等价是指:对一给定的DFA M,若 
根据状态是否等价的判断,从状态0出发识别字符串 
存在状态sl、s2∈S且sl≠s2,如果从s1出发能识别字符 串 而停于终态,从s2出发也同样能够识别这个 而停 于终态;反之,若从s2出发能识别13而停于终态,则从sl 出发也能识别这个p而停于终态,则称sl和s2是等价的, aabbb”停于终态,或者字符串“aaab ̄”停于终态;而从状 aaabaa”停于终态,或者字符串“baaa”停于终态,或者字 态l出发识别字符串“aabbb”停于终态,或者字符串 符串“bbbb”停于终态.换句话说,从状态0出发识别的字 否则就是可区分的 如例1: DFA M=({s,a,b},{0,1},6,S,{a,b}),且: 8(s,0)=a 8(s,1)=b 8(b,1)=a 当采用分割法进行最小化的时候,在分析状态集合中 各状态之间是否等价出了问题.文献 4 中在分割法中认为 状态a,b之间是等价的.原因是: 对于输入字符0,状态a和b都找不到相应的产生式 进行转换.可以认为对于输人字符0,状态a和b等价. 对于输入字符1,状态b能找到产生式6(b,1)=a,意 味着它可以转换到状态a;对于状态a,没有相应的产生 式,那么它与状态b没有区别,因此对于输入字符1,状态 a和b等价. 综上所述,状态a和b等价,可以把它们放到同一个 子集中.得到新的DFA M’: DFA M’=({s,a},{0,1},6,S,{a}),且: 8(S,0)=a 6(s,1)=b 8(a,1)=a 根据状态是否等价的判断,从状态b出发识别字符串 “1”停于终态,而从状态a出发不能识别任何字符串.因此 说状态a和b等价是错误的.对DFA M来讲已经是最简化 的了,如例2: DFA M=({0,1,2,3},{a,b},8,0,{2,3}),且: 6(0,a)=1 8(1,a)=1 8(1,b)=2 8(2,a):3 8(2,b)=3 6(3,a)=3 6(3,b):3 对于输入字符a,状态0有产生式8(0,a)=1,状态1 有8(1,a):1,状态2有产生式8(2,a)=3,状态3有6 (3,a)=3;对于输入字符a,状态0、l可以认为等价,状态 2、3可以认为等价. 对于输入字符b,状态0没有对应的产生式,状态1有 8(1,b)=1,状态2有产生式8(2,b):3,状态3有8(3, b)=3;对于输入字符b,状态2、3可以认为等价.而对于状 态0、1同样存在例子1中的问题,由于对状态0在输入字 符b的时候没有对应的产生式,也认为0、l等价. 综上所述,把状态0、1放到同一个子集中,状态2、3 放到另一个子集中.得到新的DFA M’: DFA M’:({0l,23},{a,b},6,01,{23}),且: 6(01,a)=01 6(01,b)=23 6(23,a)=23 6(23, b):23 符串必须以字母a开始,而从状态1出发识别的字符串可 以是字母b开始,因此对于状态0和1来说是不等价的.对 于状态2、3则能识别相同字符串,它们是等价的.DFA M最 小化后应该为:‘ DFA M’=({0,1,23},{a,b},6,01,{23}),且: 8(o,a)=1 8(1,a)=1 8(1,b)=23 8(23,a)= 23 6(23,b)=23 小结 文献 中针对在识别输入字符的时候没有相应的产 生式与之对应,提出了“失败状态”.在文献 中对此类问 题提出了“空集‘p改成特殊的‘p状态”.实际上,无论是 “失败状态”还是“特殊状态”,如果在当前状态,对于给出 的一个字符,在产生式集合中没有对应的产生式,则表示 当前状态出发不能识别相应的字符.根据分割法原理,在 分割一个子集的时候,子集中状态对某字符出现一个状态 有对应的产生式,而另一个状态没有,这两个状态肯定是 不等价的. 参考文献: [1]沈浩,孙永强.自动机,逻辑与博弈[J].计算机工程,2003,29 (2O):9-11. 2]陶仁骥.一种有限自动机公开钥密体制和数字签名[J].计算机学 报,1985,8(6):401-409. 3]陈义仁,王一宾.DFA化简算法的一种改进方法[J].安庆师范学 院学报(自然科学版),2009,15(1):45-48. 4]周时阳,祝建华.DFA最小化算法研究[j].计算机工程与科学, 2007,29(3):60-62. 5]徐红.对确定有限自动机最小化算法的改进[j].桂林航天工业高 等专科学校学报,2005(4):14—16. 6]吕映芝,张素琴,蒋维杜.编译原理[M].北京:清华大学出版社, 1998. [7]胡元义.编译原理教程[M].西安:西安电子科技大学出版社, 20o3. [8]陈火旺,钱家骅,孙永强.程序设计语言编译原理(第三版)[M]. 北京:国防工业出版社,2000. [9]罗军.确定的有限自动机(DFA)化简方法改进[J].河南广播电视 大学学报,2005,18(3):55-57. 【编校:李青】 

本文来源:https://www.2haoxitong.net/k/doc/da2fe10f964bcf84b9d57b7c.html

《DFA最小化算法中状态等价判断方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式