【问题标题】:NFA to DFA where a state only has an epsilon transitionNFA 到 DFA,其中状态仅具有 epsilon 转换
【发布时间】:2019-03-21 13:21:04
【问题描述】:

如果在将 NFA 表转换为 DFA 表时,存在仅作为 epsilon 转换的状态,它是如何转换为 DFA 表的。

例如,如果状态 1 在 ε 列中只接受 2,它在 DFA 转换中会是什么样子?

转换表:

     a     b     c    ε
1   {}    {}    {}   {2}
2   {3}   {}    {}   {}
3   {4}   {3,4} {}   {}
4   {4}   {}    {}   {}

【问题讨论】:

  • 这意味着任何包含状态1的集合也应该包含状态2

标签: dfa state-machine deterministic nfa non-deterministic


【解决方案1】:

我认为最好先消除 epsilon 转换以获得 NFA(没有 epsilon 转换)。从 NFA 应该更容易获得等效的 DFA。

如何消除ε转换?

首先,我们有一个状态的术语ECLOSEECLOSE(q) 定义为所有状态的集合(包括状态 q 本身),可以通过以下 epsilon 转换到达。 在你的情况下:

ECLOSE(1) = {1,2}

要消除 epsilon 转换,请执行以下步骤:

  1. 如果ECLOSE(1) 包含最终状态,则将state 1 设置为最终状态 状态
  2. 添加从state 1state q 的转换(带有相应标签)当且仅当从ECLOSE(1) 中的某些状态转换到state q
  3. 现在您可以删除所有 epsilon 转换。

经过上述步骤(您没有指定哪些状态是开始和/或最终状态),您应该得到:

    a     b     c    
1   {3}   {}    {}   
2   {3}   {}    {}   
3   {4}   {3,4} {}   
4   {4}   {}    {}   

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-30
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2011-04-29
    • 2019-10-18
    • 2011-08-16
    相关资源
    最近更新 更多