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 unique up to state names.

Take a DFA . We could have DFAs where both being minimally equivalent DFAs for . Both and would have the same number of states, and transitions, but they can have different names for the states.

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