【问题标题】:DFA minimization algorithm understandingDFA最小化算法理解
【发布时间】:2013-06-05 12:48:16
【问题描述】:

我试图在http://www.cs.umd.edu/class/fall2009/cmsc330/lectures/discussion2.pdf 上理解这个算法 DFA 最小化算法,它说:

while until there is no change in the table contents:
    For each pair of states (p,q) and each character a in the alphabet:
        if Distinct(p,q) is empty and Distinct(δ(p,a), δ(q,a)) is not empty:
            set distinct(p,q) to be x

我不明白的一点是“Distinct(δ(p,a), δ(q,a))” 我想我理解转换函数,其中 δ(p,a) = 从 p 到达的任何状态带输入 a。但使用以下 DFA:

http://i.stack.imgur.com/arZ8O.png

生成此表:

imgur.com/Vg38ZDN.png

不应该将 (c,b) 也标记为 x,因为 distinct(δ(b,0), δ(c,0)) 不为空 (d) 吗?

【问题讨论】:

    标签: finite-automata state-machine dfa deterministic


    【解决方案1】:

    Distinct(δ(p,a), δ(q,a)) 仅当 δ(p,a) 和 δ(q,a) 不同时才为非空。在您的示例中,δ(b,0) 和 δ(c,0) 都是 d。 Distinct(d, d) 是空的,因为 d 与自身不同是没有意义的。由于 Distinct(d, d) 为空,我们不标记 Distinct(c, b)。

    一般来说, Distinct(p, p) 其中 p 是一个状态将始终为空。更好的是,我们不考虑它,因为它没有意义。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-30
      • 2012-06-23
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 2021-06-11
      • 2016-05-26
      • 2019-09-26
      相关资源
      最近更新 更多