具有多个启动状态的NFA到DFA转换



所以我可以很容易地将具有单一启动状态的给定NFA转换为等效的DFA,但是当涉及具有多个启动状态的NFA时,我就难住了。

由于DFA只能有一个启动状态(如果我是正确的),我如何知道NFA中的两个启动状态中哪一个成为DFA中的唯一启动状态?

作为参考,这是我试图转换的NFA:

   N|   a   |   b   |   c   |
____________________________
 ->0| {0,2} | {0,3} |  ---  |
*->0|  {0}  |  {0}  |  {3}  |
   0|  {2}  |  ---  | {2,3} |
 * 0|  {2}  |  ---  |  {3}  |

地点:-> =初始状态,* =接受状态;——= empty set,

具有多个启动状态的NFA相当于具有附加状态的NFA(成为新的单一启动状态),并且ϵ-edges从该状态到"实际"启动状态:

   N|   a   |   b   |   c   |   ϵ   |
----+-------+-------+-------+-------+
   0| {0,2} | {0,3} |   {}  |   {}  |
*  1|  {0}  |  {0}  |  {3}  |   {}  |
   2|  {2}  |   {}  | {2,3} |   {}  |
*  3|  {2}  |   {}  |  {3}  |   {}  |
 ->4|   {}  |   {}  |   {}  | {0,1} |

最新更新