A minimally equivalent DFA is a DFA that is equivalent to another DFA, while being minimal (having the least number of states & transitions). The process of converting a DFA to its minimal form is known as minimalisation.
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):
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, :
-
Reversal the NFA to obtain
-
Determinise to produce
-
Reverse to produce (it could be that this is a DFA, but in most cases, reversal results in an NFA)
-
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