Fall 2006 Costas Busch - RPI 1
Deterministic Finite Automaton (DFA)
Input Tape
“Accept” or“Reject”
String
FiniteAutomaton
Output
Fall 2006 Costas Busch - RPI 2
Formal Definition Deterministic Finite Automaton (DFA)
FqQM ,,,, 0
Q
0q
F
: set of states
: input alphabet
: transition function
: initial state
: set of accepting states
Fall 2006 Costas Busch - RPI 3
Language Accepted: abbaL
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
Fall 2006 Costas Busch - RPI 4
Transition Graph
initialstate
accepting state
statetransition
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
Fall 2006 Costas Busch - RPI 5
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
For every state, there is a transitionfor every symbol in the alphabet
Fall 2006 Costas Busch - RPI 6
Set of States
Q
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba, 543210 ,,,,, qqqqqqQ
ba,
Example
Fall 2006 Costas Busch - RPI 7
Input Alphabet
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba, ba,
ba,
:the input alphabet never contains
Example
Fall 2006 Costas Busch - RPI 8
Initial State
0q
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q
Example
Fall 2006 Costas Busch - RPI 9
Set of Accepting States
QF
0q 1q 2q 3qa b b a
5q
a a bb
ba, 4qF
ba,
4q
Example
Fall 2006 Costas Busch - RPI 10
Transition Function
QQ :
q qx
qxq ),(
Describes the result of a transitionfrom state with symbolq x
Fall 2006 Costas Busch - RPI 11
2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q 1q
10 , qaq Example:
Fall 2006 Costas Busch - RPI 12
50 , qbq
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q
Fall 2006 Costas Busch - RPI 13
a b
0q
1q
2q
3q
4q
5q
1q 5q
5q 2q
5q 3q
4q 5q
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,5q5q5q5q
Transition Table for st
ate
ssymbols
Fall 2006 Costas Busch - RPI 14
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 15
Initial Configuration
1q 2q 3q 4qa b b a
5q
a a bb
ba,Input String
a b b a
ba,
0q
Initial state
Input Tape
head
Fall 2006 Costas Busch - RPI 16
Scanning the Input
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b b a
ba,
Fall 2006 Costas Busch - RPI 17
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b b a
ba,
Fall 2006 Costas Busch - RPI 18
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b b a
ba,
Fall 2006 Costas Busch - RPI 19
0q 1q 2q 3q 4qa b b a
accept
5q
a a bb
ba,
a b b a
ba,
Input finished
Fall 2006 Costas Busch - RPI 20
1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b a
ba,
0q
A Rejection Case
Input String
Fall 2006 Costas Busch - RPI 21
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b a
ba,
Fall 2006 Costas Busch - RPI 22
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
a b a
ba,
Fall 2006 Costas Busch - RPI 23
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
reject
a b a
ba,
Input finished
Fall 2006 Costas Busch - RPI 24
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q
)(
Another Rejection Case
Tape is empty
reject
Input Finished
Fall 2006 Costas Busch - RPI 25
Extended Transition Function QQ ** :
qwq ),(*
Describes the resulting state after scanning string from statew q
Fall 2006 Costas Busch - RPI 26
20* , qabq
3q 4qa b b a
5q
a a bb
ba,
ba,
0q 1q 2q
Example:
Fall 2006 Costas Busch - RPI 27
50* , qabbbaaq
1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
0q
Fall 2006 Costas Busch - RPI 28
41* , qbbaq
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
Fall 2006 Costas Busch - RPI 29
Another Example
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
abbaabL ,,
Acceptstate
Acceptstate
Acceptstate
Fall 2006 Costas Busch - RPI 30
)(
Empty Tape
0q 1q 2q 3q 4qa b b a
5q
a a bb
ba,
ba,
accept
Input Finished
Fall 2006 Costas Busch - RPI 31
Another Example
a
b ba,
ba,
0q 1q 2q
Accept state
trap state
Fall 2006 Costas Busch - RPI 32
a
b ba,
ba,
0q 1q 2q
a ba
Input String
Fall 2006 Costas Busch - RPI 33
a
b ba,
ba,
0q 1q 2q
a ba
Fall 2006 Costas Busch - RPI 34
a
b ba,
ba,
0q 1q 2q
a ba
Fall 2006 Costas Busch - RPI 35
a
b ba,
ba,
0q 1q 2q
a ba
accept
Input finished
Fall 2006 Costas Busch - RPI 36
a
b ba,
ba,
0q 1q 2q
ab b
A rejection case
Input String
Fall 2006 Costas Busch - RPI 37
a
b ba,
ba,
0q 1q 2q
ab b
Fall 2006 Costas Busch - RPI 38
a
b ba,
ba,
0q 1q 2q
ab b
Fall 2006 Costas Busch - RPI 39
a
b ba,
ba,
0q 1q 2q
ab b
reject
Input finished
Fall 2006 Costas Busch - RPI 40
Language Accepted: }0:{ nbaL n
a
b ba,
ba,
0q 1q 2q
Fall 2006 Costas Busch - RPI 41
Another Example
0q 1q
1
1
}1{Alphabet:
Language Accepted:
even} is and :{ * xxxEVEN
},111111,1111,11,{
Fall 2006 Costas Busch - RPI 42
More DFA Examples
0q
ba,
},{ ba
*)( ML
0q
ba,
}{)( MLEmpty language All strings
Fall 2006 Costas Busch - RPI 43
},{ ba
0q
ba,
0qba,
}{)( MLLanguage of the empty string
Fall 2006 Costas Busch - RPI 44
ML = { all strings with prefix }ab
a b
ba,
0q 1q 2q
ba,3q
ab
},{ ba
Fall 2006 Costas Busch - RPI 45
ML = { all binary strings containing substring }001
0 00 001
1
0
1
10
0 1,0
Fall 2006 Costas Busch - RPI 46
ML = { all binary strings without substring }001
0 00 001
1
0
1
10
0 1,0
Fall 2006 47
*,:)( bawawaML
a
b
ba,
a
b
ba
0q 2q 3q
4q