Introduction to Automata
Theory
What is Automata Theory?
Study of abstract computing devices, or
machines
Automaton = an abstract computing device
A fundamental question in computer science:
Note: A device need not even be a physical
hardware!
Find out what different models of machines can do
and cannot do
The theory of computation
Computability vs. Complexity
2
(A pioneer of automata theory)
Alan Turing (1912-1954)
Father of Modern Computer
Science
English mathematician
Studied abstract machines called
Turing machines even before
computers existed
Heard of the Turing test?
3
Theory of Computation: A
Historical Perspective
1930s
Alan Turing studies Turing machines
Decidability
Halting problem
1940-1950s Finite automata machines studied
Noam Chomsky proposes the
Chomsky Hierarchy for formal
languages
1969
1970-
Cook introduces intractable problems
or NP-Hard problems
Modern computer science: compilers,
computational & complexity theory evolve
4
Languages & Grammars
Or words
Image source: Nowak et al. Nature, vol 417, 2002
Languages: A language is a
collection of sentences of
finite length all constructed
from a finite alphabet of
symbols
Grammars: A grammar can
be regarded as a device that
enumerates the sentences of
a language - nothing more,
nothing less
N. Chomsky, Information and
Control, Vol 2, 1959
The Chomsky Hierachy
A containment hierarchy of classes of formal languages
Regular
(DFA)
Contextfree
(PDA)
Contextsensitive
(LBA)
Recursivelyenumerable
(TM)
The Central Concepts of
Automata Theory
Alphabet
An alphabet is a finite, non-empty set of symbols
We use the symbol (sigma) to denote an
alphabet
Examples:
Binary: = {0,1}
All lower case letters: = {a,b,c,..z}
Alphanumeric: = {a-z, A-Z, 0-9}
DNA molecule letters: = {a,c,g,t}
Strings
A string or word is a finite sequence of symbols
chosen from
Empty string is (or epsilon)
Length of a string w, denoted by |w|, is equal
to the number of (non- ) characters in the string
E.g., x = 010100
x = 01 0 1 00
|x| = 6
|x| = ?
xy = concatentation of two strings x and y
9
Powers of an alphabet
Let be an alphabet.
k = the set of all strings of length k
* = 0 U 1 U 2 U
+ = 1 U 2 U 3 U
10
Languages
L is a said to be a language over alphabet , only if L *
this is because * is the set of all strings (of all possible length
including 0) over the given alphabet
Examples:
1. Let L be the language of all strings consisting of n 0s followed by n
1s:
L = {,01,0011,000111,}
2. Let L be the language of all strings of with equal number of 0s and
1s:
L = {,01,10,0011,1100,0101,1010,1001,}
Definition:
denotes the Empty language
Let L = {}; Is L=?
NO
11
The Membership Problem
Given a string w *and a language L
over , decide whether or not w L.
Example:
Let w = 100011
Q) Is w the language of strings with
equal number of 0s and 1s?
12
Finite Automata
Some Applications
Software for designing and checking the behavior
of digital circuits
Lexical analyzer of a typical compiler
Software for scanning large bodies of text (e.g.,
web pages) for pattern finding
Software for verifying systems of all types that
have a finite number of states (e.g., stock market
transaction, communication/network protocol)
13
Finite Automata : Examples
action
On/Off switch
Modeling recognition of the word then
Start state
Transition
state
Intermediate
state
Final state
14
Structural expressions
Grammars
Regular expressions
E.g., unix style to capture city names such
as Palo Alto CA:
[A-Z][a-z]*([ ][A-Z][a-z]*)*[ ][A-Z][A-Z]
Start with a letter
A string of other
letters (possibly
empty)
Should end w/ 2-letter state code
Other space delimited words
(part of city name)
15