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,不用分
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通