You are on page 1of 57

Deterministic

Finite Automata

And Regular Languages

Costas Busch - LSU 1


Deterministic Finite Automaton (DFA)

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

Costas Busch - LSU 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
Costas Busch - LSU 3
Alphabet   {a , b }
a, b

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

For every state, there is a transition


for every symbol in the alphabet

Costas Busch - LSU 4


Initial Configuration
Input Tape
a b b a
Input String
a, b

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

Initial state
Costas Busch - LSU 5
Scanning the Input

a b b a

head a, b

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

Costas Busch - LSU 6


a b b a

a, b

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

Costas Busch - LSU 7


a b b a

a, b

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

Costas Busch - LSU 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

Last state determines the outcome


Costas Busch - LSU 9
A Rejection Case

a b a
Input String
a, b

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

Costas Busch - LSU 10


a b a

a, b

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

Costas Busch - LSU 11


a b a

a, b

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

Costas Busch - LSU 12


Input finished
a b a

a, b

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

Last state determines the outcome


Costas Busch - LSU 13
Another Rejection Case
Tape is empty

Input Finished (no symbol read)
a, b

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

reject
Costas Busch - LSU 14
This automaton accepts only one string

Language Accepted: L  abba 

a, b

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

Costas Busch - LSU 15


To accept a string:
all the input string is scanned
and the last state is accepting

To reject a string:
all the input string is scanned
and the last state is non-accepting

Costas Busch - LSU 16


Another Example

L    , ab, abba
a, b

q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4
Accept Accept Accept
state state state
Costas Busch - LSU 17
Empty Tape

Input Finished
a, b

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

accept
Costas Busch - LSU 18
Another Example

a a,b

q0 b q1 a, b q2

Accept trap state


state
Costas Busch - LSU 19
a a b
Input String

a a,b

q0 b q1 a, b q2

Costas Busch - LSU 20


a a b

a a,b

q0 b q1 a, b q2

Costas Busch - LSU 21


a a b

a a,b

q0 b q1 a, b q2

Costas Busch - LSU 22


Input finished

a a b

a a,b
accept

q0 b q1 a, b q2

Costas Busch - LSU 23


A rejection case

b a b
Input String

a a,b

q0 b q1 a, b q2

Costas Busch - LSU 24


b a b

a a,b

q0 b q1 a, b q2

Costas Busch - LSU 25


b a b

a a,b

q0 b q1 a, b q2

Costas Busch - LSU 26


Input finished
b a b

a a,b

q0 b q1 a, b q2

reject

Costas Busch - LSU 27


Language Accepted: L  {a b : n  0 }
n

a a,b

q0 b q1 a, b q2

Costas Busch - LSU 28


Another Example
Alphabet:   {1}
1

q0 q1
1
Language Accepted:
EVEN  {x : x   and x is even}
*

 { , 11, 1111 , 111111 , }


Costas Busch - LSU 29
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
Costas Busch - LSU 30
Set of States Q
Example

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

Costas Busch - LSU 31


Input Alphabet 

  :the input alphabet never contains 


empty string

Example
   a, b a, b

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

Costas Busch - LSU 32


Initial State q0

Example
a, b

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

Costas Busch - LSU 33


Set of Accepting States F  Q

Example
F   q4  a, b

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

Costas Busch - LSU 34


Transition Function  :Q  Q

 (q , x )  q 
x
q q

Describes the result of a transition


from state q with symbol x

Costas Busch - LSU 35


Example:
  q0 , a   q1

a, b

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

Costas Busch - LSU 36


  q0 , b   q5

a, b

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

Costas Busch - LSU 37


  q2 , b   q3

a, b

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

Costas Busch - LSU 38


Transition Table for 
symbols
 a b
q0 q1 q5
q1 q5 q2
states

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
Costas Busch - LSU 39
Extended Transition Function
 :Q    Q
* *

 (q ,w )  q 
*

Describes the resulting state


after scanning string w from state q

Costas Busch - LSU 40


Example:   q0 , ab   q2
*

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Costas Busch - LSU 41
  q0 , abbbaa   q5
*

a, b

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

Costas Busch - LSU 42


  q1 , bba   q4
*

a, b

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

Costas Busch - LSU 43


Special case:

for any state q

  q,    q
*

Costas Busch - LSU 44


In general:   q ,w   q 
*

implies that there is a walk of transitions

w   1 2  k
1 2 k
q q
states may be repeated

q w q
Costas Busch - LSU 45
Language Accepted by DFA

Language accepted by DFA M:


it is denoted as L  M  and contains
all the strings accepted by M

We also say that M recognizes L  M 

Costas Busch - LSU 46


For a DFA
M   Q, ,  , q0 , F 
Language accepted by :

M

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

q0 w q q  F

Costas Busch - LSU 47


Language rejected by M:


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

q0 w q q  F

Costas Busch - LSU 48


More DFA Examples
  {a , b }
a, b
a, b

q0 q0

L (M )  { } L (M )   *

Empty language All strings


Costas Busch - LSU 49
  {a , b }

a, b

q0 a, b q1

L( M )  { }
Language of the empty string
Costas Busch - LSU 50
  {a , b }
L M  = { all strings with prefix ab }
a, b

q0 a q1 b q2

b a accept

q3 a, b

Costas Busch - LSU 51


L  M  = { all binary strings containing
substring 001 }

0,1
1 0
1

 0 0 00 1 001
0

Costas Busch - LSU 52


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

1 0
0,1
1
0 1
 0 00 001

0
Costas Busch - LSU 53

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

b a
q1

a, b
Costas Busch - LSU 54
Regular Languages
Definition:
A language L 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

Costas Busch - LSU 55


Example regular languages:

 abba   , ab, abba


{a b : n  0}
n
awa : w   a, b 
*

{ all strings in {a,b}* with prefix ab }


{ all binary strings without substring 001}
{x : x  {1} and x is even}
*

{ } { } {a, b}*

There exist DFAs that accept these


languages (see previous slides).
Costas Busch - LSU 56
There exist languages which are not Regular:

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

ADDITION  {x  y  z : x  1 , y  1 , z  1 ,
n m k

nm k}

There are no DFAs that accept these languages

(we will prove this later)


Costas Busch - LSU 57

You might also like