You are on page 1of 64

Deterministic

Finite Automata
Simple Automaton

Introduction to Automata Theory, Languages, and Computation, Second Edition 2


Complex Automaton

Introduction to Automata Theory, Languages, and Computation, Second Edition 3


Complex Automaton (cont..)

Introduction to Automata Theory, Languages, and Computation, Second Edition 4


Complex Automaton (cont..)

Introduction to Automata Theory, Languages, and Computation, Second Edition 5


Complex Automaton (cont..)

Introduction to Automata Theory, Languages, and Computation, Second Edition 6


Finite Accepter

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

Courtesy Costas Busch - RPI 7


Transition Graph
abba -Finite Accepter a, b

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

initial final
state state
transition
state “accept”

Courtesy Costas Busch - RPI 8


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

Courtesy Costas Busch - RPI 9


Initial Configuration
Input String
a b b a

a, b

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

Courtesy Costas Busch - RPI 10


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

Courtesy Costas Busch - RPI 11


a b b a

a, b

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

Courtesy Costas Busch - RPI 12


a b b a

a, b

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

Courtesy Costas Busch - RPI 13


a b b a

a, b

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

Courtesy Costas Busch - RPI 14


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”
Courtesy Costas Busch - RPI 15
Rejection

a b a

a, b

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

Courtesy Costas Busch - RPI 16


a b a

a, b

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

Courtesy Costas Busch - RPI 17


a b a

a, b

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

Courtesy Costas Busch - RPI 18


a b a

a, b

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

Courtesy Costas Busch - RPI 19


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

Courtesy Costas Busch - RPI 20


Another Rejection

a, b

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

Courtesy Costas Busch - RPI 21


Input
λ
Input Finished (no symbol read)
a, b

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

Output:
“reject” Courtesy Costas Busch - RPI 22
Another Example

a a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 23


a a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 24


a a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 25


a a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 26


Input finished

a a b

a a, b
Output: “accept”

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 27


Rejection

b a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 28


b a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 29


b a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 30


b a b

a a, b

q0 b q1 a, b q2

Courtesy Costas Busch - RPI 31


Input finished

b a b

a a, b

q0 b q1 a, b q2

Output: “reject”

Courtesy Costas Busch - RPI 32


Formal Definition
Deterministic Finite Automaton (DFA)

M = (Q, Σ, δ , q0 , F )
Q : finite set of states
Σ : finite set of input alphabet
δ : transition function
q0 : initial state q0 ∈ Q

F : set of final states F ⊆ Q


Courtesy Costas Busch - RPI 33
Input Alphabet Σ

λ ∉Σ :the input alphabet never contains λ


Σ = {a, b}
a, b

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

Courtesy Costas Busch - RPI 34


Set of States Q
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

Courtesy Costas Busch - RPI 35


Initial State q0

a, b

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

Courtesy Costas Busch - RPI 36


Set of Final States F

F = {q4 } F ⊆Q

a, b

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

Courtesy Costas Busch - RPI 37


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

qfinal ∈ F

To reject a string:
all the input string is scanned
and the last state (qlast) is non-accepting
qlast ∉ F qlast ∈ (Q − F )
Courtesy Costas Busch - RPI 38
Transition Function δ :Q×Σ → Q

δ (q , x ) = q ′

q x q′

Describes the result of a transition


from state q with symbol x

Courtesy Costas Busch - RPI 39


δ (q0 , a ) = q1

a, b

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

Courtesy Costas Busch - RPI 40


δ (q0 , b ) = q5

a, b

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

Courtesy Costas Busch - RPI 41


δ (q2 , b ) = q3

a, b

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

Courtesy Costas Busch - RPI 42


Transition Function δ
δ a b
q0 q1 q5
q1 q5 q2
q2 q5 q3
q3 q4 q5 a, b
q4 q5 q5
q5 q5 q5 q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 43
Extended Transition Function
* *
δ :Q × Σ → Q

*
δ (q ,w ) = q ′

Describes the resulting state


after scanning string w from state q

Courtesy Costas Busch - RPI 44


δ * (q0 , ab ) = q2

a, b

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

Courtesy Costas Busch - RPI 45


δ * (q0 , abba ) = q4

a, b

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

Courtesy Costas Busch - RPI 46


δ * (q0 , abbbaa ) = q5

a, b

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

Courtesy Costas Busch - RPI 47


Special case:

for any state q

δ (q , λ ) = q
*

Courtesy Costas Busch - RPI 48


Observation: There is a walk from q to q′
with label w

δ * ( q , w ) = q′

q w q′

states may be repeated

w = σ 1σ 2 Lσ k
σ1 σ2 σk
q q′

Courtesy Costas Busch - RPI 49


Example: There is a walk from q0 to q5
with label abbbaa

δ * (q0 , abbbaa ) = q5
a, b

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

Courtesy Costas Busch - RPI 50


Inductive Definition
Basis δ * (q , λ ) = q
Induction δ * (q, wσ ) = δ (δ * (q, w),σ )

q w q1 σ q′

δ * ( q , wσ ) = q′
δ * (q, wσ ) = δ (q1,σ )
δ (q1,σ ) = q′
δ * (q, wσ ) = δ (δ * (q, w),σ )
δ * (q, w) = q1

Courtesy Costas Busch - RPI 51


δ a b δ * (q0 , ab ) =
q0 q1 q5 δ (δ * (q0 , a ), b ) =
q1 q5 q2 δ (δ (δ * (q0 , λ ), a ), b ) =
q2 q5 q3 δ (δ (q0 , a ), b ) =
q3 q4 q5 δ (q1 , b ) =
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 52
δ a b δ * (q0 , ab ) =
q0 q1 q5 δ (δ * (q0 , a ), b ) =
q1 q5 q2 δ * (q , λ ) = q δ (δ (δ * (q0 , λ ), a ), b ) =
q2 q5 q3 δ (δ (q0 , a ), b ) =
q3 q4 q5 δ (q1 , b ) =
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a ,b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 53
δ a b δ * (q0 , ab ) =
q0 q1 q5 δ (δ * (q0 , a ), b ) =
q1 q5 q2 δ (δ (δ * (q0 , λ ), a ), b ) =
q2 q5 q3 δ (δ (q0 , a ), b ) =
q3 q4 q5 δ (q1 , b ) =
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 54
δ a b δ * (q0 , ab ) =
q0 q1 q5 δ (δ * (q0 , a ), b ) =
q1 q5 q2 δ (δ (δ * (q0 , λ ), a ), b ) =
q2 q5 q3 δ (δ (q0 , a ), b ) =
q3 q4 q5 δ (q1 , b ) =
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 55
δ a b δ * (q0 , ab ) =
q0 q1 q5 δ (δ * (q0 , a ), b ) =
q1 q5 q2 δ (δ (δ * (q0 , λ ), a ), b ) =
q2 q5 q3 δ (δ (q0 , a ), b ) =
q3 q4 q5 δ (q1 , b ) =
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 56
δ a b δ * (q0 , ab ) =
q0 q1 q5 δ (δ * (q0 , a ), b ) =
q1 q5 q2 δ (δ (δ * (q0 , λ ), a ), b ) =
q2 q5 q3 δ (δ (q0 , a ), b ) =
q3 q4 q5 δ (q1 , b ) =
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 57
δ a b δ * (q0 , ab ) =
q0 q1 q5 δ (δ * (q0 , a ), b ) =
q1 q5 q2 δ (δ (δ * (q0 , λ ), a ), b ) =
q2 q5 q3 δ (δ (q0 , a ), b ) =
q3 q4 q5 δ (q1 , b ) =
q4 q5 q5 q2
q5 q5 q5 a, b
q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
Courtesy Costas Busch - RPI 58
Languages Accepted by DFAs
Take DFA M

Definition:
The language L( M ) contains
all input strings accepted by M

L(M ) = { strings that drive M to a final state}

Courtesy Costas Busch - RPI 59


Example # 1
L(M ) = {abba} M

a, b

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

Courtesy Costas Busch - RPI 60


Activity
Time
L(M ) = {λ , abba}
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
Make it to accept two strings L = {λ , abba}
Courtesy Costas Busch - RPI 62
Example # 2
Alphabet: Σ = {1}
1

q0 q1
1
Language Accepted:
*
EVEN = {x : x ∈ Σ and | x | is even}
= { λ, 11, 1111, 111111, K}
Courtesy Costas Busch - RPI 63
Example # 3
L(M ) = {λ , ab, abba} M

a, b

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

Courtesy Costas Busch - RPI 64

You might also like