Sei sulla pagina 1di 57

Deterministic

Finite Automata

And Regular Languages

Fall 2006 Costas Busch - RPI 1


Deterministic Finite Automaton (DFA)

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

Fall 2006 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 2006 Costas Busch - RPI 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

Fall 2006 Costas Busch - RPI 4


head 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
Fall 2006 Costas Busch - RPI 5
Scanning 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 2006 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 2006 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 2006 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 2006 Costas Busch - RPI 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

Fall 2006 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 2006 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 2006 Costas Busch - RPI 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

Fall 2006 Costas Busch - RPI 13


Another Rejection Case

Tape is empty
( )

Input Finished
a, b

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

reject
Fall 2006 Costas Busch - RPI 14
Language Accepted: L  abba 

a, b

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

Fall 2006 Costas Busch - RPI 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

Fall 2006 Costas Busch - RPI 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
Fall 2006 Costas Busch - RPI 17
Empty Tape
( )

Input Finished a, b

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

accept
Fall 2006 Costas Busch - RPI 18
Another Example

a a, b

q0 b q1 a, b q2

Accept trap state


state
Fall 2006 Costas Busch - RPI 19
a a b
Input String
a a, b

q0 b q1 a, b q2

Fall 2006 Costas Busch - RPI 20


a a b

a a, b

q0 b q1 a, b q2

Fall 2006 Costas Busch - RPI 21


a a b

a a, b

q0 b q1 a, b q2

Fall 2006 Costas Busch - RPI 22


Input finished

a a b

a a, b
accept

q0 b q1 a, b q2

Fall 2006 Costas Busch - RPI 23


A rejection case

b a b
Input String
a a, b

q0 b q1 a, b q2

Fall 2006 Costas Busch - RPI 24


b a b

a a, b

q0 b q1 a, b q2

Fall 2006 Costas Busch - RPI 25


b a b

a a, b

q0 b q1 a, b q2

Fall 2006 Costas Busch - RPI 26


Input finished

b a b

a a, b

q0 b q1 a, b q2

reject

Fall 2006 Costas Busch - RPI 27


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

a a, b

q0 b q1 a, b q2

Fall 2006 Costas Busch - RPI 28


Another Example
Alphabet:   {1}
1

q0 q1
1
Language Accepted:

EVEN  {x : x   and x is even}


*

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


Fall 2006 Costas Busch - RPI 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


Fall 2006 Costas Busch - RPI 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

Fall 2006 Costas Busch - RPI 31


Input Alphabet 

  :the input alphabet never contains 

Example
  a, b a, b

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

Fall 2006 Costas Busch - RPI 32


Initial State q0

Example
a, b

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

Fall 2006 Costas Busch - RPI 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

Fall 2006 Costas Busch - RPI 34


Transition Function  :Q  Q

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

Describes the result of a transition


from state q with symbol x

Fall 2006 Costas Busch - RPI 35


Example:
 q0 , a   q1

a, b

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

Fall 2006 Costas Busch - RPI 36


 q0 , b   q5

a, b

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

Fall 2006 Costas Busch - RPI 37


 q2 , b   q3

a, b

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

Fall 2006 Costas Busch - RPI 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
Fall 2006 Costas Busch - RPI 39
Extended Transition Function

 :Q   Q
* *

 (q ,w )  q 
*

Describes the resulting state


after scanning string w from state q

Fall 2006 Costas Busch - RPI 40


Example:  q0 , ab   q2
*

a, b

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

a, b

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

Fall 2006 Costas Busch - RPI 42


 q1 , bba   q4
*

a, b

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

Fall 2006 Costas Busch - RPI 43


Special case:

for any state q

 q ,    q
*

Fall 2006 Costas Busch - RPI 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
Fall 2006 Costas Busch - RPI 45
Language Accepted by DFA

Language of DFA M:
it is denoted as L M  and contains
all the strings accepted by M

We say that a language L


is accepted (or recognized)
by DFA M if L M  L  
Fall 2006 Costas Busch - RPI 46
For a DFA M  Q, ,  , q0 , F 
Language accepted by M:

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

q0 w q q  F

Fall 2006 Costas Busch - RPI 47


Language rejected by M:


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

q0 w q q  F

Fall 2006 Costas Busch - RPI 48


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

q0 q0

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

Empty language All strings


Fall 2006 Costas Busch - RPI 49
  {a , b }

a, b

q0 a, b q0

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

q0 a q1 b q2

b a accept

q3 a, b

Fall 2006 Costas Busch - RPI 51


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

0,1
1 0
1

 0 0 00 1 001
0

Fall 2006 Costas Busch - RPI 52


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

1 0 0,1
1

 0 1
0 00 001

0
Fall 2006 Costas Busch - RPI 53

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

b a
q4

a, b
Fall 2006 Costas Busch - RPI 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

Fall 2006 Costas Busch - RPI 55


Example regular languages:

abba  , ab, abba


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

{ 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 automata that accept these


languages (see previous slides).
Fall 2006 Costas Busch - RPI 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}

There is no DFA that accepts these languages

(we will prove this in a later class)


Fall 2006 Costas Busch - RPI 57

Potrebbero piacerti anche