INT201 - NFA转化为DFA相关问题

这里引用b站一个老哥的讲解视频,建议1.5倍速观看,看到15分钟左右的时候你就完全明白了。

编译原理正规表达式转NFA到DFA再化简

视频里用的方法叫做子集法,即将初始状态变为原本初始状态的 epsilon - closure(E(p))。再记录新的初始状态在不同输入下的状态结果,得到一系列子集(因为每个集合都是∑的一个子集)。再重新命名各个子集,画出新的状态机,就是DFA。

注意事项:

  • 得到一个新的子集后最好给它新的命名,例如Ia、Iaa、Iaab这种,以免漏下某个集合
  • DFA的结束态是所有包含原NFA结束态的集合
  • 一旦不会产生新的子集,并且每个子集的新输入情况都判断过了,就可以停止。

你可能感兴趣的:(XJTLU,算法)