Finite Automata

  • simple model of Computation
  • reads input left to right, one symbol at a time
  • maintains state
    • information about seen inputs
    • finite automaton finite # of states (loses memory over time)
  • described by diagram or formally

Diagram

  • start arrow at left
  • alphabet in example:
  • states:
    • is accept state
  • transitions are arrows denoted by number (input)
  • this FA decides
    • language is every string ending with

Formal Definition

[!math|{“type”:“definition”,“number”:“auto”,“setAsNoteMathLink”:false,“title”:“Finite Automaton”,“label”:“finite-automaton”,“_index”:0}] Definition 1 (Finite Automaton). A finite automaton is a 5-tuple

  • : finite set called the states
  • : finite set called the alphabet
  • : function called transition function
  • : start state
  • : subset of containing accept states

FA Languages

  • closure union ”
    • set of languages recognized by FA is closed under union
  • closure under concatenation ”
  • closure under

But,

  • how to concatenate?
    • can try turning accept states of into start states of
    • but then FA might start parsing string for when it should still be parsing
    • need free transition
    • multiple transitions with same label?!
    • introduces non-determinism, creating

Non-Deterministic Finite Automaton

  • can think of NFA operation as
  • is accepted if there exists a way of inserting ’s into so that
  • there exists a path of transitions from start to accept state.

[!math|{“type”:“definition”,“number”:“auto”,“setAsNoteMathLink”:false,“title”:“Nondeterministic Finite Automaton”,“label”:“nondeterministic-finite-automaton”,“_index”:1}] Definition 2 (Nondeterministic Finite Automaton).

  • are same as ^02be7c
  • where is Power Set of .

[!math|{“type”:“definition”,“number”:“auto”,“setAsNoteMathLink”:false,“title”:“NFA Operation”,“label”:“nfa-operation”,“_index”:2}] Definition 3 (NFA Operation). NFA accepts a string if can be written as

and of states for which , for and

NFA and FA Equivalence

[!math|{“type”:“theorem”,“number”:“auto”,“setAsNoteMathLink”:false,“_index”:3}] Theorem 4. A language is recognized by a finite automata iff is recognized by a non-deterministic finite automata.

\begin{proof} Since FA are NFA, it is trivial to prove recognition by FA recognition by NFA.

To prove NFA recognition FA recognition, we prove all NFA can be simulated by FA - by setting states of FA to be subsets of the set of states of NFA. That is, given NFA , we can construct simulation FA where

  • ,
  • :

Now we should prove construction works by induction on number of steps of computation but nah. \end{proof}

Limitations

We can prove that there are languages FA can’t recognize through the existence of Non Regular Languages.