Finite Automaton
- NFA and DFA
- Converting NFAs to DFAs using subset construction.
Minimizing DFA
Using Hopcroft’s DFA minimizing algorithm.
- Partition states into , such that
- = non-accepting states
- = accepting states
- Repeat
- , and ;
- If takes to more than one state in ;
- Split into multiple states;
- So that
for t in T:
for c in Sigma
if t --c--> more than one state in T
split(t), so that each state has 1 action
Nondeterministic Automaton
- Key difference: may have an (epsilon transition), which represents an empty string.
- Two interpretations: crystal ball interpretation (oracle) and many-world interpretation.
Limits of FA
- Hard to write.
- Can’t express any arbitrary levels of nested structures.