Professional Documents
Culture Documents
06 Nondeterminism TG DFA
06 Nondeterminism TG DFA
Lecture 9
Faryal Shamsi
Lecturer Computer Science
input memory
Finite
Automaton
output memory
6
Finite Automaton (FA)
• Given a sequence of inputs (input string ), start in the start state and
follow the transition from each symbol in turn.
a, b
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
13
Set of States
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
Initial State q0
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Set of Final States
a, b
F = {q4}
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Set of Final States
F = {q3,q4}
Transition Function
:Q Q
(q , x ) q
q x q
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
q0 , b q5
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
q2 , b q3
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Transition Table
a b
q0 q1 q5
q1 q5 q2 a, b
q2 q5 q3
q3 q4 q5 q5
q4 q5 q5 a, b
b a a b
q5 q5 q5 q0 a q1 b q2 b q3 a q4
Language of an Automaton
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
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
a b b a
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a b b a
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a b b a
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Input finished
a b b a
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Output: “accept”
Rejection
a b a
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a b a
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a b a
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
a b a
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Input finished
a b a
a, b
Output:
q5 “reject”
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Another Rejection
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Input
Input Finished (no symbol read)
a, b
Output: q5
“reject” a a, b
b a b
q0 a q1 b q2 b q3 a q4
Another Example
a a b
a a, b
q0 b q1 a, b q2
a a b
a a, b
q0 b q1 a, b q2
a a b
a a, b
q0 b q1 a, b q2
a a b
a a, b
q0 b q1 a, b q2
Input finished
a a b
a a, b
Output: “accept”
q0 b q1 a, b q2
Rejection
b a b
a a, b
q0 b q1 a, b q2
b a b
a a, b
q0 b q1 a, b q2
b a b
a a, b
q0 b q1 a, b q2
b a b
a a, b
q0 b q1 a, b q2
Input finished
b a b
a a, b
q0 b q1 a, b q2
Output: “reject”
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s s s
o o o
Love 15-all 30-all deuce
o s
* o
Love-15
s
o
15-30
s
s
30-40
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
Start
*
15-Love
s
o s
40-15 o
s
o
30-15 40-30
s s s
o o o
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s
o * s
o
s
o
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
40-15
Start 15-Love
s
o *
30-15
s
o
40-30 s
o
s s s
o o o
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s
Love
o
15-all
s
o *
30-all
s
o
deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
40-15
Start 15-Love
s
o
30-15
s
o
40-30
* s
o
s s s
o o o
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s
o
s
o
s
o *
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
s
40-Love s *
s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s s s
o o o
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s
Love
o
15-all
s
o
30-all
s
o *
deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
s
40-Love s *
s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s s s
o o o
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s
Love
o
15-all
s
o
30-all
s
o *
deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs
Server
s Wins
s
40-Love s *
s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s s s
o o o
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Example: Processing a String
sosososososs *
Server
s Wins
40-Love s
s s Ad-in
30-Love o s
s 40-15 o
o s o
Start 15-Love 30-15 40-30 s
s s s
o o o
Love 15-all 30-all deuce
o s
s s
o o
15-30 30-40
Love-15 s
s o
o o s
Love-30 15-40
s o
o Ad-out
Love-40 o
o
o Opp’nt
Wins
Variation in FAs
• DFA
• Deterministic Finite Automata
• NFA
• Non-deterministic Finite Automata
Formal Definition of DFA
Formal Definition of NFA
Difference between DFA and NFA
• Every state of a DFA always has exactly one exiting transition arrow for
each symbol in the alphabet, an NFA violates this rule.
A Non Deterministic Finite Automata
Transition Graph
Transition Graph
• The edges may be labeled with any substring (both null-string and
multiple length string) is allowed
An Example
of a
TG
or
Transition Graph
Extended Transition Function
:Q Q
* *
(q ,w ) q
*
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
* q0 , abba q4
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
* q0 , abbbaa q5
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Observation: There is a walk from q to q
with label w
* q, w q
q w q
w 1 2 k
1 2 k
q q
Courtesy Costas Busch - RPI
Special case:
q , q
*