 
 
 
 
 
   
NON-DETERMINISTIC FINITE AUTOMATA. A non-deterministic finite automaton (NFA) consists of five things:
 ,
,
 S of distinguished states, called       initial states,
 S of distinguished states, called       initial states,
 S of distinguished states, called       accepting states,
 S of distinguished states, called       accepting states,
 from 
S×
 from 
S× to 2S, thus every state-symbol couple 
      is mapped by
      to 2S, thus every state-symbol couple 
      is mapped by  to set of states
      (that is a subset of S).
 to set of states
      (that is a subset of S).
 
  can label two or more transitions 
      out of one state.
 can label two or more transitions 
      out of one state.
LANGUAGE RECOGNIZED BY A NFA.  A word w is accepted by a NFA if after reading w 
the NFA is in at least one accepting state.
Figure 5 shows a NFA and a DFA 
recognizing the same language: the language over
 = {a, b} consisting of the words
which end with b.
 = {a, b} consisting of the words
which end with b.
FROM A NFA TO A DFA ACCEPTING THE SAME LANGUAGE.
 = (
 = ( , S, I, F,
, S, I, F, ) be a NFA
accepting the language L.
Then there exists a DFA
) be a NFA
accepting the language L.
Then there exists a DFA 
 accepting L too.
 accepting L too.
To construct such a DFA 
 from
 
from  one proceeds as follows.
 one proceeds as follows.
 of states of
 of states of 
 is a subset of 2S. Hence each state of
      is a subset of 2S. Hence each state of 
 is a subset of S.
      The set
      is a subset of S.
      The set 
 is computed by 
      Algorithm 1 below.
 is computed by 
      Algorithm 1 below.
 of
 of 
 is the set  I of the initial states of
 
      is the set  I of the initial states of 
 .
.
 of the accepting states of
 of the accepting states of 
 is the set of the states
      is the set of the states 
 of
 of 
 such that
 
      such that 
 
  F
 F  
  .
.
 of
 of 
 together with
      together with 
 is determined by 
      Algorithm 1, 
      called the SUBSET ALGORITHM.
 is determined by 
      Algorithm 1, 
      called the SUBSET ALGORITHM.
 ];
];
 := [ ];
 := [ ]; 
 [ ] repeat
 [ ] repeat 
 
  repeat
 repeat 
 (A, x) := 
{s' | (
(A, x) := 
{s' | ( s
s  A) (s
 A) (s s')};
s')}; 
 (A, x)
(A, x)  toSee) and (
toSee) and (
 (A, x)
(A, x) 
 ) then toSee := cons(
) then toSee := cons(
 (A, x), toSee);
(A, x), toSee);
 := cons(
A,
 := cons(
A, );
); 
 ,
, )
)
 of
 of 
 such that the
 
      such that the 
 (a,
(a, ) 
      for all 
a
) 
      for all 
a  
  have not been computed yet,
      have not been computed yet,
 contains those states
 contains those states 
      
 of
 of 
 for which
 
      for which 
      
 (a,
(a, ) 
      is known for every 
a
) 
      is known for every 
a  
  .
.
 
 
 
 
