Introduction to Automata
Theory
Chapter 1
1
2
What is Automata Theory?
Study of abstract computing devices, or
“machines”
Automaton = an abstract computing device
Note: A “device” need not even be a physical
hardware!
A fundamental question in computer science:
Find out what different models of machines can do
and cannot do
The theory of computation
Computability vs. Complexity
3
(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
4
Theory of Computation: A
Historical Perspective
• Alan Turing studies Turing machines
1930s
• Decidability
• Halting problem
1940-1950s • “Finite automata” machines studied
• Noam Chomsky proposes the
“Chomsky Hierarchy” for formal
languages
1969 Cook introduces “intractable” problems
or “NP-Hard” problems
1970- Modern computer science: compilers,
computational & complexity theory evolve
5
Languages & Grammars
Or “words”
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
6
The Chomsky Hierarchy
• A containment hierarchy of classes of formal languages
Context- Context- Recursively-
Regular
(FA) free sensitive enumerable
(PDA) (LBA) (TM)
The Central Concepts of
Automata Theory
7
8
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}
…
9
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| = 6
x = 01 0 1 00 |x| = ?
xy = concatentation of two strings x and y
1
0
Powers of an alphabet
Let ∑ be an alphabet.
∑k = the set of all strings of length k
Kleen Closure
∑* = ∑0 U ∑1 U ∑2 U …
Kleen Plus
∑ + = ∑ 1 U ∑ 2 U ∑3 U …
1
1
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:
●
Let L be the language of all strings consisting of n 0’s followed by n 1’s:
L = {,01,0011,000111,…}
●
Let L be the language of all strings of with equal number of 0’s and 1’s:
L = {,01,10,0011,1100,0101,1010,1001,…}
Definition: Ø denotes the Empty language
Let L = {}; Is L=Ø? NO
1
2
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?
1
3
Finite Automata 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 finding patterns
Software for verifying systems of all types that have a
finite number of states (e.g., stock market transaction,
communication/network protocol)
1
4
Finite Automata : Examples
action
On/Off switch state
Modeling recognition of the word “then”
Start state Transition Intermediate Final state
state