Está en la página 1de 7

Captulo 2: Autmatas finitos.

2.1 Descripcin Informal de un autmata Finito (lectura, pag. 31)


2.2 Autmata Finito Determinista (AFD)
2.2.1 Definicin de autmata finito determinista
2.2.2 Cmo procesa cadenas un AFD
2.2.3 Notaciones ms simples para los AFD
2.2.4 Extensin a cadenas de la funcin de transicin
2.2.5 El lenguaje de un AFD
2.3 Autmatas finitos no deterministas (AFN)
2.3.1 Punto de vista informal de los autmatas finitos no deterministas
2.3.2 Definicin de un autmata finito no determinista
2.3.3 Funcin de transicin extendida
2.3.4 El lenguaje de un AFN
2.3.5 Equivalencia de autmatas finitos deterministas y no deterministas
2.4 Aplicacin: bsqueda de texto (lectura, pag. 57)
2.5 Autmatas finitos con transiciones- (ampliacin pag. 61)
2.6 Resumen del Captulo 2

2 AUTOMATAS FINITOS

2.2 Autmata finito determinista (AFD)


Es aquel que slo puede estar en un nico estado despus de leer cualquier secuencia de entradas. "Determinista" hace
referencia a que para cada entrada slo existe uno y slo un estado al que el autmata puede hacer la transicin a partir de
su estado actual.

Un autmata finito "no determinista", puede estar en varios estados a la vez.

"Autmata finito" normalmente hace referencia a la variedad determinista.

2.2.1 Definicin de autmata finito determinista

Un autmata finito determinista consta de:


l. Un conjunto finito de estados, a menudo designado como Q.
2. Un conjunto finito de smbolos de entrada, a menudo designado como .
3. Una funcin de transicin que toma como argumentos un estado y un smbolo de entrada y devuelve un estado. La
funcin de transicin se designa habitualmente como . Se representa mediante arcos entre los estados y las etiquetas
sobre los arcos. Si q es un estado y a es un smbolo de entrada, entonces (q,a) es el estado p tal que existe un arco
etiquetado a que va desde q hasta p.
4. Un estado inicial, uno de los estados de Q.
5. Un conjunto de estados finales o de aceptacin F. F Q .

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.

2.2.2 Cmo procesa cadenas un AFD

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.

Ejemplo 2.2. Diagrama de transicin del autmata del ejemplo 2.1.

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 ).

Ejemplo 2.3. Tabla de transicin del autmata del ejemplo 2.1.

El estado inicial se marca mediante una flecha y los estados de aceptacin mediante un asterisco.

2.2.4 Extensin a cadenas de la funcin de transicin

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).

Definimos por induccin sobre la longitud de la cadena de entrada como sigue:


BASE. (q, ) = q. Si partimos del estado q y no leemos ninguna entrada, entonces permaneceremos en el estado q.
PASO INDUCTIVO. Supongamos que w es una cadena de la forma xa; es decir, a es el ltimo smbolo de w y x es la
cadena formada por todos los smbolos excepto el ltimo. Por ejemplo, w = 1101 se divide en x = 110 y a = 1. Luego
(q, w) = ( (q ,x) ,a).

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.

As donde la funcin de transicin se describe mediante el diagrama de transiciones.

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:

2.2.5 El lenguaje de un AFD

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.

2.3 Autmatas finitos no deterministas


Un autmata finito "no determinista" (AFN) tiene la capacidad de estar en varios estados a la vez. Esta capacidad a
menudo se expresa como la posibilidad de que el autmata "conjeture" algo acerca de su entrada. Los AFN aceptan los
lenguajes regulares, al igual que los AFD.

2.3.1 Punto de vista informal de los autmatas finitos no deterministas

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

2.3.2 Definicin de autmata finito no


determinista

Un AFN se representa esencialmente


como un AFD: A = (Q, , , q0, F)
donde:
1. Q es un conjunto finito de estados.
2. . es un conjunto finito de smbolos de entrada.
3. q0, un elemento de Q, es el estado inicial.
4. F, un subconjunto de Q, es el conjunto de estados finales (o de aceptacin).
5. , la funcin de transicin, es una funcin que toma como argumentos un estado de Q y un smbolo de entrada de L, y
devuelve un subconjunto de Q. La nica diferencia entre un AFN y un AFD se encuentra en el tipo de valor que devuelve
: un conjunto de estados en el caso de un AFN y un nico estado en el caso de un AFD.

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.

2.3.3 Funcin de transicin extendida

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.

2.3.4 El lenguaje de un AFN

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.

2.3.5 Equivalencia de autmatas finitos deterministas y no deterministas

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.

2.3.6 Un caso desfavorable para la construccin de subconjuntos

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.

El enunciado formal de lo que hacen los estados de N es:


1. N se encuentra en el estado q0 despus de leer cualquier secuencia de entrada w.
2. N se encuentra en el estado qi, para i = 1, 2,, n, despus de leer la secuencia de entrada w si y slo si el smbolo i-
simo del final de w es 1; es decir, w es de la forma x1a1a2ai-l, donde los aj son los smbolos de cada entrada.

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.

Estados muertos y AFD sin ciertas transiciones

En ocasiones, se disea un AFD para que deje de funcionar


("muera") en situaciones en las que se sabe que es imposible que
cualquier extensin de la secuencia de entrada sea aceptada. Este
autmata es en realidad un AFN. Si utilizamos la construccin
de subconjuntos para convertirlo en un AFD, el autmata parece
prcticamente el mismo, pero incluye un estado muerto. Se
corresponde con 0, el conjunto vaco de estados del autmata.

Podemos aadir un estado muerto a cualquier autmata que no


tenga ms de una transicin para cualquier estado y smbolo de
entrada. As, aadimos una transicin al estado muerto desde
cualquier otro estado q, para todos los smbolos de entrada para
los que q no tenga ninguna otra transicin. El resultado ser un
AFD en sentido estricto. Por esto, en ocasiones, se denominar
autmata a un AFD que tenga a lo sumo una transicin saliendo
de cualquier estado para cualquier smbolo, en lugar de exigir
que tenga exactamente una transicin para cada entrada.

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.

También podría gustarte