Finite Automaton

  • NFA and DFA
  • Converting NFAs to DFAs using subset construction.

Minimizing DFA

Using Hopcroft’s DFA minimizing algorithm.

  1. Partition states into , such that
    • = non-accepting states
    • = accepting states
  2. 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.