Finite Automata

Language Accepted by NFA-



Subjects to be Learned

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