Review of * and Other Relevant Materials
Definition of * of NFA
For a state q and string w, *( q , w )
is the set of states that the NFA can reach when it reads the string w
starting at the state q. In general an NFA nondeterministically goes through
a number of states from the state q as it reads the symbols in the string w.
Thus for an NFA < Q , ,
q0 , , A > ,
the function
* :
Q
* -> 2Q
is defined recursively as follows:
Basis Clause: For any state q of Q, *(
q ,
) = { q }, where
denotes
the empty string.
Inducitve Clause: For any state q of Q, any string y
* and any symbol a
,
*( q , ya ) =
In the definition, the Basis Clause says that an NFA stays in state q when it reads
an empty string at state q
and the Inductive Clause says that the set of states NFA can reach after reading string ya
starting at state q is the set of states it can reach
by reading symbol a after reading string y starting at state q.
For more click here.
Conversion of NFA- to NFA
Let M1 = < Q1 , ,
q1,0 , 1 , A1 >
be an NFA- that recognizes a language L.
Then the NFA M2 = < Q2, ,
q2,0 , 2 , A2 >
that satisfies the following conditions recognizes L:
Q2 = Q1,
q2,0 = q1,0,
2( q, a ) =
1*( q , a )
= (
)
A2 = A1 { q1,0 }
if ( { q1,0 } )
A1
Thus to obtain an NFA M2 = < Q2,
, q2,0 ,
2 , A2 > which accepts the same
language as the given
NFA- M1 = < Q1 ,
, q1,0 ,
1 , A1 > does,
first copy the states of Q1 into
Q2.
Then for each state q of Q2 and each symbol a
of find
2( q , a ) as follows:
Find ( {q} ), that is all the states that can be
reached from q by traversing arcs.
Then collect all the states that can be reached from each state of
( {q} ) by traversing one arc labeled with the symbol a.
The closure of the set of those states is
2( q , a ) .
The set of accepting states A2 is the same as A1 if
no accepting states can be reached from the initial state q1,0
through arcs in M1 .
Otherwise, that is if an accepting state can be reached from the initial state
q1,0
through arcs in M1 ,
then all the accepting states of M1 plus state q1,0
are the accepting states of M2 .
For more click here.
Definition of * of
NFA-
Let < Q , ,
q0 , , A > be an
NFA-.
* is defined recursivelyas follows.
Basis Clause: For any state q of Q,
*( q ,
) = ( { q } ) .
Inductive Clause: For any state q, a string y over 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 ) .
For more click here.
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.
-closure for a state is
the set of states reachable from the state without reading any symbol.
For more click here.