
将下图的 非确定性有限自动机 NFA 转为确定性有限自动机 DFA ;

NFA 的状态集
, 字符集
;
从 起始状态
开始分析 , 读取
无条件跳转到
, 这里形成了新的状态
, 写到下面表格中 ;
状态 下读取
字符结果是
, 读取
字符结果是
, 上述分别是 NFA 下两个状态读取字符的后继状态取并集 ; 将新状态写到表格中 , 然后分析新状态 ;
状态下读取读取
字符结果是
, 读取
字符结果是
, 上述分别是 NFA 下两个状态读取字符的后继状态取并集 ; 将新状态写到表格中 , 然后分析新状态 ;
状态下读取读取
字符结果是
, 读取
字符结果是
, 上述分别是 NFA 下两个状态读取字符的后继状态取并集 ; 将新状态写到表格中 , 然后分析新状态 ;
状态下读取读取
字符结果是
, 读取
字符结果是
, 上述分别是 NFA 下两个状态读取字符的后继状态取并集 ; 将新状态写到表格中 , 然后分析新状态 ;
状态下读取读取
字符结果是
, 读取
字符结果是
, 上述分别是 NFA 下两个状态读取字符的后继状态取并集 ; 将新状态写到表格中 , 然后分析新状态 ;
状态下读取读取
字符结果是
, 读取
字符结果是
, 上述分别是 NFA 下两个状态读取字符的后继状态取并集 ;
| a a a | b b b |
|---|---|---|
{ 1 , 3 } {1, 3 } {1,3} | { 1 , 3 } {1 , 3} {1,3} | { 2 } {2} {2} |
{ 2 } {2} {2} | { 2 , 3 } {2,3} {2,3} | { 3 } {3} {3} |
{ 2 , 3 } {2,3} {2,3} | { 1 , 2 , 3 } {1,2,3} {1,2,3} | { 3 } {3} {3} |
{ 3 } {3} {3} | { 1 , 3 } {1,3} {1,3} | { ∅ } {\varnothing } {∅} |
{ 1 , 2 , 3 } {1,2,3} {1,2,3} | { 1 , 2 , 3 } {1,2,3} {1,2,3} | { 2 , 3 } {2,3} {2,3} |
{ ∅ } {\varnothing } {∅} | { ∅ } {\varnothing } {∅} | { ∅ } {\varnothing } {∅} |
凡是 包含 NFA 中接受状态
的新状态 都是 接受状态 ;
和
都是接受状态 , 画图时都是 双圈 ;
空集
状态 , 接受任何字符都是空集
;
最终的 DFA 如下 :

详细推理过程 : 【计算理论】非确定性有限自动机 ( NFA ) 转换成 确定性有限自动机 ( DFA )
将下图的 非确定性有限自动机 NFA 转为确定性有限自动机 DFA ;

NFA 的状态集
, 字符集
;
从 起始状态
开始分析 , 读取
无条件跳转到
, 这里形成了新的状态
, 写到下面表格中 ;
状态 下读取
字符结果是
, 读取
字符结果是
;
状态 下读取
字符结果是
, 读取
字符结果是
;
状态 下读取
字符结果是
, 读取
字符结果是
;
| a a a | b b b |
|---|---|---|
{ 1 , 2 } {1, 2 } {1,2} | { 1 , 2 , 3 } {1 , 2, 3} {1,2,3} | { ∅ } { \varnothing } {∅} |
{ 1 , 2 , 3 } {1 , 2, 3} {1,2,3} | { 2 , 3 } {2,3} {2,3} | { 2 , 3 } {2,3} {2,3} |
{ 2 , 3 } {2,3} {2,3} | { 1 , 2 } {1,2} {1,2} | { 2 , 3 } {2,3} {2,3} |
{ ∅ } {\varnothing } {∅} | { ∅ } {\varnothing } {∅} | { ∅ } {\varnothing } {∅} |
凡是 包含 NFA 中接受状态
的新状态 都是 接受状态 ;
,
和
都是接受状态 , 画图时都是 双圈 ;
空集
状态 , 接受任何字符都是空集
;
最终的 DFA 如下 :

将下图的 非确定性有限自动机 NFA 转为确定性有限自动机 DFA ;

NFA 的状态集
, 字符集
;
从 起始状态
开始分析 ,
状态 下读取
字符结果是
, 读取
字符结果是
;
状态 下读取
字符结果是
, 读取
字符结果是
;
状态 下读取
字符结果是
, 读取
字符结果是
;
| a a a | b b b |
|---|---|---|
{ 1 } {1 } {1} | { 1 , 2 } {1 , 2} {1,2} | { 2 } { 2 } {2} |
{ 1 , 2 } {1 , 2} {1,2} | { 1 , 2 } {1, 2} {1,2} | { 1 , 2 } {1,2} {1,2} |
{ 2 } {2} {2} | { ∅ } { \varnothing } {∅} | { 1 } {1} {1} |
{ ∅ } {\varnothing } {∅} | { ∅ } {\varnothing } {∅} | { ∅ } {\varnothing } {∅} |
凡是 包含 NFA 中接受状态
的新状态 都是 接受状态 ;
和
都是接受状态 , 画图时都是 双圈 ;
空集
状态 , 接受任何字符都是空集
;
最终的 DFA 如下 :
