Alternative NFA_TO_DFA Page 59 of your text presents the algorithm NFA_TO_DFA for converting an NFA into an equivalent DFA. This algorithm is correct, but slightly different from what I showed you in class. My reason for teaching the variant are discussed at the end of this note. The alternative algorithm that I showed you in class differs from the book in only two simple ways. And is given below: ----------------------------------------------------------------------- NFA_TO_DFA (alternative algorithm) 1) Create a graph G_D with vertex delta*(q_0,lambda). Identify this vertex as the initial vertex. (here delta*(q_0,lambda) is the extended transition function of the NFA applied to q_0 and the empty string lambda) (intuitively delta*(q_0,lambda) can be read as "the set of states reachable from the initial state q_0 by following only lambda transitions in the NFA".) 2) Same as in book. 3) Same as in book. ------------------------------------------------------------------------ The only differences are that we have removed step 4 and use delta*(q_0,lambda) as the initial state instead of {q_0}. Both algorithms will result in essentially the same DFA, with the only difference being that the labels of the initial states will differ. So it does not really matter which one you use. You are free to use either version of the algorithm. You should try to understand why step 4 is no longer required in the alternative algorithm. In particular, notice that in the alternative algorithm, step 3 will result in the initial state being labeled as a final state iff step 4 would have labeled the initial state as a final state. I prefer the alternative formulation as it is a bit cleaner, and does not require the "hackish" step 4. It also better matches the intuitive description that I gave in class, where I introduced the sets Q_i. In addition, it reduces the chances of forgetting about step 4