02 Dfa
02 Dfa
02 Dfa
Finite Automata
Input Tape
String
Output
“Accept”
Finite
or
Automaton
“Reject”
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
Alphabet Σ = {a , b }
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Initial state
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
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
accept
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
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
reject
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
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
Language Accepted: L = {abba }
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
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
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
Empty Tape
(λ )
Input Finished a, b
q5
b a a a, b
b
q0 a q1 b q2 b q3 a q4
accept
Another Example
a a, b
q0 b q1 a, b q2
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
accept
q0 b q1 a, b q2
A rejection case
b a b
Input String
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
reject
Language Accepted: L = {a b : n ≥ 0 }
n
a a, b
q0 b q1 a, b q2
Another Example
Alphabet: Σ = {1}
1
q0 q1
1
Language Accepted:
EVEN = {x : x ∈ Σ and x is even}
*
M = ( Q, Σ, δ , q0 , F )
Q : set of states
Σ : input alphabet λ ∉Σ
δ : transition function
q0 : initial state
F : set of accepting states
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
Input Alphabet Σ
Example
Σ = { a, b} a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Initial State q0
Example
a, b
q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
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
Transition Function δ :Q×Σ → Q
δ (q , x ) = q ′
x
q 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 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
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 , abbbaa ) = q5
*
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
δ ( q1 , bba ) = q4
*
a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Special case:
δ (q , λ ) = q
*
In general: δ ( q ,w ) = q ′
*
w = σ 1σ 2 σ k
σ1 σ2 σk
q q′
states may be repeated
q w q′
Language Accepted by DFA
Language of DFA M:
it is denoted as L ( M ) and contains
all the strings accepted by M
q0 w q′ q′ ∈ F
Language rejected by M:
L ( M ) = {w ∈ Σ : δ ( q0 ,w ) ∉ F }
* *
q0 w q′ q′ ∉ F
More DFA Examples
Σ = {a , b }
a, b
a, b
q0 q0
L (M ) = { } L (M ) = Σ *
a, b
q0 a, b q0
L (M ) = { λ }
Language of the empty string
Σ = {a , b }
L( M ) = { all strings with prefix ab }
a, b
q0 a q1 b q2
b a accept
q3 a, b
L ( M ) = { all binary strings containing
substring 001 }
0,1
1 0
1
λ 0 0 00 1 001
0
L ( M ) = { all binary strings without
substring 001 }
1 0 0,1
1
λ 0 1
0 00 001
0
{
L(M ) = awa : w ∈ {a , b }
*
} a
b
b
q0 a q2 q3
b a
q4
a, b
Regular Languages
Definition:
A language L is regular if there is
a DFA M that accepts it ( L(M ) = L )
{ } { λ } {a , b } *
n n
L= {a b : n ≥ 0}
ADDITION = {x + y = z : x = 1 , y = 1 , z = 1 ,
n m k
n+m =k}