• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
仓式茜
博客园    首页    新随笔    联系   管理    订阅  订阅
三--3.有限自动机

1.确定的有限自动机(DFA)

  

  

  

  

  

  

 

2.非确定的有限自动机(NFA)

  

  

 

  

  

 

   

  

 

  

 

  我看懂了,NFA转DFA(确定化)分两类,一种是读空集不动作的,一种是动作的,

上图是不动作的。先把NFA的各个状态的组合写出来,记为q0~qn,再加个空集,然后

看每个组合的各状态读一个符号后的状态组合是哪一组,没有就是空集,最后用q画出状态转换图

,把多余的部分删掉,比如上图中独立出来的三个组合,以及q6这个不会到达的状态组合。

  

 

   

  

  

  

 

  

这种方法是先令q0=S0的空闭包,也就是S0读空能到达的所有状态的集合,然后

这些状态读a后到达的状态的空闭包写到表里,如果是新的组合,就记为q1,写到新一行,

直到没有新组合。

 

  

这里在用读e动作的方法,确定化读e不动作的NFA

 

  

  

 

  

 

   

 

  

  

初态一组I1,终态一组I2

I1读a后是{1,3},3不在I1里,所以要再分

I11={0,2},I12={1}

I11读a是{1}不行,I11读b是{2,5},5也不在I11里

再分I111={0},I112={2}

分成一个的就不用在分了(分不了了,一个还咋分)

I2读a={3,6},读b={4,5}都属于I2,不用分

 

  

 

posted on 2022-10-03 10:27  仓式茜  阅读(103)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3