Lecture 7: Non-deterministic vs Deterministic Finite Automata

The following theorem shows that deterministic and non-deterministic finite automata accept the same class of languages.

Theorem: For every non-deterministic finite automaton N, there exists a deterministic finite automaton M that accepts the same language, L(M)=L(N).

Proof: The idea is to have states in M that correspond to subsets of states in N. Let QN be the states of N. We want that for every word wΣ, the automaton M is in the following state after reading w, δM(w)={qQNN has a computation path for the word w that ends in the state q}. If we have an automaton M with this property, then it has the same language as N if we choose the accept states of M as FM={QQNQ contains an accept state of N}. Let q0 be the start state of N. As start state for M, we choose Q0={qQNq can be reached from q0 by ε-transitions}. Finally, the transition function of M is defined as δM(Q,x)={qQNq can be reached from a state in Q by ε-transitions and exactly one x-transition}. With this transition function and start state, the repeated transition function δM indeed has the property above (proof by induction). Therefore, wL(M)δM(w)FMN has a computation for w that ends in an accept state of NwL(N).