Table of Contents

6. Minimal DFAs

6.1. Equivalence between states

Consider the following DFA:



6.1.1. Identify a pair of states which are indistinguishable.

6.1.2. Identify a pair of final or non-final states which are distinguishable. The pair must be distinguished by a word different from the empty word.

6.1.3. Compute the table of indistinguishable states for the previous DFA.

6.2. Minimisation

6.2.1. Minimise the previous DFA.

6.2.2. Determine if the following regexes are equivalent: $ (1\cup\epsilon)(00^*1)^*0^*$ and $ (10\cup 0)^*(01 \cup 1)^*(0 \cup \epsilon)$

6.2.3. Write an algorithm draft for DFA minimisation. Focus on the best implementation for building states and transitions in the minimal DFA. Implement your algorithm.

6.3. DFA to Regex

6.3.1. Convert the following DFA to a Regex (using the state-elimination strategy). Hint: is it easier to apply conversion on another DFA?