根据正则表达式画出有限状态自动机。
参考:http://blog.csdn.net/crackcell/archive/2008/04/07/2256758.aspx
1、概念
字母表中的符号组成的有限长度的序列。记号s的长度记为|s|。长度为0的记号称为空记号,记为ε。
非确定有限自动机(Nondeterministic Finite Automaton)NFA
确定有限自动机(Deterministic Finite Automaton)DFA
DFA是NFA的一种特例,有两点约束:
(1)对于空输入,状态不发生转移
(2)对于每一种输入最多只有一种状态转移
2、将正则表达式转换为NFA
令正则表达式s和t的NFA分别为N(s)和N(t),对于常见的正则表达式有如下转换方式:
a) 对于s|t,按照以下的方式生成NFA N(s|t)。3、将NFA转化为DFA
b) 对于st,按照以下的方式生成NFA N(st)。
c) 对于s*,按照以下的方式生成NFA N(s*)。
d)对于s+,只需要在s*的基础上去除i->f的空输入转移
示例,根据正则表达式r=(a|b)*abb 可以生成以下的NFA。