举一个DFA 的例子:
DFA M=({S,U,V,Q},{a,b},f,S,{Q})其中f定义为:
f(S,a)=U f(V,a)=U
f(S,b)=V f(v,b)=Q
f(U,a)=Q f(Q,a)=Q
f(U,b)=V f(Q,b)=Q
一个DFA可以表示成一个状态图(或称状态转换图)。假定DFA M含有m个状态,n个输入字符,那么这个状态图含有m个结点,每个结点最多有n个弧射出,整个图含有唯一一个初态结点和若干个终态结点,初态结点冠以双箭头"=>"或标以"-",终态结点用双圈表示或标以"+",若
f(ki,a)=kj,则从状态结点ki到状态结点kj画标记为a的弧;
DFA 的状态图表示 |
 |
一个DFA还可以用一个矩阵表示,该矩阵的行表示状态,列表示输入字符,矩阵元素表示相应状态行和输入字符列下的新状态,即k行a列为f(k,a)的值。用双箭头"=>"标明初态;否则第一行即是初态,相应终态行在表的右端标以1,非终态标以0。
DFA 的矩阵表示 |
|
状态\字符 |
a |
b |
S |
U |
V |
U |
Q |
V |
V |
U |
Q |
Q |
Q |
Q |
|
|
|
DFA的确定性表现在转换函数f:K×Σ→K是一个单值函数,也就是说,对任何状态k∈K,和输入符号a∈Σ,f(k,a)唯一地确定了下一个状态。从状态转换图来看,若字母表Σ含有n个输入字符,那末任何一个状态结点最多有n条弧射出,而且每条弧以一个不同的输入字符标记。 |