A minimal DFA, , for some language is one that recognises while having the least number of states. That is, if we were to remove a transition or state from , it no longer recognises .

Recall the definition of equivalence (in terms of finite state automata):

FSA

The minimally equivalent DFA is not unique.

Take a DFA . We could have DFAs where both being minimally equivalent DFAs for . Both and would have the same number of states, but apart from that, they can be totally different.

Procedure

From an NFA

This process requires both determinisation and reversal.

For a given NFA, :

  1. Reversal the NFA to obtain

  2. Determinise to produce

  3. Reverse to produce (it could be that this is a DFA, but in most cases, reversal results in an NFA)

  4. Determinise again (this is because reversing may add -transitions, which need to be removed in a DFA)

For a DFA

#todo See https://people.csail.mit.edu/rrw/6.045-2020/lec5-before-class.pdf

Relation To Fooling Sets

A DFA, , for some language , is minimal if there exists a fooling set for where its size, is exactly equal to the number of states of . This is because the fooling set produces a lower bound for the number of states needed to recognise a language, hence being equal to the lower bound gives us the smallest, or minimal DFA.

Examples

2: NFA to minimally equivalent DFA

Convert the NFA given below to its minimally equivalent DFA:

We start by reversing the NFA:

%%🖋 Edit in Excalidraw, and the dark exported image%%

Then, we determinise this new NFA:

%%🖋 Edit in Excalidraw, and the dark exported image%%

#todo later