Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 56

Deterministic

Finite Automata

And Regular Languages

Fall 2005 Costas Busch - RPI 1


Deterministic Finite Automaton (DFA)

Input
String
Output
“Accept”
Finite
or
Automaton
“Reject”

Fall 2005 Costas Busch - RPI 2


Transition Graph
a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

initial accepting
state state
transition
state
Fall 2005 Costas Busch - RPI 3
Initial Configuration
Input String
a b b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 4


Reading the Input

a b b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 5


a b b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 6


a b b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 7


a b b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 8


Input finished

a b b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

accept
Fall 2005 Costas Busch - RPI 9
Rejection

a b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 10


a b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 11


a b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 12


a b a

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 13


Input finished

a b a

a, b

reject
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 14


Another Rejection

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 15


a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

reject
Fall 2005 Costas Busch - RPI 16
Another Example

a a b

a a,b

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 17


a a b

a a,b

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 18


a a b

a a,b

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 19


a a b

a a,b

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 20


Input finished

a a b

a a,b
accept

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 21


Rejection Example

b a b

a a,b

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 22


b a b

a a,b

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 23


b a b

a a,b

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 24


b a b

a a,b

q0 b q1 a, b q2

Fall 2005 Costas Busch - RPI 25


Input finished

b a b

a a,b

q0 b q1 a, b q2

reject

Fall 2005 Costas Busch - RPI 26


Language Accepted by DFA
DFA M

Definition:
The language L M  contains
all input strings accepted by M

L M  = { strings that bring M


to an accepting state}

Fall 2005 Costas Busch - RPI 27


Example
L M    abba M

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
accept

Fall 2005 Costas Busch - RPI 28


Example
L M     , ab, abba M

a, b

q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4
accept accept accept

Fall 2005 Costas Busch - RPI 29


Example

L M   {a b : n  0}
n

a a,b

q0 b q1 a, b q2

accept trap state

Fall 2005 Costas Busch - RPI 30


Formal Definition
Deterministic Finite Automaton (DFA)

M   Q, ,  , q0 , F 
Q : set of states
 : input alphabet
 : transition function
q0 : initial state
F : set of accepting states
Fall 2005 Costas Busch - RPI 31
Input Alphabet 

   a, b

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 32


Set of States Q
Q   q0 , q1, q2 , q3 , q4 , q5 

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 33


Initial State q0

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 34


Set of Accepting States F

F   q4 

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 35


Transition Function 

 :Q  Q

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 36


  q0 , a   q1

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 37


  q0 , b   q5

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 38


  q2 , b   q3

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 39


Transition Function 
 a b
q0 q1 q5 For every state and
q1 q5 q2 Symbol, there is a transition
q2 q5 q3
q3 q4 q5 a, b
q4 q5 q5
q5 q5 q5 q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 40


Extended Transition Function  *

 * : Q  *  Q

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 41


 *  q0 , ab   q2

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 42


 *  q0 , abba   q4

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 43


 *  q0 , abbbaa   q5

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 44


Observation: if there is a walk from q to q
with label w then

 *  q , w   q

q w q

w   1 2  k
1 2 k
q q

Fall 2005 Costas Busch - RPI 45


Example: There is a walk from q0 to q5
with label abbbaa

 *  q0 , abbbaa   q5
a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4

Fall 2005 Costas Busch - RPI 46


Recursive Definition
 *  q,    q
 *  q, w    ( * (q, w), )

q w q1  q

 *  q , w    q
 *  q, w    (q1, )
 (q1, )  q
 *  q, w    ( * (q, w), )
 *  q, w  q1

Fall 2005 Costas Busch - RPI 47


 *  q0 , ab  
   * (q0 , a ), b  
     *  q0 ,  , a , b  
    q0 , a , b  
  q1 , b  
q2 a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Fall 2005 Costas Busch - RPI 48
Language Accepted by DFA
For a DFA M   Q, ,  , q0 , F 

Language accepted by M :
L M    w  * :  *  q0 , w  F 

q0 w q q  F

Fall 2005 Costas Busch - RPI 49


Observation
Language rejected by M :

L M    w  * :  *  q0 , w  F 

q0 w q q  F

Fall 2005 Costas Busch - RPI 50


Example
L M  = { all strings with prefix ab }
a, b

q0 a q1 b q2

b a accept

q3 a, b

Fall 2005 Costas Busch - RPI 51


Example
L  M  = { all strings without
substring 001 }

1 0 0,1
1

 0 1
0 00 001

0
Fall 2005 Costas Busch - RPI 52
Example

L( M )   awa : w   a, b *
a
b
b
q0 a q2 q3

b a
q4

a, b
Fall 2005 Costas Busch - RPI 53
Regular Languages
Definition:
A language L is regular if there is
DFA M such that L  L M 

Observation:
All languages accepted by all DFAs
form the family of regular languages

Fall 2005 Costas Busch - RPI 54


Examples of regular languages:

 abba   , ab, abba


 awa : w   a, b * {a nb : n  0}
{ all strings with prefix ab }
{ all strings without substring 001 }

There exist automata that accept these


languages (see previous slides).
Fall 2005 Costas Busch - RPI 55
There exist languages that are not Regular:

n n
Example: L {a b : n  0}

There is no DFA that accepts such a language

(we will prove this later in the class)

Fall 2005 Costas Busch - RPI 56

You might also like