Finite Automata
Language Accepted by NFA-
Subjects to be Learned
- -closure
- * for NFA-
- Language accepted by NFA-
- Properties of *
Contents
To formally define *
for NFA- , we start with the concept
of -closure for a state which is
the set of states reachable from the state without reading any symbol.
Using that concept we define *
and then strings and languqges accepted by NFA-.
Definition of -closure
Let < Q , ,
q0 , , A > be
an NFA- .
Let us denote the -closure of a set S of states of Q
by ( S ). Then ( S )
is defined recursively as follows:
Basis Clause: S
( S )
Inductive Clause: For any state q of Q, if q
( S ) , then ( q , )
( S ) .
Extremal Clause: Nothing is in ( S ) unless it is obtained by the above two clauses.
For the NFA- of the above figure,
( { 2 } ) is obtained as follows:
First { 2 }
( { 2 } ) ,
that is, 2
( { 2 } ) .
Then since 2
( { 2 } ) , by the Inductive Clause,
( 2 , )
( { 2 } ) .
Since ( 2 , ) = { 3 , 4 }, we now have { 2 , 3 , 4 }
( { 2 } ) .
Since 3 and 4 have been added to ( { 2 } ) ,
( 3 , ) = { 5 }
and ( 4 , ) =
must be included in
( { 2 } ) .
Thus now { 2 , 3 , 4 , 5 }
( { 2 } ) .
Though 5 has become a memeber of the closure,
since ( 5 ,
) is empty, no new members are added to
( { 2 } ) .
Since ( q ,
) has been examined for all the states currently in
( { 2 } ) and no more elements are added to it,
this process of generating the closure terminates
and
( { 2 } ) = { 2 , 3 , 4 , 5 } is obtained.
As we can see from the example, ( S )
is the set of states that can be reached from the states of S by traversing
any number of arcs. That is, it is the set of states
that can be reached from the states of S without reading any symbols
in .
Now with this -closure, we can define
* recursively as follows:
As in the cases of DFA and NFA, *
gives the result of applying the transition function
repeatedly as dictated by the given string.
Definition of *
* is going to be defined recursively.
Let < Q , ,
q0 , , A > be an
NFA-.
Basis Clause: For any state q of Q,
*( q ,
) = ( { q } ) .
Inductive Clause: For any state q, a string y in * and a symbol a in ,
*( q , ya ) =
( ) .
What the Inductive Clause means is that
*( q , ya ) is obtained by first
finding the states that can be reached from q by reading y
( *( q , y ) ), then
from each of those states p by reading a
(i.e. by finding ( p , a ) ), and then by reading
's
( i.e. by taking the
closure of the
( p , a )'s ) .
Example : For the NFA- of the following figure, *( 0 , ab ) can be
obtained as below:
First let us compute
*( 0 , a ) .
For that we need ( { 0 } ).
Since it is the set of states reached by traversing the arcs from state 0, ( { 0 } ) = { 0 , 3 , 4 } .
Next from each of the states in ( { 0 } ) we read symbol
a and move to another state
(i.e. apply ). They are
( 0 , a ) = { 1 } ,
( 3 , a ) =
( 4 , a ) = { 5 }.
Hence = { 1 , 5 } for q = 0 .
We then traverse the arcs from
{ 1 , 5 } to get to the states in
*( 0 , a ) .
Since
( { 1 } ) = { 1 , 2 , 3 } and
( { 5 } ) = { 5 } ,
*( 0 , a ) = { 1 , 2 , 3 , 5 } .
Then to find *( 0 , ab )
read b from each of the states in *( 0 , a ) and then take the
arcs from there.
Now ( 1 , b ) , ( 3 , b ) and ( 5 , b ) are empty sets, and
( 2 , b ) = { 4 } .
Thus
Since ( { 4 } ) = { 3 , 4 } ,
*( 0 , ab ) = { 3 , 4 } .
A string x is accepted by an NFA-
< Q , ,
q0 , , A >
if and only if *( q0 , x ) contains at least one accepting state.
The language
accepted by an NFA-
< Q , ,
q0 , , A >
is the set of strings accepted by the NFA- .
For example the NFA- of the figure given above accepts the language { , a ,
ab } .
Test Your Understanding of * of NFA- and its
Properties
Indicate which of the following statements are correct and which are not.
Click Yes or No , then Submit.
For the following NFA- answer the questions given below.
The following notations are used in the questions:
: \delta
* : \delta^*
: \Lambda
Next -- Equivalence of FAs
Back to Study Schedule
Back to Table of Contents