2013-7-15
A0
1 U 3 Q 1 U 3 Q*
B1
2 V 2 V 3 Q* 3 Q*
15/84
DFA的实现2
状态转换图的形式: 算法1:每个状态对应一个带标号的case语句 转向边对应goto语句
a i
b
j k
Li: case CurrentChar of
a
b
:goto Lj
: goto Lk
k
2013-7-15
}
Case j: switch(ch) {…..}
17/84
非确定有限自动机NFA
定义1:一个非确定有限自动机(NFA)A是一 个五元组A=(,SS,S0,f,TS).其中 是字母表,有限集合 SS是状态集,有限状态集 S0是初始状态集,(可以包含多个状态) f是转换函数,但不要求是单值的 f: SS (∪{}) 2SS TS是终止状态集,(可以包含多个状态)。
2013-7-15
NFA到DFA的转换
26/84
NFA到DFA的转换
符号合并:A:NFA, A’:DFA 1.令A’的初始状态为S0’=[S1,S2,…Sk], 其中S1…Sk是A的全部初始状态。 2.若S’=[S1,…,Sm]是A’的一个状态, a则定义 f’(S’,a)=f(S1,a)f(S2,a)…f(Sm,a) 3.若S’=[S1,…,Sn]是A’的一个状态,且存 在一个Si是A的终止(初始)状态,则令 S’ 为A’ 的终止(初始)状态。
V V Q* Q*
状态转换表
f ( S, a )=U f ( S, b )=V f ( U, a )=Q f ( U, b )=V f ( V, a )=U f ( V, b )=Q f ( Q, a )=Q f ( Q, b )=Q