Está en la página 1de 12

3 Autmatas

3.1 Definicin formal


Formalmente, un autmata finito es una 5-tupla (Q, , q0, , F) donde:6

es un conjunto finito de estados;

es un alfabeto finito;

es el estado inicial;

es una funcin de transicin;

es un conjunto de estados finales o de aceptacin.

Representacin como diagramas de estados

Este autmata finito est definido sobre el alfabeto ={0,1}, posee dos estados s1 y s2, y sus
transiciones son (s1,0)=s2, (s1,1)=s1, (s2,0)=s1 y (s2,1)=s2. Su estado inicial es s1, que es tambin
su nico estado final.
Los autmatas finitos se pueden representar mediante grafos particulares, tambin llamados
diagramas de estados finitos, de la siguiente manera:

Los estados Q se representan como vrtices, etiquetados con su nombre en el interior.

Una transicin desde un estado a otro, dependiente de un smbolo del alfabeto, se


representa mediante una arista dirigida que une a estos vrtices, y que est etiquetada con
dicho smbolo.

El estado inicial q0 se caracteriza por tener una arista que llega a l, proveniente de ningn
otro vrtice.

El o los estados finales F se representan mediante vrtices que estn encerrados a su vez
por otra circunferencia.

Representacin como tabla de transiciones


Otra manera de describir el funcionamiento de un autmata finito es mediante el uso de tablas de
transiciones o matrices de estados. Dos posibles tablas para el ejemplo de la imagen anterior
podran ser las siguientes:
salida
qQ
s1
s1
s2
s2

smbolo

0
1
0
1

llegada
(q,) Q
s2
s1
s1
s2

0
*s1
s2

1
s2
s1

s1
s2

La primera representa explcitamente los parmetros y el valor que toma cada ocurrencia de la
funcin de transicin.7 La segunda es ms compacta, y marca con una flecha el estado inicial, y con
un asterisco los estados finales.
Funcionamiento

El esquema general es el de una cinta lectora que avanza slo hacia delante y de a una celda,
segn la funcin de transicin.
En el comienzo del proceso de reconocimiento de una cadena de entrada, el autmata finito se
encuentra en el estado inicial y a medida que procesa cada smbolo de la cadena va cambiando de
estado de acuerdo a lo determinado por la funcin de transicin. Cuando se ha procesado el ltimo
de los smbolos de la cadena de entrada, el autmata se detiene en el estado final del proceso. Si el
estado final en el que se detuvo es un estado de aceptacin, entonces la cadena pertenece al
lenguaje reconocido por el autmata; en caso contrario, la cadena no pertenece a dicho lenguaje.
Note que el estado inicial de un autmata finito siempre es nico, en tanto que los estados finales
pueden ser ms de uno, es decir, el conjunto puede contener ms de un elemento. Tambin
puede darse el caso de que un estado final corresponda al mismo estado inicial.
Generalizacin de la funcin de transicin

Si es un alfabeto, entonces se denota * al conjunto de todas las cadenas de caracteres o


palabras que se pueden conformar con dicho alfabeto.
Una funcin de transicin se puede generalizar a una funcin *, que opera sobre estados y
secuencias de smbolos, en lugar de smbolos individuales del alfabeto. As, esta nueva funcin de
transicin se define
, permitiendo caracterizar los autmatas de manera ms
6
abreviada y sin perder expresividad.
La funcin * puede expresarse tambin de manera recursiva, definiendo para toda cadena x *,
todo smbolo a , y un estado q Q:6

, que es la base inductiva, siendo la cadena vaca, y

, que es la induccin propiamente tal.

Se llama configuracin de un autmata finito a un "instante" en el cmputo de la mquina; es decir,


al estado actual en que se encuentra dicho cmputo, junto con la palabra que ha sido procesada
hasta ese momento. Formalmente, se define como un par ordenado (q, x) Q *. De este modo,
se puede definir adems la configuracin inicial del autmata, como el par (q0,x), donde x es la
entrada; y la configuracin final, como el par (q,), con q F.
De este modo, el lenguaje regular aceptado por un autmata finito A puede denotarse como L(A) =
{w; *(q0,w) F}, es decir, como el conjunto de todas las configuraciones iniciales que conllevan a
estados finales.

3.2 Clasificacin de AF
Autmata finito determinista

AFD que reconoce el lenguaje regular conformado exclusivamente por las cadenas con un nmero
par de ceros y par de unos.

Un autmata finito determinista (abreviado AFD) es un autmata finito que adems es un sistema
determinista; es decir, para cada estado q Q en que se encuentre el autmata, y con cualquier
smbolo a del alfabeto ledo, existe siempre a lo ms una transicin posible (q,a).
En un AFD no pueden darse ninguno de estos dos casos:

Que existan dos transiciones del tipo (q,a)=q1 y (q,a)=q2, siendo q1 q2;

Que existan transiciones del tipo (q,), salvo que q sea un estado final, sin transiciones
hacia otros estados.

Un ejemplo interesante de autmatas finitos deterministas son los tries.


Autmata finito no determinista

AFND con transiciones (q0,b)=q0 y (q0,b)=q1, que acepta el lenguaje regular sobre el alfabeto {a,b}
conformado por todas las palabras que terminan en b; es decir, que equivale a la expresin regular
(a|b)*b+.

AFND- a cuyo estado 2 se puede acceder pasando por el estado 3, sin procesar smbolos de
entrada.
Un autmata finito no determinista (abreviado AFND) es aquel que, a diferencia de los autmatas
finitos deterministas, posee al menos un estado q Q, tal que para un smbolo a del alfabeto,
existe ms de una transicin (q,a) posible.
Haciendo la analoga con los AFDs, en un AFND puede darse cualquiera de estos dos casos:

Que existan transiciones del tipo (q,a)=q1 y (q,a)=q2, siendo q1 q2;

Que existan transiciones del tipo (q,), siendo q un estado no-final, o bien un estado final
pero con transiciones hacia otros estados.

Cuando se cumple el segundo caso, se dice que el autmata es un autmata finito no


determinista con transiciones vacas o transiciones (abreviado AFND-). Estas transiciones
permiten al autmata cambiar de estado sin procesar ningn smbolo de entrada.
Formalmente, se distingue de la 5-tupla que define a un autmata finito determinista en su funcin
de transicin. Mientras en un AFD esta funcin se define de la siguiente manera:

en un AFND se define como:

Para el caso de los AFND-, se suele expresar la funcin de transicin de la forma:

donde P(Q) es el conjunto potencia de Q.


Esto significa que los autmatas finitos deterministas son un caso particular de los no deterministas,
puesto que Q pertenece al conjunto P(Q).
La interpretacin que se suele hacer en el cmputo de un AFND es que el automta puede estar en
varios estados a la vez, generndose una ramificacin de las configuraciones existentes en un
momento dado. Otra interpretacin puede ser imaginar que la mquina "adivina" a qu estado debe
ir, eligiendo una transicin entre varias posibles.
Note finalmente que en un autmata finito no determinista podemos aceptar la existencia de ms de
un nodo inicial, relajando an ms la definicin original.
Equivalencias entre autmatas finitos
Se dice que dos autmatas finitos son equivalentes, si ambos reconocen el mismo lenguaje regular.
Toda expresin regular (que define a su vez un lenguaje regular) puede ser expresada como un
autmata finito determinista,8 y viceversa.9 Dada una expresin regular, es posible construir un
AFND- que reconozca dicho lenguaje, por ejemplo mediante el algoritmo de Thompson. Luego, todo
AFND- puede transformarse en un AFND equivalente, as como todo AFND puede transformarse en
un AFD equivalente, mediante el mtodo llamado construccin de conjunto potencia. As, por
transitividad, para cualquier autmata finito no determinista siempre existe un autmata finito
determinista equivalente, y viceversa.3

Normalmente en el diseo de autmatas finitos, lo primero que se hace es construir un AFND-, que
es el ms sencillo de construir, por poseer menos restricciones en su funcin de transiciones. Luego
dicho autmata se reduce a un AFND, y finalmente a un AFD, el cual por sus caractersticas
deterministas ya puede ser implementado sin problemas utilizando un lenguaje de programacin.

3.3 Conversin de un AFND a un AFD


Conversin de un AFND a un AFD.

AFND inicial.

Proceso de conversin.

AFD final.
Todo AFND (QN, , q0, N, FN) puede convertirse en un AFD (QD, , q0, D, FD) equivalente, que
mantiene el alfabeto y el estado inicial q0 originales. La conversin implica pasar por un AFD
intermedio con estados y transiciones redundantes, que al no ser accesibles a partir del estado
inicial, son eliminados para obtener el AFD definitivo.
Para definir el AFD intermedio, se deben seguir los siguientes pasos:
1. Primero se redefine el conjunto de estados QN = {q0, q1, ..., qm} original, como uno
conformado por todos los subconjuntos de QN. Los nuevos estados finales sern todos
aquellos estados que contengan a alguno de los estados finales originales.

2. Posteriormente, se redefine el conjunto de transiciones original, por transiciones del tipo


D(S,a), donde a, y S es la unin de todos los estados q de QN para los cuales exista la
transicin N(q,a).
3. Por ltimo, se eliminan los estados inaccesibles o inalcanzables (junto con sus
transiciones de salida), es decir, aquellos a los que no se puede acceder a partir del estado
inicial. Luego de esta depuracin, se obtiene el AFD final.
Ejemplo
En las figuras de ejemplo, como el AFND inicial posee tres estados (q0, q1, q2), entonces el AFD
intermedio poseer siete ({q0}, {q1}, {q2}, {q0, q1}, {q0, q2}, {q1, q2}, {q0, q1, q2}), y como el estado final
original era q2, entonces los estados finales del AFD intermedio son {q2}, {q0, q2}, {q1, q2} y {q0, q1, q2}.
Con respecto a las nuevas transiciones, note por ejemplo que se mantuvo la transicin N(q0,1)=q0,
siendo ahora llamada D({q0},1)={q0}; sin embargo, dado que originalmente se daba que N(q0,0)=q0 y
N(q0,0)=q1, ahora estas dos transiciones fueron reemplazadas por D({q0},0)={q0, q1}. Para terminar,
note que los estados {q1}, {q2} y {q1, q2} no estn conectados con el resto del autmata que posee el
estado inicial; por tanto, son eliminados. Asimismo es eliminado tambin {q0, q1, q2}, pues a pesar de
estar conectado con el resto del autmata, no es accesible a partir de {q0}. As finalmente,
eliminando estos cuatro estados, as como sus respectivas transiciones, se obtiene el AFD buscado.

3.4 Representacin de ER usando AFND


Primero mostramos que si r es una expresin regular, entonces L(r) es un lenguaje regular. Nuestra
definicin dice que un lenguaje es regular si es aceptado por algn AFD. Debido a la equivalencia
entre AFD y AFN, un lenguaje es tambin regular si es aceptado por un AFN.
Teorema. Un lenguaje es regular si es aceptado por un AF.
La prueba consiste en dar un procedimiento para transformar en forma sistemtica una ER en una
AF que acepte su lenguaje. El objetivo es convertir una Expresin Regular en un AF
Pasos para transformar una ER a un AF
Sabemos que existen tres operaciones bsicas entre ER, por lo tanto, cualquier ER es una
combinacin de stas. De aqu que debamos realizar una de las siguientes transformaciones a la
vez hasta lograr el objetivo.

La
figura representa un grafo de transicin generalizado

siguiente

El lenguaje aceptado por dicho grafo es L(a* + a* (a+b)c*), la liga (q 0,q0) etiquetada con a es
un ciclo que puede generar cualquier nmero de as, esto es, se representa por L(a*). Podemos
etiquetar esta liga como a*, sin cambiar el lenguaje aceptado por el grafo.
Ahora bien, dada la ER a+ a(a+b)*a
Tenemos

Particionado el Autmata obtenemos lo siguiente

Ejercicio. Obtener el AF que acepte las siguientes Expresiones:


a) (a + ba)*bb
b) (a + bb)* (ba* + )
c) (ab*a*) ((ab)* ba)
Es intuitivamente razonable que el inverso del teorema anterior se cumple, y que para cada
lenguaje regular, debe existir una expresin regular. Debido a que cada lenguaje regular tiene
asociado un AF y por lo tanto un grafo de transicin, lo nico que necesitamos hacer es encontrar
una expresin regular capaz de generar las etiquetas de todos los caminos desde q0 hasta el estado
final. Esto podra ser un poco complicado debido a la existencia de ciclos que se aparecen
arbitrariamente, en cualquier orden. Esto crea un problema que debe ser manejado con cuidado.
Existen varias formas de hacer esto; una de las aplicaciones comunes requiere un viaje a lo que
llamamos grafos de transicin generalizados.
Un grafo de transicin generalizado es un grafo de transicin cuyas ligas estn etiquetadas con
expresiones regulares; de otra forma esto sera lo mismo que un grafo de transicin normal. La
etiqueta de cualquier camino desde el estado inicial hasta el estado final es la concatenacin de
varias expresiones regulares, y as es una expresin regular. Las cadenas denotadas por tales
expresiones regulares son un subconjunto de los lenguajes aceptados por el grafo de transicin
generalizado, con el lenguaje completo formado por la unin de tal subconjunto generalizado.

3.5 Minimizacin de un AFD


Dos estados de un autmata finito determinista son estados equivalentes si al unirse en un slo
estado, pueden reconocer el mismo lenguaje regular que si estuviesen separados. Esta unin de
estados implica la unin tanto de sus transiciones de entrada como de salida. Si dos estados no son
equivalentes, se dice que son estados distinguibles. Un estado final con un estado no-final nunca
sern equivalentes.
Un AFD est minimizado, si todos sus estados son distinguibles y alcanzables. Un algoritmo de
minimizacin de AFD es el siguiente:
1. Eliminar los estados inaccesibles del autmata.
2. Construir una tabla con todos los pares (p, q) de estados restantes.

3. Marcar en la tabla aquellas entradas donde un estado es final y el otro es no-final, es decir,
aquellos pares de estados que son claramente distinguibles.
4. Para cada par (p, q) y cada smbolo a del alfabeto, tal que r = (p,a) y s = (q,a):
1. Si (r, s) ya ha sido marcado, entonces p y q tambin son distinguibles, por lo tanto
marcar la entrada (p, q).
2. De lo contrario, colocar (p, q) en una lista asociada a la entrada (r, s).
5. Agrupar los pares de estados no marcados.
Luego del tercer paso, si la tabla creada queda completamente marcada, entonces el AFD inicial ya
era mnimo.
La complejidad computacional del problema de minimizar un AFD es polinomial. De hecho, existen
algoritmos ms eficientes an que el mostrado en este artculo (aunque menos intuitivos). Sin
embargo, el problema de minimizar un autmata finito no determinista es NP-completo y PSPACEcompleto.
Ejemplo
Minimizacin de un AFD.

AFD con estados redundantes.

AFD minimizado.
En la primera figura del ejemplo, se muestra un autmata con el estado inaccesible d, el cual puede
eliminarse inmediatamente. Luego se construye la tabla de pares de estados, y a continuacin se
marcan, de acuerdo a la tercera lnea del algoritmo, las filas y columnas correspondientes a los
estados finales c y g, salvo la celda que representa el par (c,g), puesto que al ser ambos estados
finales, pueden ser estados equivalentes. Posteriormente, se marcan las celdas restantes de
acuerdo a la cuarta lnea del algoritmo, notando que el par (b, f) queda asociado con el par (c, g), y
as finalmente se obtiene el autmata final, agrupando los estados b y f, as como c y g, tal y como
se muestra en la segunda figura del ejemplo.

b
c
e
f
g
a

Tablas para la bsqueda de estados equivalentes


b
b
c
c
e
e
f
f
g
g
e
f
a
b
c e
f
a

3.6 Aplicaciones

Ejemplo de Mquina de Mealy, un tipo de transductor de estados finitos, que generaliza los
autmatas finitos.
Existen diversas generalizaciones posibles de hacer sobre los autmatas finitos, para aumentar su
uso y expresividad. As, por ejemplo, se definen los transductores de estados finitos como autmatas
finitos que estn dotados adems de un alfabeto de salida, distinto al de entrada, y que pueden
poseer ms de un estado inicial.14 Las mquinas de Moore y mquinas de Mealy son conocidos
ejemplos de transductores, que se utilizan sobre todo para modelar sistemas secuenciales.15 16
Es incluso posible aumentar el poder de cmputo de un autmata finito, permitiendo un alfabeto
adicional sobre ste, que acte sobre una memoria de tipo pila para ser considerada en cada
transicin. Esta es la idea utilizada por los llamados autmatas con pila, los cuales son capaces de
reconocer lenguajes libres de contexto, que estn un nivel por sobre los lenguajes regulares en la
Jerarqua de Chomsky.

También podría gustarte