0% found this document useful (0 votes)
55 views83 pages

Definition and Description of Finite Automata: Lecture #1

The document provides an overview of finite automata (FA) and non-deterministic finite automata (NFA). It defines an FA as a 5-tuple (Q, Σ, δ, q0, F) where Q is a set of states, Σ is an input alphabet, δ is the transition function, q0 is the initial state, and F is the set of accepting states. It then gives examples of NFAs to recognize specific languages like {aa, abab} and explains how an NFA can have multiple transitions for a single input using the extended transition function δ*. The key differences between FA and NFA are that NFAs allow non-determinism and λ-transitions where

Uploaded by

Sweety Prasad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
55 views83 pages

Definition and Description of Finite Automata: Lecture #1

The document provides an overview of finite automata (FA) and non-deterministic finite automata (NFA). It defines an FA as a 5-tuple (Q, Σ, δ, q0, F) where Q is a set of states, Σ is an input alphabet, δ is the transition function, q0 is the initial state, and F is the set of accepting states. It then gives examples of NFAs to recognize specific languages like {aa, abab} and explains how an NFA can have multiple transitions for a single input using the extended transition function δ*. The key differences between FA and NFA are that NFAs allow non-determinism and λ-transitions where

Uploaded by

Sweety Prasad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 83

CSE322

Definition and description of finite Automata

Lecture #1
Definition

An automaton is defined as a system where energy,


materials and information are transformed, transmitted
and used for performing some functions without direct
participation of man.
Formal Definition
• Finite Automaton (FA)

M   Q, ,  , q0 , F 
Q : set of states
 : input alphabet
 : transition function
q0 : initial state
F : set of accepting states
Input alphabet

   a, b

a, b

q5
b a a, b
a b
q0 a q1 b q2 b q3 a q4
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

a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Accepting State F

Set of Accepting States


F   q4 
a, b

q5
a a, b
b a b
q0 a q1 b q2 b q3 a q4
Non-Deterministic
Finite Automata
Nondeterministic Finite Automaton

Alphabet = {a}

q1 a q2
a
q0
a
q3
Alphabet = {a}

Two choices q1 a q2
a
q0
a
q3
Alphabet = {a}

Two choices q1 a q2 No transition


a
q0
a
q3 No transition
First Choice

a a

q1 a q2
a
q0
a
q3
First Choice

a a

q1 a q2
a
q0
a
q3
First Choice

a a

q1 a q2
a
q0
a
q3
First Choice

a a
All input is consumed
q1 a q2 “accept”
a
q0
a
q3
Second Choice

a a

q1 a q2
a
q0
a
q3
Second Choice

a a

q1 a q2
a
q0
a
q3
Second Choice

a a

q1 a q2
a
q0
a
No transition:
q3
the automaton hangs
Second Choice

a a
Input cannot be consumed
q1 a q2
a
q0
a
q3 “reject”
An NFA accepts a string:
when there is a computation of the
NFA that accepts the string

There is a computation:
all the input is consumed and the automaton
is in an accepting state
Example

aa is accepted by the NFA:

“accept”
q1 a q2 q1 a q2
a a
q0
a
q0
a
q3 q3 “reject”
because this
computation
accepts aa
Rejection example

q1 a q2
a
q0
a
q3
First Choice

q1 a q2
a
q0
a
q3
First Choice

a
“reject”
q1 a q2
a
q0
a
q3
Second Choice

q1 a q2
a
q0
a
q3
Second Choice

q1 a q2
a
q0
a
q3
Second Choice

q1 a q2
a
q0
a
q3 “reject”
An NFA rejects a string:
when there is no computation of the
NFA that accepts the string.

For each computation:


• All the input is consumed and the
automaton is in a non final state

OR
• The input cannot be consumed
Example

a is rejected by the NFA:

“reject”
q1 a q2 q1 a q2
a a
q0 q0
a a
q3
“reject” q3

All possible computations lead to rejection


Rejection example

a a a

q1 a q2
a
q0
a
q3
First Choice

a a a

q1 a q2
a
q0
a
q3
First Choice

a a a

q1 a q2
a
q0 No transition:
a
the automaton hangs
q3
First Choice

a a a
Input cannot be consumed
q1 a q2 “reject”
a
q0
a
q3
Second Choice

a a a

q1 a q2
a
q0
a
q3
Second Choice

a a a

q1 a q2
a
q0
a
q3
Second Choice

a a a

q1 a q2
a
q0
a
No transition:
q3
the automaton hangs
Second Choice

a a a
Input cannot be consumed
q1 a q2
a
q0
a
q3 “reject”
aaa is rejected by the NFA:

“reject”
q1 a q2 q1 a q2
a a
q0
a
q0
a
q3 q3 “reject”

All possible computations lead to rejection


Language accepted: L  {aa}

q1 a q2
a
q0
a
q3
Lambda Transitions

q0 a q1  q2 a q3
a a

q0 a q1  q2 a q3
a a

q0 a q1  q2 a q3
(read head does not move)

a a

q0 a q1  q2 a q3
a a

q0 a q1  q2 a q3
all input is consumed

a a

“accept”

q0 a q1  q2 a q3

String aa is accepted
Rejection Example

a a a

q0 a q1  q2 a q3
a a a

q0 a q1  q2 a q3
(read head doesn’t move)

a a a

q0 a q1  q2 a q3
a a a

q0 a q1  q2 a q3

No transition:
the automaton hangs
Input cannot be consumed

a a a

“reject”

q0 a q1  q2 a q3

String aaa is rejected


Language accepted: L  {aa}

q0 a q1  q2 a q3
Another NFA Example

q0 a q1 b q2  q3


a b

q0 a q1 b q2  q3


a b

q0 a q1 b q2  q3


a b

q0 a q1 b q2  q3


a b

“accept”
q0 a q1 b q2  q3


Another String

a b a b

q0 a q1 b q2  q3


a b a b

q0 a q1 b q2  q3


a b a b

q0 a q1 b q2  q3


a b a b

q0 a q1 b q2  q3


a b a b

q0 a q1 b q2  q3


a b a b

q0 a q1 b q2  q3


a b a b

q0 a q1 b q2  q3


a b a b

“accept”
q0 a q1 b q2  q3


Language accepted

L   ab, abab, ababab, ...



  ab

q0 a q1 b q2  q3


Another NFA Example

0
q0 q1 0, 1 q2
1

Language accepted

L(M ) = { λ, 10, 1010, 101010, ...}


= { 10} *
0
q0 q1 0, 1 q2
1 (redundant
state)

Remarks:

•The  symbol never appears on the


input tape

•Simple automata:

M1 M2
q0 q0

L(M1 ) = {} L(M 2 ) = {λ}


•NFAs are interesting because we can
express languages easier than FAs

NFA M1 FA M2 a
q2
q0 a q1
a
q0 a q1

L( M1 ) = {a} L( M 2 ) = {a}
Formal Definition of NFAs
M   Q, ,  , q0 , F 

Q : Set of states, i.e.  q0 , q1, q2 


 : Input aplhabet, i.e.  a, b
: Transition function

q0 : Initial state

F : Accepting states
Transition Function 

  q0 , 1   q1

0
q0 q1 0, 1 q
2
1

 (q1,0)  {q0 , q2}

0
q0 q1 0, 1 q
2
1

 (q0 ,  )  {q0 , q2}

0
q0 q1 0, 1 q
2
1

 (q2 ,1)  

0
q0 q1 0, 1 q
2
1

Extended Transition Function *

 *  q0 , a    q1

q4 q5
a a
q0 a q1 b q2  q3

 *  q0 , aa    q4 , q5 

q4 q5
a a
q0 a q1 b q2  q3

 *  q0 , ab    q2 , q3 , q0 

q4 q5
a a
q0 a q1 b q2  q3

Formally
q j   *  qi , w : there is a walk from qi to q j
with label w

qi w qj

w   1 2  k
1 2 k
qi qj
The Language of an NFA
F   q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

 *  q0 , aa    q4 , q5 aa  L(M )
F
F   q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

 *  q0 , ab    q2 , q3 , q0  ab  L M 
F
F   q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

 *  q0 , abaa    q4 , q5 aaba  L(M )


F
F   q0 ,q5 
q4 q5
a a
q0 a q1 b q2  q3

 *  q0 , aba    q1 aba  L M 


F
q4 q5
a a
q0 a q1 b q2  q3

L M       ab * {aa}

You might also like