ruizble@yahoo.com Estudiante de pregrado, Escuela de Ciencias de Computacin e Inormtica !ni"ersidad de Costa Rica Resumen# El algoritmo de minimizacin de autmatas initos deterministas permite simpliicar el mane$o de autmatas. Se presenta a%u& los detalles de este algoritmo y un e$emplo concreto. Se busca acilitar el entendimiento del algoritmo, en particular en estudiantes de cursos de compiladores o en proesionales %ue bus%uen la reerencia al tema. '( Introduccin# Cuando se traba$a en compiladores, se re%uiere utilizar gramticas y autmatas asociados a )stas. E*isten herramientas %ue permiten simpliicar la utilizacin de los autmatas. En particular, para los autmatas initos deterministas +,-.(, es de suma utilidad aplicar el algoritmo de minimizacin, ya %ue de )sta orma se obtiene un autmata e%ui"alente, pero mucho ms eiciente. Se brindar una e*plicacin paso por paso del uncionamiento del algoritmo de minimizacin de ,-., en un primer momento. /uego, se proceder a aplicar el algoritmo en un e$emplo prctico. 0( E*plicacin del algoritmo de 1inimizacin# El algoritmo de minimizacin consiste en cinco pasos, aun%ue )stos a "eces deben ser repetidos# 2articin inicial 2articin de nue"os con$untos 3eriicar la nue"a particin Eliminar los estados %ue se encuentren en el mismo grupo Remo"er estados sumidero y no alcanzables desde s&mbolo inicial .e los pasos anteriores, el segundo y el tercero orman un ciclo, mientras %ue los dems son procesos mecnicos %ue slo se deben aplicar una "ez. , continuacin, detallaremos cada uno de estos pasos. , partir de un autmata determinista +,-.(, ya sea una tabla con los "alores o su dibu$o, se determinan dos con$untos# uno %ue contiene a todos los estados inales y otro %ue contiene a los dems estados. 2or e$emplo, en la tabla de aba$o, los estados inales son a%uellos %ue tienen 4+(5 despu)s del n6mero +7 y 8( y los estados no inales son los dems +' y 0(. 2ara el dibu$o, los estados inales son los %ue tienen doble c&rculo +7 y 8(, mientras %ue los no inales son los %ue tienen c&rculo sencillo +' y 0(. , este proceso se le conoce como particin inicial. Estados \ 9ransiciones a b '+i( 0 0 ' 8 7+( 8 7 8+( 7 +i(: estado inicial +(: estado inal 9abla de representacin de un autmata inito determinista .ibu$o de representacin de un autmata inito determinista , partir de cada estado en cada uno de los con$untos %ue se tiene, se estudia cules transiciones tienen, a cules estados se dirigen y a cules con$untos pertenecen estos estados de llegada. Si dos estados del mismo con$unto se dirigen a estados de con$untos distintos por medio de una de las transiciones, entonces estos estados deben separarse, ormando as& una nue"a particin. , esto se le llama particin de nue"os con$untos. ,simismo, si uno de los estados del con$unto tiene una transicin hacia otro estado y los dems estados del con$unto no "an a ninguna parte con el terminal de la transicin, entonces el %ue s& la tiene debe separarse. En estrecha relacin con el paso anterior se encuentra el paso de "eriicacin de la nue"a particin. Este indica %ue se debe repetir la ase de particin hasta %ue los con$untos ya no se puedan separar ms. /os con$untos no se pueden separar cuando %uedan con 6nicamente un estado o cuando todos los estados del con$unto tienen transiciones hacia estados de los mismos con$untos. Cuando ya no se puede realizar ms particiones a los con$untos, se sigue con el cuarto paso. Resulta de suma importancia considerar %ue cuando se separan dos estados de un con$unto, esto puede aectar las uturas particiones. Se dispone ahora de una particin inal. Si todos los estados estn en con$untos distintos, no hay %ue hacer nada. Si, por el contrario, hay "arios estados en uno o "arios de los con$untos, estos estados deben usionarse. /a $ustiicacin es sencillamente %ue todos los estados de un con$unto cumplen una misma uncin y el autmata no se "e aectado si se unen. 2ara realizar esta usin, se determina arbitrariamente un estado representante por cada con$unto. En la tabla del autmata, se reemplazan los dems estados del con$unto por el representante. /uego, se eliminan las ilas repetidas. -inalmente, se debe remo"er a%uellos estados no inales %ue slo tienen transiciones hacia ellos mismos o, en otras palabras, a%uellos a partir de los cuales no se puede llegar a ning6n estado inal. , estos se les denomina estados sumideros. ,simismo, se debe eliminar los estados a los %ue no se puede llegar desde el estado inicial. 7( E$emplo de 1inimizacin de un ,utmata .eterminista Se tiene la siguiente tabla de un autmata. ' ; , B < B B C C , E . . < =E> E E - < - < < < El estado , es inicial y el estado E es inal. Se aplicar el algoritmo de minimizacin descrito anteriormente. 2rimer paso. Se separan los estados en estados inales y no inales. 9enemos los con$untos# ?, B C . - <@ y ?E@. Segundo paso. , e*cepcin de C, todos los estados tienen transiciones hacia los estados del primer con$unto ?, B C . - <@. Como C se dirige a E por medio de ;, separamos a este estado. Aos %uedan entonces los con$untos# ?, B . - <@ ?C@ ?E@. /os estados C y E han %uedado solos en sus con$untos y entonces no pueden ser separados ms. Se "uel"e a realizar el paso 0. B se dirige a C mediante ;. Como C se encuentra en un con$unto dierente al de los dems estados de llegada a partir del con$unto ?, B . - <@, hay %ue separar a B. Esto nos da# ?, . - <@ ?B@ ?C@ ?E@. B ya no puede ser particionado. Se "uel"e a realizar el paso 0. , se dirige a B mediante ' y B est en un grupo distinto del con$unto de llegada de ?. - <@. 2or lo tanto, , debe separarse del grupo. Aos %ueda# ?. - <@ ?,@ ?B@ ?C@ ?E@. , no puede separarse ms. 9ercer paso. ?. - <@ no se puede separar ms ya %ue todos sus estados se dirigen a un mismo con$unto de estados +?. - <@(. Cuarto paso. 2ara el 6nico con$unto con ms de un estado ?. - <@, se escoge el representante .. En la tabla, reemplazamos por . donde sea %ue aparezca - o <. 9enemos la siguiente tabla# ' ; , B . B B C C , E . . . =E> E E . . . . . . Como resultado, se tiene tres ilas id)nticas. 2or lo tanto, se elimina dos de ellas, obteniendo la siguiente tabla# ' ; , B . B B C C , E . . . =E> E E ,hora, el autmata %ue se tiene no tiene estados sumidero y todos los estados son alcanzables a partir del estado inicial ,. El autmata ha sido minimizado. 8( Conclusiones El uso del algoritmo de minimizacin es de gran utilidad para disminuir el n6mero de estados de un autmata determinista. Sin embargo, esto no asegura %ue el n6mero de transiciones entre estados se reduzca. El algoritmo es bastante sencillo de aprender, aun%ue es necesario realizar mucha prctica para poder dominarlo. 2ara acilitar la obtencin de un autmata m&nimo se recomienda partir de un autmata simple si se da la oportunidad de crearlo a partir de una e*presin regular. Entre ms estados tenga un autmata, ms comple$o resultar y ser ms di&cil de mane$ar. Bibliogra&a# B,ho, ,lred 3 C Sethi, Ra"i C !llman, Derey ..# Compilers: Principles, Techniques and Tools, ,ddison Eesley. 'FGF. B.i 1are. Herramientas de curso ,utmatas y Compiladores# http#IIJJJ.diB mare.comIpubI,yCI