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).
[!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.