One Minute To Learn Programming: Finite Automata: A B A B
One Minute To Learn Programming: Finite Automata: A B A B
b a
a
b
b
Let me teach
you a
programming
language so
simple that
you can learn
it in less
than a
minute.
b a
a
b b
Input String Result
aba Accept
aabb Reject
aabba Accept
Accept
Steven Rudich: www.cs.cmu.edu/~rudi
The Simplest Interesting Machine:
Finite set of
states Q {qo , q1 , q2 , , qk }
A start state qo
A set of
accepting F qi1 , qi2 , , qir
states
A finite a b #
alphabet
x 1
State a :Q Q
transition qi qj
instructions ( qi , a ) q j
Steven Rudich: www.cs.cmu.edu/~rudi
How Machine M operates.
M “reads” one letter at a time from
the input string (going from left to
right)
M crashes on x if M crashes
while reading x.
Steven Rudich: www.cs.cmu.edu/~rudi
The set (or language) accepted by M is:
LM x * | M accepts x
*
...
0 1 2 3
a,b
a,b
a,b
a,b
a,b
a b a
a b b
b b
a a a,b
b b
a a a,b
b a
b
Steven Rudich: www.cs.cmu.edu/~rudi
What machine accepts this
language?
L = strings with an even number of ab pairs
a
b a b
b
b a
a
Steven Rudich: www.cs.cmu.edu/~rudi
L = all strings containing ababb as a consecutive
substring
a
b a
a ab aba abab
Invariant: I am state s exactly when s is the
longest suffix of the input (so far) that forms a
prefix of ababb. Steven Rudich: www.cs.cmu.edu/~rudi
The “grep” Problem
Input: Problem:
• text T of length t Does the string
• string S of length n S appear inside
the text T ?
n symbols
Naïve method:
a1 , a2 , a3 , , at
Cost: O(nt) comparisons
Steven Rudich: www.cs.cmu.edu/~rudi
Automata Solution
•grep
•coke machines
•thermostats (fridge)
•elevators
•
• even length strings
a b
c b c
d
Steven Rudich: www.cs.cmu.edu/~rudi
Are all
languages
regular?
a
b
b
a a
b a
a
b b
Letterbox principle: If
the average number of
letters per box is a, then
some box will have at
least a letters. (Similarly,
some box has at most a.)
qi qk qj
Q Q Q Q qi , q j
( qk , qi , q j ) ql qk ql
Q , a, b, d
sleep
{w},Q {w3},Q {w4},Q
{w2},Q
wake wake2 wake3 wake4
Q,Q Q,Q Q,Q
Q,Q
fire!
1 2 3 4 5
sleep sleep sleep sleep sleep
sleep sleep sleep sleep sleep
sleep sleep sleep sleep sleep
sleep sleep sleep sleep sleep
sleep sleep sleep sleep sleep
Steven Rudich: www.cs.cmu.edu/~rudi
{sleep,fire,end},Q
sleep
{w},Q {w3},Q {w4},Q
{w2},Q
wake wake2 wake3 wake4
Q,Q Q,Q Q,Q
Q,Q
fire!
1 2 3 4 5
wake sleep sleep sleep sleep
sleep
{w},Q {w3},Q {w4},Q
{w2},Q
wake wake2 wake3 wake4
Q,Q Q,Q Q,Q
Q,Q
fire!
1 2 3 4 5
wake sleep sleep sleep sleep
wake2 wake2 sleep sleep sleep
sleep
{w},Q {w3},Q {w4},Q
{w2},Q
wake wake2 wake3 wake4
Q,Q Q,Q Q,Q
Q,Q
fire!
1 2 3 4 5
wake sleep sleep sleep sleep
wake2 wake2 sleep sleep sleep
wake3 wake3 wake3 sleep sleep
sleep
{w},Q {w3},Q {w4},Q
{w2},Q
wake wake2 wake3 wake4
Q,Q Q,Q Q,Q
Q,Q
fire!
1 2 3 4 5
wake sleep sleep sleep sleep
wake2 wake2 sleep sleep sleep
wake3 wake3 wake3 sleep sleep
wake4 wake4 wake4 wake4 sleep
sleep
{w},Q {w3},Q {w4},Q
{w2},Q
wake wake2 wake3 wake4
Q,Q Q,Q Q,Q
Q,Q
fire!
1 2 3 4 5
wake sleep sleep sleep sleep
wake2 wake2 sleep sleep sleep
wake3 wake3 wake3 sleep sleep
wake4 wake4 wake4 wake4 sleep
fire fire fire fire fire
Steven Rudich: www.cs.cmu.edu/~rudi
Question