Lect 03
Lect 03
Finite Automata
Input Tape
String
Output
“Accept”
Finite
or
Automaton
“Reject”
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
initial accepting
state state
transition
state
Based on slides by Costas Busch 3
Alphabet = {a , b }
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Initial state
Based on slides by Costas Busch 5
Scanning the Input
a b b a
head a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4 accept
a b a
Input String
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
a, b
reject
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
reject
Based on slides by Costas Busch 14
This automaton accepts only one string
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
To reject a string:
all the input string is scanned
and the last state is non-accepting
L = , ab, abba
a, b
q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4
q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4
accept
Based on slides by Costas Busch 18
Another Example
a a, b
q0 b q1 a, b q2
a a, b
q0 b q1 a, b q2
a a, b
q0 b q1 a, b q2
a a, b
q0 b q1 a, b q2
a a b
a a, b
accept
q0 b q1 a, b q2
b a b
Input String
a a, b
q0 b q1 a, b q2
a a, b
q0 b q1 a, b q2
a a, b
q0 b q1 a, b q2
a a, b
q0 b q1 a, b q2
reject
a a, b
q0 b q1 a, b q2
q0 q1
1
Language Accepted:
M = (Q, , , q0 , F )
Q : set of states
: input alphabet
: transition function
q0 : initial state
Q = q0 , q1, q2 , q3 , q4 , q5
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Example
= a, b a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Example
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Example
F = q4 a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
(q , x ) = q
x
q q
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
q2 q5 q3
a, b
q3 q4 q5
q4 q5 q5
q5
q5 q5 q5 a, b
b a a b
q0 a q1 b q2 b q3 a q4
Based on slides by Costas Busch 39
Extended Transition Function
:Q → Q
* *
(q ,w ) = q
*
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Based on slides by Costas Busch 41
(q0 , abbbaa ) = q5
*
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
(q, ) = q
*
w = 1 2 k
1 2 k
q q
states may be repeated
q w q
Based on slides by Costas Busch 45
Language Accepted by DFA
L(M ) = w : (q0 , w) F
* *
q0 w q q F
q0 q0
L(M ) = { } L(M ) = *
a, b
q0 a, b q1
L( M ) = { }
Language of the empty string
Based on slides by Costas Busch 50
= {a , b }
q0 a q1 b q2
b a accept
q3 a, b
0,1
1 0
1
0 0 00 1 001
0
1 0
0,1
1
0 1
0 00 001
0
Based on slides by Costas Busch 53
L( M ) = awa : w a, b
*
a
b
b
q0 a q2 q3
b a
q1
a, b
Based on slides by Costas Busch 54
Regular Languages
Definition:
A language L is regular if there is
a DFA M that accepts it ( L(M ) = L )
{ } { } *
{a, b}
There exist DFAs that accept these
languages (see previous slides).
Based on slides by Costas Busch 56
There exist languages which are not Regular:
L= {a b : n 0}
n n
ADDITION = {x + y = z : x = 1 ,y = 1 ,z = 1 ,
n m k
n + m = k}