编译原理期末速成–正规式、NFA转DFA、DFA的简化

编译原理期末速成–正规式、NFA转DFA、DFA的简化

文章目录

  • 编译原理期末速成--正规式、NFA转DFA、DFA的简化
    • 什么是DFA、NFA?
    • 看个题消化一下
      • 步骤一:
      • 步骤二:
      • 步骤三:
      • 步骤四:
      • 步骤五:
      • 步骤六:
      • 步骤七:

什么是DFA、NFA?

**确定有限自动机(DFA)**是一种计算模型,它对于给定的输入符号和当前状态,具有唯一的下一个状态转换。每个状态只能转换到一个确定的下一个状态,不会存在多个选择(即初态唯一)。DFA 的状态转换是确定的,没有任何非确定性。

一个确定有限自动机可以用一个五元组表示:M = (Q, Σ, δ, q₀, F),其中:

  1. Q 是有限状态集合。
  2. Σ 是输入符号集合。
  3. δ 是状态转换函数,即 δ: Q × Σ → Q,表示给定当前状态和输入符号,自动机将转移到的下一个状态。
  4. q₀ 是初始状态。
  5. F 是接受状态集合,F ⊆ Q。

**非确定有限自动机(NFA)**是另一种计算模型,相对于 DFA 具有更高的表达能力。在 NFA 中,对于给定的输入符号和当前状态,可以存在多个可能的下一个状态转换(即初态可以有多个)。NFA 的状态转换存在非确定性,即在某个状态下,可以有多个不同的选择路径。

一个非确定有限自动机可以用一个五元组表示:N = (Q, Σ, δ, q₀, F),其中的组成与 DFA 相同,但与 DFA 不同的是,NFA 的状态转换函数 δ: Q × Σ → 2^Q,其中 2^Q 表示从当前状态通过输入符号可以转移到的所有可能状态的幂集。

看个题消化一下

在这里插入图片描述

编译原理期末速成–正规式、NFA转DFA、DFA的简化_第1张图片

步骤一:

根据正规构造NFA,引入初始状态X和终止状态Y

编译原理期末速成–正规式、NFA转DFA、DFA的简化_第2张图片

步骤二:

根据三个规则,将NFA图进行分解,得到分解后的NFA

编译原理期末速成–正规式、NFA转DFA、DFA的简化_第3张图片

步骤三:

对NFA进行确定化,获得转换矩阵

编译原理期末速成–正规式、NFA转DFA、DFA的简化_第4张图片

步骤四:

对所有状态集重新命名,得到新的状态转换矩阵

编译原理期末速成–正规式、NFA转DFA、DFA的简化_第5张图片

步骤五:

根据状态转换矩阵获取相应的DFA

编译原理期末速成–正规式、NFA转DFA、DFA的简化_第6张图片

步骤六:

化简DFA,获得最简DFA即为所求

编译原理期末速成–正规式、NFA转DFA、DFA的简化_第7张图片

步骤七:

最终所求DFA如图所示

编译原理期末速成–正规式、NFA转DFA、DFA的简化_第8张图片

你可能感兴趣的:(编译原理,学习方法)