Deterministic
Finite Automata
And Regular Languages
Deterministic
Finite Automata
Simple Automaton
Introduction to Automata Theory, Languages, and Computation, Second 3
Complex Automaton
Introduction to Automata Theory, Languages, and Computation, Second 4
Complex Automaton (cont..)
Introduction to Automata Theory, Languages, and Computation, Second 5
Complex Automaton (cont..)
Introduction to Automata Theory, Languages, and Computation, Second 6
Complex Automaton (cont..)
Introduction to Automata Theory, Languages, and Computation, Second 7
Finite Accepter
Input
String
Output
“Accept”
Finite
or
Automaton
“Reject”
Courtesy Costas Busch - RPI 8
Transition Graph
abba -Finite Accepter a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
initial final
state state
transition
state “accept”
Courtesy Costas Busch - RPI 9
Alphabet {a,b }
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
For every state, there is a transition
for every symbol in the alphabet
Courtesy Costas Busch - RPI 10
Initial Configuration
Input String
a b b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 11
Reading the Input
a b b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 12
a b b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 13
a b b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 14
a b b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 15
Input finished
a b b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Output: “accept”
Courtesy Costas Busch - RPI 16
Rejection
a b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 17
a b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 18
a b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 19
a b a
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 20
Input finished
a b a
a, b
Output:
q5 “reject”
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 21
Another Rejection
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 22
Input
Input Finished (no symbol read)
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Output:
“reject” Courtesy Costas Busch - RPI 23
Another Example
a a b
a a, b
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 24
a a b
a a, b
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 25
a a b
a a, b
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 26
a a b
a a, b
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 27
Input finished
a a b
a a, b
Output: “accept”
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 28
Rejection
b a b
a a, b
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 29
b a b
a a, b
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 30
b a b
a a, b
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 31
b a b
a a, b
b a, b
q0 q1 q2
Courtesy Costas Busch - RPI 32
Input finished
b a b
a a, b
b a, b
q0 q1 q2
Output: “reject”
Courtesy Costas Busch - RPI 33
Formal Definition
Deterministic Finite Automaton (DFA)
M Q, , , q0 , F
Q : finite set of states
: finite set of input alphabet
: transition function
q0 : initial state q0 Q
F : set of final states F Q
Courtesy Costas Busch - RPI 34
Input Alphabet
:the input alphabet never contains
a, b
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 35
Set of States Q
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
Courtesy Costas Busch - RPI 36
Initial State q0
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 37
Set of Final States F
F q4 F Q
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 38
To accept a string:
all the input string is scanned
and the last state (qfinal) is accepting
qfinal F
To reject a string:
all the input string is scanned
and the last state (qlast) is non-acceptin
qlast F qlast (Q F )
Courtesy Costas Busch - RPI 39
Transition Function : Q Q
(q, x ) q
x
q q
Describes the result of a transition
from state q with symbol x
Courtesy Costas Busch - RPI 40
q0 , a q1
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 41
q0 , b q5
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 42
q2 , b q3
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 43
Transition Function
a b
q0 q1 q5
q1 q5 q2
q2 q5 q3
q3 q4 q5 a, b
q4 q5 q5
q5 q5 q5 q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 44
Extended Transition Function
* *
: Q Q
*
(q,w ) q
Describes the resulting state
after scanning string w from stateq
Courtesy Costas Busch - RPI 45
* q0 , ab q2
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 46
* q0 , abba q4
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 47
* q0 , abbbaa q5
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 48
Special case:
for any state q
q, q
*
Courtesy Costas Busch - RPI 49
Observation: There is a walk from q to q
with label w
* q, w q
q w q
states may be repeated
w 1 2 k
1 2 k
q q
Courtesy Costas Busch - RPI 50
Example: There is a walk from q0 to q5
with label abbbaa
* q0 , abbbaa q5
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 51
Inductive Definition
Basis * q, q
Induction * q, w ( * (q, w), )
q w q1 q
* q, w q
* q, w (q1, )
(q1, ) q
* q, w ( * (q, w), )
* q, w q1
Courtesy Costas Busch - RPI 52
a b * q0 , ab
q0 q1 q5 * (q0 , a),b
q1 q5 q2 * q0 , , a , b
q2 q5 q3 q0 , a , b
q3 q4 q5 q1, b
q4 q5 q5 q2
q5 q5 q5 a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 53
a b * q0 , ab
q0 q1 q5 * (q0 , a),b
q1 q5 q2 * q, q * q0 , , a , b
q2 q5 q3 q0 , a , b
q3 q4 q5 q1, b
q4 q5 q5 q2
q5 q5 q5 a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 54
a b * q0 , ab
q0 q1 q5 * (q0 , a),b
q1 q5 q2 * q0 , , a , b
q2 q5 q3 q0 , a , b
q3 q4 q5 q1, b
q4 q5 q5 q2
q5 q5 q5 a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 55
a b * q0 , ab
q0 q1 q5 * (q0 , a),b
q1 q5 q2 * q0 , , a , b
q2 q5 q3 q0 , a , b
q3 q4 q5 q1, b
q4 q5 q5 q2
q5 q5 q5 a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 56
a b * q0 , ab
q0 q1 q5 * (q0 , a),b
q1 q5 q2 * q0 , , a , b
q2 q5 q3 q0 , a , b
q3 q4 q5 q1, b
q4 q5 q5 q2
q5 q5 q5 a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 57
a b * q0 , ab
q0 q1 q5 * (q0 , a),b
q1 q5 q2 * q0 , , a , b
q2 q5 q3 q0 , a , b
q3 q4 q5 q1, b
q4 q5 q5 q2
q5 q5 q5 a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 58
a b * q0 , ab
q0 q1 q5 * (q0 , a),b
q1 q5 q2 * q0 , , a , b
q2 q5 q3 q0 , a , b
q3 q4 q5 q1, b
q4 q5 q5 q2
q5 q5 q5 a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 59
Languages Accepted by DFAs
Take DFA M
Definition:
The languageLM contains
M
all input strings accepted by
LM M
= { strings that drive to a final
state}
Courtesy Costas Busch - RPI 60
Example # 1
LM abba M
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
accept
Courtesy Costas Busch - RPI 61
Activity
Time
LM , abba
This automaton accepts only one string
Language Accepted: L abba
a, b
q5
a, b
b a a b
q0 a q1 b q2 b q3 a q4
Make it to accept two strings L , abba
Courtesy Costas Busch - RPI 63
Example # 2
Alphabet: {1}
1
q0 q1
1
Language Accepted:
*
EVEN {x : x and | x | is even}
{, 11, 1111
, 111111
, }
Courtesy Costas Busch - RPI 64
Example # 3
LM , ab, abba M
a, b
q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4
accept accept accept
Courtesy Costas Busch - RPI 65
Languages Accepted by DFAs
Take DFA M
Definition:
The languageLM contains
M
all input strings accepted by
LM M
= { strings that drive to a final
state}
Courtesy Costas Busch - RPI 66
Formally
For a DFA M Q, , , q0 , F
M
Language accepted by :
LM w * : * q0 , w F
q0 w q q F
Courtesy Costas Busch - RPI 67
Observation
Language rejected byM :
LM w * : * q0 , w F
q0 w q q F
Courtesy Costas Busch - RPI 68
Regular Languages
Definition:
A languageL is regular if there is
a DFA M that accepts it L
( (M ) L )
The languages accepted by all DFAs
form the family of regular languages
Courtesy Costas Busch - RPI 69
Activity # 1
n
LM {a b : n 0}
a a, b
b a, b
q0 q1 q2
accept trap state
Courtesy Costas Busch - RPI 70
Activity # 2
The languageL awa : w a, b *
is regular:
a
b
L LM b
q0 a q2 q3
b a
q4
a, b
Courtesy Costas Busch - RPI 71
Activity # 3
LM= { all strings with prefix ab }
a, b
q0 a q1 b q2
b a accept
q3 a, b
Courtesy Costas Busch - RPI 72
Activity # 4
LM=
{ all binary strings containing
substring 001 }
0,1
1 0
1
0 0 00 1 001
0
Courtesy Costas Busch - RPI 73
Activity # 5
LM = { all binary strings without
substring 001 }
1 0 0,1
1
0 1
0 00 001
0
Courtesy Costas Busch - RPI 74
Activity # 6 & 7
{a,b }
a, b
a, b
q0 q0
L(M ) { } L(M ) *
Empty language All strings
Courtesy Costas Busch - RPI 75
Activity # 8
{a,b }
a, b
q0 a, b q0
L(M ) { }
Language of the empty string
Courtesy Costas Busch - RPI 76
here exist languages which are not Regular:
n n
L{a b : n 0}
n m k
ADDITION {x y z : x 1 , y 1 , z 1 ,
n m k }
There are no DFAs that accept these language
(we will prove this in a later class)
Courtesy Costas Busch - RPI 77