Está en la página 1de 9

Ejemplo para transformar un DFA

en una Expresin Regular


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

También podría gustarte