# Minimal DFA

This section will be about minimal DFAs. You will see what it means for a DFA to be minimal and how to convert a DFA to its minimal equivalent. You can find the notes related to this section here.

#### Minimal DFAs and the minimization algorithm

A DFA is minimal in the sense that no other DFA with a smaller **number of states** exists that accepts the same language. Every regular language has at least one minimal DFA! This can be shown by construction. First, we create an algorithm that minimizes any DFA. If we can prove that this algorithm is correct, then clearly a minimal DFA exists for every regular language: simply create *any* DFA that accepts it and then reduce it with this algorithm.

We will see that, thanks to the Myhill-Nerode Theorem, any minimal DFA produced by the state reduction algorithm will be unique (up to relabeling the states).

#### Using the algorithm

Are you confused? I donâ€™t blame you! I was confused the first time I saw the minimization algorithm. The way that I was able to understand the algorithm was by running it over a few DFAs. Thatâ€™s what I do in the next video!

#### Exercises

**Exercise.**Prove that any DFA that accepts the language \(L = \{w \in \Sigma^* : w \text{ starts with 01 and ends with 10}\}\)

**must**have at least 6 states.

**Exercise.**Does an analogous notion of minimal NFAs exist? Are these also unique?