Finite Automata
Maheshwari & Smid · Ch. 1 · Introduction to Theory of Computation
A deterministic finite automaton (DFA) is a 5-tuple (Q, Σ, δ, q0, F): finite states, an alphabet, a transition function, a start state, and accepting states. It reads a string one symbol at a time and either accepts or rejects. That is the simplest model of computation.
The five components
A DFA is defined by:
- Q — a finite set of states
- Σ — a finite alphabet of input symbols
- δ — a transition function Q × Σ → Q
- q0 — the start state (q0 ∈ Q)
- F — a set of accepting states (F ⊆ Q)
Example: strings ending in "01"
Over the alphabet {0, 1}, this DFA accepts exactly the strings that end with "01".
Simulating a DFA
Scheme
Language recognition
The language of a DFA is the set of all strings it accepts. We write L(M) for the language recognized by machine M. A language is regular if some DFA recognizes it. Not all languages are regular: we will prove limits in Chapter 3.
Scheme
Notation reference
| Symbol | Meaning |
|---|---|
| Q | Finite set of states |
| Σ | Input alphabet |
| δ(q, a) | Transition function: state q reading symbol a |
| q0 | Start state |
| F | Set of accepting (final) states |
| L(M) | Language recognized by machine M |
Neighbors
- 🔢 Discrete Math Ch.4 — graphs (automata are labeled directed graphs)
- 🔢 Discrete Math Ch.3 — propositional logic: automata can be expressed as logical formulas
- 🔗 Abstract Algebra Ch.1 — groups and monoids: FSAs are exactly the monoid recognizers
- 🪄 SICP Ch.11 — state machines in code: stream processors as explicit automata