我试图在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)?
答案 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)将始终为空。更好的是,我们不考虑它,因为它没有意义。