DFA最小化算法的理解

时间:2013-06-09 21:01:27

标签: finite-automata state-machine dfa deterministic

我试图在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,因为不同(δ(b,0),δ(c,0))不是空的(d)?

1 个答案:

答案 0 :(得分:0)

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

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