I am trying to implement Brzozowski's algorithm for minimizing my DFA Following is the algorithm for the same.
DFA = d(r(d(r(NFA))))
where r()
is reversal of NFA and D()
converts NFA to DFA.
But I do not understand what is the meaning of r()
searching on google also does not gives much information.
Can anybody please explain what is r()
of NFA.
Any other simple algorithm or C++ implementation available please let me know the link.
In the code for reverse.c (found here, but now defunct) you'll find a comment /* Create reversed edges */
. So I'd say that r()
is reversing the direction of all edges (plus making sure that the reversed automaton has a well defined start state).