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)={q∈QN∣N 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={Q⊆QN∣Q contains an accept state of N}. Let q0 be the start state of N. As start state for M, we choose Q0={q∈QN∣q can be reached from q0 by ε-transitions}. Finally, the transition function of M is defined as δM(Q,x)={q∈QN∣q 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, w∈L(M)⇔δ∗M(w)∈FM⇔N has a computation for w that ends in an accept state of N⇔w∈L(N). ◻