【问题标题】:How to partition the states of a DFA having a dead state during minimisation of the same如何在最小化相同的过程中划分具有死状态的 DFA 的状态
【发布时间】:2013-10-21 16:42:51
【问题描述】:

当我们想要最小化 DFA 时,首先我们将最终状态和非最终状态划分。然后我们将这些状态划分为多个分区,直到每个分区中的所有状态都属于同一个等价类。现在我的问题是假设我们在 dfa 中有一个死状态,那么它应该进入非最终状态的分区还是单独的分区(仅包含死状态)?另外请告诉我该死状态是否应该算作状态之一在最小化的 dfa 中?

【问题讨论】:

    标签: automata computation-theory dfa


    【解决方案1】:

    死亡状态进入非最终状态集合,因为它不是接受状态。在最小化算法期间,您就像对待任何其他状态一样对待它。当你完成后,如果你的 DFA 需要一个死状态,它应该有一个死状态作为它的状态之一。一些常规语言需要死状态,但算法足够“智能”以确保它们被包含在内。

    希望这会有所帮助!

    【讨论】:

    • 感谢您的回答。
    • 我有一个疑问,因为我们正在考虑死状态以及同一等价类中的其他非最终状态,在等价的所有细分之后死状态的最终位置是什么。课程已经结束。两个或多个州居住在同一个等值。块必须合并到最小化 dfa 中的单个状态。现在,如果死状态与等效的另一个状态一起出现。 block finally 如何合并?(死状态不应该与任何其他状态合并)。
    • 为什么dead状态不能和其他状态合并?如果 DFA 中的其他状态没有通向任何接受状态的路径,则它们实际上是死的,并将在最小化期间​​与死状态合并。
    • 换个说法。阻止你有状态 a、b、c 和死状态 d。你发现 a 不是等价的。到 b 和 c 所以最终会形成两个类,其中一个包含 a 和 d,另一个包含 c 和 b。现在你认为 a 和 d 是等价的吗?并且可以在分钟内合并到单个状态。 dfa?
    • 是的!除非一个状态最终可以与死状态区分开来,否则它会与死状态合并。同样,死亡状态与其他状态没有任何区别。
    猜你喜欢
    • 2020-05-24
    • 2013-12-24
    • 2012-03-10
    • 2014-03-11
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    相关资源
    最近更新 更多