对于DFA、NFA理解
来源:互联网 发布:手机淘宝怎么举报店铺 编辑:程序博客网 时间:2024/05/22 07:08
最近在做深度包检测课题时,需要学一些新的算法:
DFA、NFA,对这两个算法进行一下小的总结:
有穷状态自动机
一听这个名字感觉很高大上,很陌生,不知道是什么意思,但是可以分开来理解。有穷,也就是说这个东西是有穷尽的,不是无限多的。状态自动机(自动机):软件工程的统一建模语言(UML)有状态图,数字逻辑中也有状态转移图。不过这些各种各样的图在本质上都跟状态机没有什么区别。总体的意思就是在有限个输入的情况下,在这些状态中转移并期望最终达到终止状态。有穷状态自动机根据确定性可以分为“确定有穷状态自动机”(DFA - Deterministic finite automaton)和“非确定有穷自动机”(NFA - Non-deterministic finite automaton)。
DFA
确定性有穷状态自动机:在输入一个状态时,只得到一个固定的状态。但往往从正则表达式翻译过来的状态机是ε-NFA,我们需要从ε-NFA通过消除ε边来转变成NFA或者DFA。关于转换在这篇文章里有提到。
例如:
当输入一个任何一个可以的字符时,都得到一个固定的状态。
NFA
这个里面还有一个小的分支ε-NFA。ε-NFA:我们用ε边来表示一个状态可以不读入字符就跳转到另一个状态 上,ε-NFA就是在NFA中存在这种边的情况,例如:
从start状态到end状态,可以不需要读入字符就进行转换。
NFA:“非确定有穷自动机”(NFA - Non-deterministic finite automaton),当输入一个字符或者条件得到一个状态机的集合。
例如:
当输入b后可能得到两种状态,构成一个状态集。
0 0
- 对于DFA、NFA理解
- 理解DFA和NFA正则表达式引擎
- DFA&NFA
- nfa&dfa
- NFA/DFA
- NFA/DFA算法
- NFA转化DFA
- DFA和NFA
- DFA和NFA
- DFA和NFA
- [转]NFA/DFA算法
- Java , NFA转DFA
- 正则表达式 DFA NFA
- DFA与NFA
- DFA/NFA算法
- 【直接NFA->DFA】
- 【直接NFA->DFA】
- 【直接NFA->DFA】易错点
- 杨澜:我为何放弃让人眼红的工作去留学?
- spring框架开发笔记 lesson4 注解开发
- 英雄联盟whoops something broke 错误解决办法
- 让你拍案叫绝的VR游戏营销
- HDFS的关键组件:NameNode/ DataNode
- 对于DFA、NFA理解
- 【LightOJ 1104】Birthday Paradox(概率DP)
- JobTracker与TaskTracker的关系
- Iterator和ListIterator的区别
- Git Pull Request
- 深度学习之caffe Layers-Convolution层
- 合并两个有序序列
- DWZ左右主从页面单独分页的解决方法
- 杂碎知识汇总