软考之有限自动机

来源:互联网 发布:阿国网络随笔诈骗 编辑:程序博客网 时间:2024/05/16 10:26

什么是有限自动机?

有限自动机可分为确定的有限自动机(DFA)和不确定的有限自动机(BFA)。其中确定的有限状态自动机和不确定的有限状态自动机最大的区别是它们的转移函数不同,确定有限状态自动机对每一个可能的输入只有一个状态的转移,不确定有限状态自动机对每一个可能的输入可以有多个状态转移,接受到输入时从这多个状态转移中非确定地选择一个。

1.有限自动机识别字符串

这也是考试的一个常考点。所谓被有限自动机识别,就是依次输入字符串中的字符,判断其是否能使用有限自动机从初状态开始到终态结束,如果能,则可以被识别。


2.状态转换图

状态转换图是一个有向图,在状态转换图中,每一个结点代表一个状态,其中双圈是终态状态,每一个转换函数对应图中的一条有向弧。

3.NFA转换位DFA

此部分转载自:http://blog.csdn.net/u012359618/article/details/42456771


1. 根据上面的状态转换图写出状态转换表,什么!不知道什么是状态转换表?那你来对地方了。状态转换表是转台转换图的另外一种表示形式,如下图,左侧表头0~9表示的

    是状态,上方表头a,b,c表示的是条件。其余部分表示的是后继状态

                

      a      

       b      

       ε      

0

1, 7

1

2, 4

2

3

3

6

4

5

5

 

6

6

1, 7

7

8

8

9

9



2. 求出ε-closure(s),ε-closure(s)表示由状态s经由条件ε可以到达的所有状态的集合

ε-closure(0)={0,1,2,4,7}

ε-closure(1)={1,2,4}

ε-closure(2)={2}

ε-closure(3)={1,2,3,4,6,7}

ε-closure(4)={4}

ε-closure(5)={1,2,4,5,6,7}

ε-closure(6)={1,2,4,6,7}

ε-closure(7)={7}

ε-closure(8)={8}

ε-closure(9)={9}


3. 转换,下面就是真正剧情了

首先将初始态的转换闭包ε-closure(0)设为状态A,即A={0,1,2,4,7},注意这里的状态A是DFA中的,和前面的状态0,1,2,3,4,5没有关系

接着写出状态A经过上面转换图中所有转换条件得到的状态,后继状态里面不包括自身,这里的转换条件包括a和b,注意,不包括ε,转换的一个目的就是消除ε。

ε-closure(0) = A

ε-closure(move(A,a)) = ε-closure({3,8}) = {1,2,3,4,6,7,8} = B

ε-closure(move(A,b)) = ε-closure(5) = {1,2,4,5,6,7} = C

ε-closure(move(B,a)) = ε-closure({3,8}) = {1,2,3,4,6,7,8} = B

ε-closure(move(B,b)) = ε-closure({5,9}) = {1,2,4,5,6,7,9} = D

ε-closure(move(C,a)) = ε-closure()

ε-closure(move(C,b))

ε-closure(move(D,a)) = ε-closure({3,8}) = {1,2,3,4,6,7,8} = B

ε-closure(move(D,b)) = ε-closure(5) = {1,2,4,5,6,7} = C


4. 画出DFA状态转换表(每一个状态只有一个后继状态)

 

a

b

             A             

               B               

                C                

B

B

D

C

B

C

D

B

C


5. 画出DFA状态转换图



4.DFA的最小化

    (1) 消除多余状态

              Ⅰ. 什么是多余状态

                    · 从这个状态出发没有通路到达终态

                    ·  从开始状态出发,任何输入串也不能到达的那个状态

               Ⅱ. 如何消除多余状态

                     删除

                     

             (2)  等价状态

                      Ⅰ. 何为等价状态,对于两个状态s和t

                            ·  一致性条件:状态s和t必须同时为终态或非终态

                            ·  蔓延性条件:对于所有输入符号,状态s和状态t必须转化到等价的状态里

        

                   接下来是关于如何利用上面的两个条件来判断是否为等价状态,来一张复杂的状态转换图,是不是有点晕,哈哈

                  

                   首先,画出状态转换表

                  

                  看1和2,1和2都是非终态,满足条件1,1和2都可以转换成状态2,满足条件2,将两者合并。

                  看6和7,6和7都是终态,满足条件2,6和7都可以转化成状态6,满足条件2,将两者合并。

                  以此类推,当然,2和5也是可以合并的,记住最后的结果只有一种,只要满足合并后的状态最少就行

                 

                   转化

                  1,2→A

                   3,4→B

                   5→C

                   6,7→D

                   列出转化后的转台转换表

                         

                 再画出相应的状态转换图就大功告成啦~~

                 

                   

                                    

5.有限自动机与正规式之间的转换

来源:http://blog.csdn.net/cgzhello1/article/details/7961965

1.有限自动机转换为正规式

对于 ∑上的NFAM,可以构造一个 ∑上的正规式R,使得L(R)=L(M)。拓广状态转换图的概念,令每条弧可用一个正规式作标记。为 ∑上的NFA M构造相应的正规式R,分为如下两步:

(1)在M的状态转换图中加两个节点,一个x节点,一个y节点。从x节点到NFA M的初始状态节点引一条弧并用 ε标记,从NFA M的所有终态节点到y节点引一条弧并用 ε标记。形成一个与 M等价的M',M'只有一个初态x和一个终态y。

(2)按下面的方法逐步消去M'中除x和y的所有节点。在消除节点的过程中,用正规式来标记弧,最后节点x和y之间弧上的标记就是所求的正规式。消除节点的规则如图2-6所示。

 图 2-6 有限自动机到正规式的转换规则示意图

2.正规式转换为有限自动机

同样地,对于 ∑上的每个正规式R,可以构造一个E上的NFA M,使得L(M)=L(R)。通过对正规式R进行分裂并加入新的节点,逐步把图转变成每条弧上的标记是E上的一个字符或 ε。转换规则如图2-7所示。

 图 2-7 正规式到有限自动机的转换规则示意图




常见题目:
题目给定一正规式,要求给出其NFA、DFA或最简DFA。

题目给定一用状态图表示的NFA,要求给出其对应的DFA或最简DFA形式。

题目给定一NFA、DFA或最简DFA,要求给出其对应的正规式。

题目给定一正规集,要求给出其相应的DFA。

题目给定一用自然语言描述的正规集,要求给出其相应的正规式表示形式



例题:(来源见水印)


[解析] 至少要有一个.或E,所以在BCD中。
然后不含+,所以在CD中。

然后观察5出去的两条边(对应于.后的字符),如果是数字的话,就不能出现E了,所以选C。

具体来说

0是入口,6是出口,初始进入0状态,必需最终到达6状态
A 3857,状态过程:0->1->1->1->1
B 1.2E+5,E+5状态过程:0->1->5->2->? 
C -123.67,状态过程:0->4->1->1->1->5->6->6

D 0.576E10,状态过程:0->1->5->6->6->6->?





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宽带为什么交了钱还是不能用怎么办 小孩被虎牙直播诱导支付了款怎么办 房间里4g网络信号差怎么办 移动4g网络信号不满格怎么办 大风号无法上传视频暂停服务怎么办 过了竞牌保证金交付时间怎么办 亚马逊产品上架后货物没到怎么办 工行企业网银证书过期了怎么办 海淘转运地址国家填错了怎么办 集装箱实重与申报重量不一样怎么办 微博复制的淘口令找不到了怎么办 买了移动手机不能用联通卡怎么办 移动手机用联通卡网速慢怎么办 移动手机插联通卡没反应怎么办 移动手机办了联通大王卡怎么办 qq被冻结但是有至尊宝怎么办 qq被冻结了有至尊宝怎么办 移动电话卡注销了里面的钱怎么办 罗麦的oa上经理喜报没截图怎么办 工行融e联登录密码忘了怎么办 融e借有额度秒拒怎么办 工行银行柜台办理融e借怎么办 地球末日生存破解版金币没了怎么办 手机被别人骗走了里面的微信怎么办 在微信里面被做微商的骗了钱怎么办 在qq上骗了人50怎么办 被3m多酶清洗液滴到皮肤怎么办 做3m赔了9万怎么办 在携程网上订的酒店发票怎么办 滴滴滴取消订单电话打不通怎么办 百度云容量2068g满了怎么办 淘宝电脑端描述图片间隔大怎么办 手机上下载游戏自动扣费怎么办 苹果手机下载游戏自动扣费怎么办 用手机账号登陆游戏换手机怎么办 在qq上被骗充q币怎么办 微信借钱后删了好友怎么办 财付通绑定了其它人的身份证怎么办 微信支付密码忘了没绑银行卡怎么办 微信没有绑银行卡忘记密码怎么办 威信解绑银行卡支付密码望了怎么办