有穷自动机可分成确定型的有穷自动机和非确定型的有穷自动机。
确定型自动机简称DFA,它包含一个有穷的状态集合Q,一个有穷的输入符号集合∑,一个转移函数T,一个初始状态q0 ,一个终结状态或接受状态的集合F。通常可用一个五元组来表示,如:
A={Q,∑,T,q0 ,F}
非确定型自动机简称NFA,和DFA一样,也可用这个五元组表示,和DFA唯一的区别就是NFA的转移函数T返回值的类型不同,在DFA的情况下,T返回值勤是单个状态;而在NFA状态下,返回值是一个状态的集合。
先来看下DFA如何处理字符串:
DFA的语言是这个DFA接受的所有的串的集合。假设a1a2...an是输入符号序列,让这个DFA从初始状态q0开始运行。查询转移函数为T,如T(q0, a1)= q1 ,以找出DFA A在处理了第一个输入符号a1 之后进入的状态。处理下一个输入符号a2,再求T(q1, a2)的值,如果这个状态是q2 ,以这种方式继续找下去,找出状态q3, q4 ,q5… qn ,使得每个i ,都有T(qi-1, ai)= qi 。如果qn 属于F,则接受输入a1a2...an, 否则就拒绝。从而就完成了一个字符串的匹配过程。
由于NFA和DFA具有等价性,故所有在NFA处理字符串的问题都可以转换为DFA处理字符串问题。这里不再说明。
分享到:
相关推荐
vc制作的小软件,用有穷自动机实现,字符串匹配
编译原理实验五:有穷自动机的确定化,zip文件里包含实验报告和源代码两部分。
有穷自动机转化为正规式,输入一个有穷自动机,把它转化为正规式,最好是NFA,DFA也可以。
不确定有穷自动机转化为确定的有穷自动机的C++源代码
针对Robocup自主机器人比赛中,机器人进攻和防守状态、动作转换延迟问题,采用一种基于有穷自动机模型的自然语言状态转换方法,把机器人、环境等自然语言信息抽象成形式化的符号和状态,并转化为有穷自动机输入符号....
有穷自动机,自动机最小化,串匹配,压缩,性能
从正则表达式到有穷自动机实例 从正则表达式到有穷自动机实例
解耦了的AC自动机模板,可工程使用。内包含头文件与源文件与使用方法,参照使用方法即可直接调用。 纯C代码,不依赖任何外部库。
使用有限自动机做字符串匹配 automata string match
wc有穷自动机.doc
正规式到有穷自动机源代码
期末课程设计必备 自己捣鼓的 其实没有什么内容 下吧 下吧
可以编译正则式到有穷自动机!(输入字符为0,1)
使用Java模拟DFA 有穷自动机的执行过程。给出一个字符,判断是否能够被接受 使用Java模拟DFA 有穷自动机的执行过程。给出一个字符,判断是否能够被接受
汉字有穷自动机研究汉字有穷自动机研究汉字有穷自动机研究
1. 正规式 2. 有穷自动机正规式匹配 3. 有穷自动机工作原理 模拟NFA或者模拟DFA
有穷自动机等价转化中的一种重要工具, 以有穷自动机为工具,对网络原始数据进行监测,发现有价值舆情信息。当发现匹配敏感词汇库的词汇时,立即进行屏蔽。尽量不让敏感词汇出现在类似于论坛之类的公共交流平台上,...
一、实验题目:有限自动机的运行(或“利用状态图判断无符号定点实数”等) 二、实验目的: ...利用状态表和有限自动机的运行原理编制程序,使得程序能够识别一个输入串是否为一个有效的无符号定点实数。
识别浮点数的有穷自动机识别浮点数的有穷自动机识别浮点数的有穷自动机识别浮点数的有穷自动机
有穷自动机 它能准确地识别正规集,即识别正规文法所定义的语言和正规式所表示的集合