En este texto vamos a ver uno de los mtodos que se usan para transformar autmatas finitos deterministas en expresiones regulares, el mtodo de eliminacin de estados. Cuando tenemos un autmata finito, determinista o no determinista, podemos considerar que los sm!olos que componen a sus transiciones son expresiones regulares. Cuando eliminamos un estado, tenemos que reempla"ar todos los caminos que pasa!an a travs de l como transiciones directas que a#ora se reali"an con el ingreso de expresiones regulares, en ve" de con sm!olos. $os casos !ases son los siguientes% 1) La concatenacin: q& q' ( q) * + , q& q) +-(,.* q& q' ( q) * , q& q) (,.* q' q& ( * + , q& *-+(., 2) La unin: 3) El retorno: Realmente, el retorno podra verse como un caso particular de la unin, en donde q& / q) son el mismo estado. De esta forma, el camino que va directo desde q& a q& es 0*1 / el que va desde q& a q& a travs de q' es 0+(.,1. Consejos finales antes de empe"ar con el ejemplo% A la #ora de reducir un autmata, se recomienda partir eliminando primero todos los estados que no sean ni el de inicial ni los finales. Cuando se eliminen todos estos estados / el autmata tenga m2s de un estado inicial, se de!en #acer tantas copias como estados de aceptacin tenga el autmata. En cada una de las copias, se de!e elegir uno de los estados de aceptacin diferentes. 3odos los dem2s estados de aceptacin de esta copia pasar2n a ser estados ordinarios. A#ora se de!en reducir todos los autmatas copias a expresiones regulares. $a expresin regular final ser2 la unin de todas las expresiones regulares resultantes de cada una de las copias. Al reducir por completo a un autmata finito se llegar2 a uno de dos casos% )4 El estado de aceptacin es distinto al estado inicial q& ( * + , q) En este caso, la expresin final de este autmata viene dada por (W + XY*V)*XY* '4 El estado de aceptacin / el de inicio son el mismo ( q& En este caso, la expresin final de este autmata viene dada por W* 5upongamos que un autmata particular tuviese dos estados de aceptacin / los autmatas copias que terminara reduciendo sean estos dos 6ltimos que #emos mostrado #asta el momento. En este caso la expresion regular total del autmata vendra dada por W* + (W+XY*V)*XY* q& q) q' q7 q8 a,c c ! c a a ! a c q& q) q' q7 q8 a-c c ! c a a ! a c $o primero que se de!e #acer es transformar todas aquellas transiciones que contemplan m2s de un sm!olo en expresiones regulares del tipo 0R-91. En este caso, la 6nica transicin que tenemos como o!jetivo es la de q& a q), que queda como 0a-c1. 3odas las dem2s permanecen iguales, por ser sm!olos. A#ora procedemos a eliminar el estado q'. 3enemos que fijarnos en todos los caminos que atravie"an a q'%
q& puede llegar a q7 pasando por q'.
q) puede llegar a q7 pasando por q'.
A#ora veamos un ejemplo m2s complejo para aplicar los conocimientos adquiridos. El autmata de ejemplo es el siguiente% +eamos cmo quedan las transiciones del DFA cuando eliminamos q'% )4 9ara llegar a q7, q& primero de!e pasar por q' usando el sm!olo 0!1, luego puede pasar repetidas veces por q' :o ninguna ve"4 usando cero, uno o varios sm!olos 0c1 /, por 6ltimo, pasa de q' a q7 con el sm!olo 0a1. Esto queda expresado con la expresin regular T = bc*a '4 9ara pasar de q) a q7, primero de!emos llegar a q' con una 0c1. Despus de esto, podemos volver repetidas veces a q', usando el sm!olo 0c1. 9odemos pasar cero, una o muc#as veces por q' de esta forma. A#ora, como 6ltimo paso, de!emos llegar desde q' a q7 con una 0a1. Al concatenar estos tres caminos o!tenemos% S = cc*a q& q) q7 q8 a ! c cc.a;5 a a-c;< !c.a;3 q& q) q7 q8 a ! c 5 a < 3 A#ora, #aciendo las simplificaciones correspondiente, slo dejamos las expresiones regulares resumidas por las letras ma/6sculas :inclu/endo a-c ; <4, / nos queda el autmata as% q& q7 q8 a ! c a5;( 3-<5;+ Como siguiente paso, vamos a eliminar a q). $as transiciones afectadas son% )4 De q& a q7, que puede #acerlo a travs de q) o directamente, usando 3. $a expresin regular que va de q& a q7 a travs de q) es <5 / la expresin que va directamente de q& a q7 es 3. Como puede ser una o la otra, como resultado queda la siguiente expresin% V = T + US '4 De q7 a q7, a travs de q). Esto es% 9rimero llegamos a q) con una 0a1, / luego pasamos de q) a q7, usando 5. $a expresin resultante es% W = aS q& q8 :c-!(.a4 ; * +(.a;, En el siguiente paso, eliminaremos q7. $as transiciones afectadas son% )4 De q& a q8, pasando por q7% 9rimero vamos de q& a q7 usando la expresin +. $uego vamos de q7 a q7 repetidas veces, usando (. 9or 6ltimo, pasamos de q7 a q8 usando una 0a1. $a expresin regular queda como sigue% X = VW*a '4 De q8 a q8, pasando por q7 o directamente por q8 con una 0c1. 9ara pasar a travs de q7, primero vamos de q8 a q7 con una 0!1. $uego vamos de q7 a q7 usando (. *, por 6ltimo, pasamos de q7 a q8 con una 0a1. Como podemos ir desde q8 a q8 tanto usando la 0c1 como a travs de q7, la expresin regular que nos queda es% Y = (c + bW*a) q& q8 * , q& q8 * , = P = Z E!"re#in $inal ; :9 - ,*.=4.,*. ; : * + * )* XY ,*. ; :-4.,*. ; .,*. ; XY* 5i dejamos las Expresiones Regulares de forma resumida, el 6ltimo autmata nos queda as% Completemos las transiciones vacas :de q8 a q) / de q) a q)4 con las expresiones regulares vacas = / 9 para o!tener un autmata similar al que aparece en la p2gina '% De esta forma, podemos generar la expresin regular final a partir de la frmula (% + XY*&)*XY* Esta expresin es equivalente a decir que podemos ir de q& una o muc#as veces usando el camino corto 9 o el largo ,*.=. Cuando /a nos decidimos de pasar de q& a q8, usamos ,, / estando en q8 podemos #acer * cero, una o varias veces. Recordemos que las propiedades de las expresiones regulares nos dicen que la clausura del conjunto vaco nos entrega al conjunto con el string vaco% * = * que la concatenacin con el espacio vaco nos produce al espacio vaco :el operador nulo de la concatenacin4% ' = q) q' q7 q8 a,c c ! c a d ! a c q& q> d a A#ora imaginemos que tenemos un autmata mu/ parecido al del ejemplo anterior, pero que adicionalmente tiene al estado inicial q& como estado de aceptacin / tam!in tiene un tercer estado final m2s% q>. q8 * , $a eliminacin de los estados procedera de manera mu/ similar, #asta llegar al siguiente autmata de expresiones regulares% q& q> d d A#ora procedemos a #acer las tres copias correspondientes para este autmata% q8 * , d d * , q> d d * , q& d d q> q8 q& q> q8 q& * , q& d d q> q8 Redu"camos el primero de los tres autmatas% Como se puede apreciar, ninguno de los estados q8 / q> nos llevan a alg6n estado de aceptacin, por lo que se pueden eliminar sin tener pro!lemas. q& = P En este caso, el autmata #acepta la expresin regular 9. ; * = . ?tese que el lenguaje de este autmata no es el conjunto vaco , ya que el autmata es capaz de aceptar el string vaco . Redu"camos a#ora el segundo autmata% q8 * , d d q& q> q8 * , q& En este caso, el estado que no nos llevan a ning6n estado de aceptacin es el estado q>. $o eliminamos% El autmata resultante es el mismo que el del ejemplo anterior, al igual que la expresin regular que genera% ,*. * , q> d d q8 q& Redu"camos el 6ltimo autmata% $o primero que #acemos es eliminar el estado q8, reali"ando una concatenacin de expresiones regulares% q> d ,*.d ; = q& A#ora o!tenemos la expresin regular final del 6ltimo autmata, la cual est2 dada por =d. $o 6ltimo que queda por #acer es unir las tres expresiones regulares de las tres copias del autmata% E!"re#in $inal = + XY* + &(* DCC/2006.03.30