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 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, :
-
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