Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2 Automatas Finitos
2 Automatas Finitos
2 AUTOMATAS FINITOS
Se usar la notacin de "quntupla" siguiente: A = (Q, , , q0, F) donde A es el nombre del AFD, Q es su conjunto de
estados, son los smbolos de entrada, es la funcin de transicin, q0 es el estado inicial y F es el conjunto de estados
finales.
El "lenguaje" del AFD es el conjunto de todas las cadenas que acepta. Si w es una cadena, y qn es el estado al que se llega
despus de aplicar todas las entradas y transiciones, si qn pertenece a F, entonces la entrada w se acepta y, si no, se
"rechaza".
Ejemplo 2.1. AFD que acepte nicamente todas las cadenas de ceros y unos que contengan la secuencia 01 en cualquier
posicin de la cadena.
{w | w tiene la forma x01y donde x e y constan slo de ceros y unos} o
{x01y | x e y son cadenas cualesquiera formadas por 0s y 1s}
La especificacin completa del autmata A que acepta el lenguaje L de cadenas que contienen una subcadena 01 es: A =
({ q0 ,q1 ,q2},{0, 1}, ,q0, {q1} ), donde es la funcin de transicin: (q0 , 1) = q0, (q0, 0) = q2, (q2, 0) = q2, (q2 , 1) = q1,
(q1, 0) = (q1, 1) = q1.
1
2.2.3 Notaciones ms simples para los AFD
Hay disponibles otras dos notaciones, adems de la de quntupla, que adems cuentan con una descripcin detallada de la
funcin de transicin .
Diagramas de transiciones
Un diagrama de transiciones de un AFD, A = (Q, , , q0, F), es un grafo definido como sigue:
a) Para cada estado de Q, existe un nodo.
b) Para cada estado q de Q y cada smbolo de entrada a de , sea (q,a) = p. Entonces, el diagrama de transiciones
tiene un arco desde el nodo q hasta el nodo p, etiquetado como a. Si existen varios smbolos de entrada que dan lugar a
transiciones desde q hasta p, entonces el diagrama de transiciones puede tener un nico arco etiquetado con la lista de
estos smbolos.
c) Existe una flecha dirigida al estado inicial qo, etiquetada como Inicio. Esta flecha no tiene origen en ningn nodo.
d) Los nodos correspondientes a los estados de aceptacin (los que pertenecen a F) estn marcados con un doble
crculo. Los estados que no pertenecen a F tienen un crculo simple.
Tablas de transiciones
Una tabla de transiciones es una representacin tabular convencional de una funcin, como por ejemplo , que toma dos
argumentos y devuelve un valor. Las filas de la tabla corresponden a los estados y las columnas a las entradas. La entrada
para la fila correspondiente al estado q y la columna correspondiente a la entrada a es el estado (q,a ).
El estado inicial se marca mediante una flecha y los estados de aceptacin mediante un asterisco.
Un AFD define un lenguaje: el conjunto de todas las cadenas que dan lugar a una secuencia de transiciones desde el
estado inicial hasta un estado de aceptacin. En trminos del diagrama de transiciones, el lenguaje de un AFD es el
conjunto de etiquetas ubicadas a lo largo de todos los caminos que van desde el estado inicial hasta cualquier estado de
aceptacin.
Definimos una funcin de transicin extendida que describir lo que ocurre cuando se parte de cualquier estado y se
sigue cualquier secuencia de entradas. Si es la funcin de transicin, entonces la funcin de transicin extendida
construida a partir de ser . La funcin de transicin extendida es una funcin que toma un estado q y una cadena w y
devuelve un estado p (el estado al que el autmata llega partiendo del estado q y procesando la secuencia de entradas w).
La idea es simple. Para calcular (q, w), en primer lugar se calcula (q, x), el estado en el que el autmata se encuentra
despus de procesar todos los smbolos excepto el ltimo de la cadena w. Supongamos que este estado es p; es decir,
(q,w) = p. Entonces (q, w) es lo que obtenemos al hacer la transicin desde el estado p con la entrada a, el ltimo smbolo
de w. Es decir, (q, w) = (p, a) .
2
Ejemplo 2.4. Disear un AFD que acepte el lenguaje L = {w | w tiene un nmero par de ceros y un nmero par de unos}
La tarea de los estados de este AFD es saber si el nmero de 0s y de 1s es par o impar. Existen por tanto cuatro estados
que pueden interpretarse de la manera siguiente: q0 - #0s y #1s es par; q1 - #0s es par y #1s es impar; q2 - #0s es impar y #1s
es par q3 - #0s y #1s es impar. El estado q0 es tanto el estado inicial como el nico estado de aceptacin.
La comprobacin de que una cadena, w = 110101, pertenece a L supone calcular (q0, w) para cada prefijo w de 110101,
comenzando por y aumentando progresivamente el tamao. El resumen de este clculo es:
Ahora podemos definir el lenguaje de un AFD, A = (Q, , , q0, F). Este lenguaje se designa por L(A) y se define como:
, es decir, el lenguaje de A es el conjunto de cadenas w que parten del estado inicial q0 y van
hasta uno de los estados de aceptacin. Si L es L(A) para un determinado AFD A, entonces decimos que L es un lenguaje
regular.
Al igual que el AFD, un AFN tiene un conjunto finito de estados, un conjunto finito de smbolos de entrada, un estado
inicial y un conjunto de estados de aceptacin. Tambin dispone de una funcin de transicin , cuyo tipo es la diferencia
entre los AFD y los AFN. En los AFN, es una funcin que toma un estado y smbolos de entrada como argumentos (igual
que en un AFD), pero devuelve un conjunto de cero, uno o ms estados.
Ejemplo 2.6. Autmata finito no determinista, cuyo trabajo consiste en aceptar todas y slo las cadenas formadas por
ceros y unos que terminan en 0l. El estado q0 es el estado inicial y podemos pensar que el autmata estar en dicho estado
(quiz entre otros estados) siempre que no haya "conjeturado" que ya ha comenzado a leer el 01 final.
No existe un arco que salga de q1 etiquetado con 0, y tampoco hay arcos que salgan del estado q2. En estas situaciones, el
hilo de la existencia del AFN correspondiente a dichos estados simplemente "muere", aunque pueden continuar existiendo
otros hilos. Mientras que un AFD debe tener un arco que salga de cada estado para cada smbolo de entrada , el AFN no
tendr dicha restriccin.
3
La siguiente figura muestra cmo procesa un AFN las entradas. Suponemos que el AFN del ejemplo 2.6 recibe la
secuencia de entrada 00101
Ejemplo 2.7 El AFN de la figura puede especificarse formalmente como , donde la funcin de
transicin est dada por la tabla de transiciones de la figura siguiente.
Las tablas de transiciones pueden emplearse para especificar la funcin de transicin tanto de un AFN como de un AFD.
La nica diferencia es que cada entrada de la tabla para el AFN es un conjunto, aunque dicho conjunto tenga un nico
elemento. Cuando no hay transicin de un estado ante un smbolo de entrada dado, la entrada adecuada es 0, el conjunto
vaco.
Como para los AFD, necesitamos extender la funcin de transicin de un AFN a una funcin que tome un estado q y
una cadena de smbolos de entrada w, y devuelva el conjunto de estados en los que el AFN se encontrar si se inicia en el
estado q y procesa la cadena w. La idea se obtiene de la primera figura de la pgina; (q, w) es la columna de los estados
encontrados despus de leer w, si q es el nico estado en la primera columna. Esta figura sugiere que (q0 ,001) = {q0 ,q2}.
Base:
Paso inductivo. Suponiendo w = xa, y :
Para calcular (q, w), suponiendo que w = xa, obtenemos primero (q, x), y despus seguimos todas las transiciones de
estos estados que estn etiquetadas con a.
Ejemplo 2.8. Utilizamos para describir el procesamiento de la entrada 00101 por el AFN del ejemplo 2.7.
4
Como hemos sugerido, un AFN acepta una cadena, w si es posible elegir cualquier secuencia de transiciones que pasan
del estado inicial a cualquier estado de aceptacin. Aunque la misma w pueda llevar tambin a un estado de no aceptacin,
o a ningn estado no tiene relevancia. Formalmente, si A = (Q, , , q0, F) es un AFN, entonces ,
es decir, L(A) es el conjunto de cadenas w pertenecientes a L* tal que (q0, w) contiene al menos un estado de aceptacin.
Todo lenguaje que puede describirse mediante algn AFN tambin puede ser descrito mediante algn AFD. El AFD
puede tener 2n estados mientras que el AFN ms pequeo para el mismo lenguaje tiene slo n estados, en la prctica el
AFD tiene aproximadamente tantos estados como el AFN, aunque a menudo tiene ms transiciones.
La demostracin de que los AFD pueden hacer lo que hacen los AFN implica una "construccin" importante conocida
como construccin de subconjuntos. La construccin de subconjuntos se inicia a partir de un AFN N = (QN, , N, q0, FN) y
su objetivo es la descripcin de un AFD D = (QD, , D, {q0}, FD) tal que L(D) = L(N). Los alfabetos de entrada de los dos
autmatas son iguales y el estado inicial de D es el conjunto que contiene slo al estado inicial de N. Los otros
componentes de D se construyen:
- QD es el conjunto de los subconjuntos de QN; es decir, QD es el conjunto potencia de QN. Si QN tiene n estados,
entonces QD tendr 2n estados. A menudo, no todos estos estados son accesibles a partir del estado inicial de QD. Los
estados inaccesibles pueden ser "eliminados", por lo que el nmero de estados de D puede ser mucho menor que 2n.
- FD es el conjunto de los subconjuntos S de QN tal que S FN 0. Es decir, FD est formado por todos los conjuntos
de los estados de N que incluyen al menos un estado de aceptacin de N.
- Para cada conjunto S QN y para cada smbolo de entrada a perteneciente a :
Es decir para calcular D(S,a) nos fijamos en todos los estados p de S, vemos a qu estados de N pasan desde p con la
entrada a, y calculamos la unin de todos estos estados.
Ejemplo 2.10. Paso del AFN del ejemplo 2.7 a AFD. Dado que el conjunto de estados de N es {q0, q1, q2}, la construccin
del subconjunto da como resultado un AFD con 2 3 = 8 estados, correspondientes a todos los subconjuntos de estos tres
estados.
La tabla de transiciones pertenece a un AFD. Tanto las entradas de la tabla como los estados son conjuntos. Para
clarificar se pueden emplear nuevos nombres para estos estados. Los estados que no sean accesibles partiendo desde el
estado de inicio se pueden eliminar. El AFD final slo tiene tres estados, que es el mismo nmero de estados del AFN. Sin
embargo, el AFD tiene seis transiciones frente a las cuatro del AFN.
Teorema 2.11. Si D = (QD, , D, {q0}, FD) es el AFD construido a partir del AFN N = (QN, , N, q0, FN) mediante la
construccin de subconjuntos, entonces L(D) = L(N).
Teorema 2.12. Un lenguaje L es aceptado por algn AFD si y slo si L es aceptado por algn AFN.
5
Supongamos el lenguaje formado por el conjunto de todas las cadenas de ceros y unos tales que el smbolo n-simo
contado desde el final de la cadena es 1. A partir de su AFN no se puede llegar a un AFD con los 2n estados accesibles, pero
si se observa el crecimiento exponencial (2n-1) de los estados del AFD ms pequeo que es equivalente a un AFN de n
estados.
Con este lenguaje para un AFN de 3 estados (el 2 trmino desde el final es un 1), obtendramos un AFD de 2 3-1 estados
cuya conversin sera:
0 1
q0 {q0} {q0, q1}
q1 {q2} {q2}
*q2 0 0
0 1
{q0} {q0} {q0, q1}
{q0, q1} {q0, q2} {q0, q1,q2}
{q0, q2} {q0} {q0, q1}
{q0, q1,q2} {q0, q2} {q0, q1,q2}
Con este lenguaje se observa adems El principio de las sillas, del que se deduce que si un autmata tiene n estados y
reconoce de la entrada una cadena de n+m smbolos entonces, el autmata forzosamente deber contener bucles.
6
2.6 Resumen del Captulo 2
+ Autmata finito determinista. Un AFD tiene un conjunto finito de estados y un conjunto finito de smbolos de entrada.
Un estado se disea para que sea el estado inicial, y cero o ms estados para que sean estados de aceptacin. Una funcin
de transicin determina cmo cambia el estado cada vez que se procesa un smbolo de entrada.
+ Diagramas de transiciones. Son adecuados para representar autmatas mediante un grafo en el que los nodos son los
estados y los arcos se etiquetan con los smbolos de entrada, indicando las transiciones de dicho autmata. El estado inicial
se designa mediante una flecha y los estados de aceptacin mediante crculos dobles.
+ Lenguaje de un autmata. El autmata acepta cadenas. Una cadena es aceptada si, comenzando por el estado inicial, la
transicin causada por el procesamiento de los smbolos de dicha cadena, uno cada vez, lleva a un estado de aceptacin. En
trminos del diagrama de transiciones, una cadena es aceptada si sus smbolos son las etiquetas de un camino que va desde
el estado inicial hasta algn estado de aceptacin.
+ Autmata finito no determinista. El AFN difiere del AFD en que el primero puede tener cualquier nmero de transiciones
(incluyendo cero) a los estados siguientes desde un estado dado para un determinado smbolo de entrada.
+ Construccin de subconjuntos. Si se tratan los conjuntos de un AFN como estados de un AFD, es posible convertir
cualquier AFN en un AFD que acepta el mismo lenguaje.
+ Transiciones-. Podemos extender el AFN permitiendo transiciones para una entrada vaca, es decir, para ningn smbolo
de entrada. Estos AFN extendidos puede convertirse en autmatas AFD que aceptan el mismo lenguaje.
+ Aplicaciones de bsquedas en texto. Los autmatas finitos no deterministas son una forma til de representar
reconocedores de patrones que exploran un texto largo para localizar una o ms palabras clave. Estos autmatas pueden
simularse directamente por software o pueden convertirse primero en un AFD, que a continuacin se simula.