Shrink a DFA to the fewest states that accept the same words, by splitting blocks of states or by marking pairs that a word tells apart.
This interactive visualization needs JavaScript.