有限状态机
我们在学习有限自动机之前,我们可以先简单了解一下,有限状态机(FSM)。
学习软考,大家应该对编译器和解释器都不陌生,其实编译器就是用FSM做词法分析(这些词是不是很熟悉),那么什么是状态呢?什么优势状态机呢?
我们学习的时候,不想学了,就说自己没有状态,其实转态在我们生活中,转态随处可见,计算机也是。
所谓有限状态机,就是一个集合很多种状态的机器,它会有用户不同的输入产生不通状态转变,通过这些状态的转变来体现出每次用户操作的特殊性。状态的产生以及改变都是由某种条件成立而出现的。
理解了这个对下边的有限自动机学习会有帮助!
认识
有限自动机(又称为:有穷自动机,时序机)
一个有限自动机M由五元组(X,Y,S,δ,λ)
- X,Y是S的非空有限集
- X:输入集
- Y:输出集
- S:转台集合
- δ:笛卡尔积集合S×X到S的映射,称为M的下一状态函数
- λ:是S×X到Y的单值映射,称为M的输出函数
有限自动机=内部状态集+控制规则组成
有限自动机识别字符串:
一次输入字符串中的字符,判断其是否能使用有限自动机从初态开始到终状态结束,如果能,则可以被识别。
状态转换成图:
我们刚学过数据结构导论,对于图应该不陌生。
状态转换图是一个有向图,每一个节点表示一个状态,双圈节点表示的是终态,每一转态转换都对应图的一个有限弧。
分类
它可以分为确定的有限自动机(DFA)和不确定的有限自动机(NFA)。
他们之间有什么区别:
DFA:开始状态是唯一
一个输入对应一个状态转换
NFA:开始状态是一个状态集合
一个输入对应多个状态转换(状态集)
有向弧的标记上可以为空
具体转换过程,请点击这里
正规式与有限自动机的转换
有限自动机转正规式:
如上图,就是用符号表示状态转换之间的关系,从而 消除了中间节点
正规式转有限自动机:
就是上边操作的逆过程:
简做总结,有何不足还请指出,最后感谢大家的阅读和点赞!