Está en la página 1de 26

Ingeniera en Sistemas

Computacionales
Lenguajes y Autmatas I

Unidad 3: Autmatas Finitos.
Subtemas:

3.1 Definicin formal
3.2 Clasificacin de AF
3.3 Conversin de un AFND a AFD
3.4 Representacin de ER usando AFND
3.5 Minimizacin de estados en un AF
3.6 Aplicaciones (definicin de un caso de estudio)




1.- Definicin formal
Durante la actividad cotidiana, hay que interactuar con muchos dispositivos que pueden
formalizarse como autmatas finitos. El funcionamiento de una mquina expendedora de
billetes o bebidas suele utilizar un cdigo con el usuario que puede resumirse as:
La pantalla de la maquina ofrece informacin, como la fecha y la hora o algn
mensaje publicitario.
Cuando el usuario pulsa un botn de alguno de los productos, si el dinero es
introducido es menor al costo del producto, en la pantalla aparece su precio.
Si se pulsa el botn despus de haber introducido una cantidad mayor o igual que
el precio correspondiente, aparecer un mensaje que indica que la venta se ha
realizado y el usuario recibe el producto, junto con el cambio.
En cualquier instante, el usuario puede pulsar el botn de devolucin de monedas,
cancelando la operacin.
Tras cualquiera de las dos circunstancias anteriores (fin o cancelacin de la venta),
la maquina vuelve a su comportamiento inicial.
Un cajero automtico acta de una manera similar. Este tipo de funcionamiento puede
resumirse as: a partir de ciertos elementos de entrada o estmulos (en el ejemplo, de las
monedas y la indicacin del producto que se desea comprar) se realiza algn proceso (la
comparacin entre el precio y la cantidad introducida, el clculo del cambio) se produce
alguna salida o respuesta (proporcionar el producto y el cambio).
Para la correcta realizacin de estos procesos, parece imprescindible que la maquina
disponga de los siguientes elementos:
Instrucciones detalladas sobre lo que hay que hacer en cada entrada posible.
A partir de un comportamiento inicial predefinido (el mensaje inicial, fecha,
hora etc.), la maquina tiene que recordar las entradas que va recibiendo y, en
funcin de ellas, comportarse de maneras diferentes (ejem. Esperar el importe
necesario, expulsar la mercanca y el cambio, etc.)
Como consecuencia de la observacin anterior, la maquina necesita disponer de
un lugar donde pueda almacenar elementos importantes para su
funcionamiento (la mercanca, la lista de precios, las monedas introducidas, las
que se utilizaran para el cambio, etc.)
El ejemplo anterior permite concluir que la computacin realizada por estos dispositivos
requiere dos componentes fundamentales: capacidad de proceso y capacidad de
almacenamiento de informacin.


Los autmatas finitos tienen una capacidad de almacenamiento mnima.
Para su definicin formal, solo es necesario tener en cuenta tres cosas:
Las entradas procedentes del exterior, que pueden afectar su comportamiento y
su respuesta.
Las distintas situaciones en que se puede encontrar el autmata, con las que se
asocia el concepto de estado.
La forma de pasar de unos estados a otros, que se formaliza con el concepto de
transicin.
Definicin formal
Un autmata finito determinista se define como la quntupla (Q, , (delta minscula), q0,
F) donde:
Q es un conjunto no vacio de estados.
es el alfabeto de entrada
Qx->Q es la funcin de transicin que especifica a que estado pasa el autmata
desde el estado actual al recibir un smbolo de entrada. Esta funcin debe definirse
para todas las parejas posibles de estados y de smbolos de entrada. (q, a)=q
indica que el autmata, si se encuentra en el estado q y recibe el smbolo de
entrada a, pasa al estado q.
q0 es el estado inicial del autmata.
F (A B significa: cada elemento de A es tambin elemento de B) Q es el conjunto de
estados finales del autmata, que se aplica especialmente en los autmatas
reconocedores de lenguajes, aun que en otro tipo de autmatas, este conjunto
puede ser vacio.
Usualmente, las funciones de transicin se representan mediante una tabla de transicin,
que proporciona una representacin matricial con tantas filas como estados (el numero
de estados es igual a |Q|) y tantas columnas como smbolos de entrada (el numero de
columnas es igual a | |). La casilla de la fila correspondiente al estado q y la columna del
smbolo de entrada a contendr el estado (q, a). Para distinguir el estado inicial y los
estados finales, en este texto se utilizara el smbolo -> delante del estado inicial y el
smbolo * delante de los estado finales.
P
-> 0 1
1 0



Tabla de transicin de un autmata finito determinista que podra aplicarse en un
dispositivo elctrico formado por una bombilla y el interruptor que la controla, la bombilla
puede estar en dos situaciones distintas: encendida o apagada. El sistema solo puede
recibir un estimulo exterior: pulsar el interruptor. Cuando la bombilla est apagada y se
pulsa el interruptor, pasa a estar encendida, y viceversa. Los estados pueden
representarse mediante los smbolos 0 (apagado) y 1 (encendido). La nica entrada
posible puede representarse mediante la letra p (de pulsar)
La condicin de la funcin de transicin debe estar definida para todas las combinaciones
posibles de estado y smbolo de entrada significa que la tabla de transicin no debe
contener casillas en blanco.
Diagrama de estados
Adems de la definicin formal anterior, que especifica la naturaleza matemtica de cada
componente de un autmata finito determinista, se utiliza tambin otra representacin, el
diagrama de estados, que a menudo resulta ms cmoda.
Estos diagramas son grafos dirigidos en los que:
Los nodos representan estados. Hay uno para cada estado (q Q). se dibujan
mediante un crculo o un cuadrado que contiene el nombre del estado.
Los arcos representan transiciones entre estado.
Cada arco lleva una etiqueta que indica que smbolo de entrada provoca la
transicin correspondiente.
Si es necesario distinguir el estado inicial, se le apuntara con una flecha.
Los estados finales irn recuadrados.
Si son muchos los smbolos que hacen que el autmata realice una transicin, se puede
utilizar una notacin reducida como la que se indica a continuacin, donde la transicin
correspondiente tiene lugar ante cualquier smbolo de entrada distinto de a.



Utilizando esta notacin, el diagrama de estados del autmata finito determinista del
ejemplo queda como indica la sig. Figura:

q0 q1
-a
0 1
p
p





Reconocimiento de palabras
Entre las aplicaciones de los autmatas finitos deterministas destaca su capacidad para
reconocer o aceptar palabras y lenguajes, capacidad que comparten con otros dispositivos
abstractos, como las maquinas de turing.
El proceso de reconocimiento tiene lugar siguiendo estas etapas:
El autmata comienza en el estado inicial cuando recibe la primera letra de la
palabra y transita al estado siguiente, de acuerdo con la funcin de transicin.
A partir del estado en el que se quedo el autmata tras procesar un smbolo
siguiente.
Despus de procesar la ultima letra (cuando termina la cadena de entrada), el
autmata ha alcanzado cierto estado. Si dicho estado es final, la palabra se
considera aceptada. En caso contrario, se considera rechazada.
Ejemplo: se va a construir un autmata finito determinista que acepta o reconoce la
palabra pepe (es decir, termina en un estado final cuando sus entradas forman la palabra
pepe). Se utilizara un estado distinto para cada una de las tres cabezas validas (p, pe, pep),
as como un estado final para la palabra completa (pepe) y otro estado que recoja todas
las transiciones con las que no se puede llegar a la palabra buscada.




Se muestra el diagrama de estados del autmata correspondiente. El conjunto de estados,
el alfabeto de entrada, el estado inicial y el conjunto de estados finales pueden deducirse
del diagrama.
Como demuestra el ejemplo es fcil disear un autmata que acepte una palabra
concreta. Al recibir la palabra pepe, el autmata pasara sucesivamente por los estados q0,
q1, q2, q3 y q4. Como q4 es un estado final, la palabra es aceptada por el autmata.
Recurdese que la funcin de transicin debe estar definida para todas las combinaciones
posibles de estado y smbolo de entrada. Como se ha visto en el ejemplo anterior, es
frecuente que, al disear autmatas finitos deterministas, primero se especifiquen las
transiciones para que las que el autmata tiene que terminar en un estado final. Todas las
dems, que impedirn que el autmata acepte la entrada, suelen recogerse en un estado
del que ya no se puede salir con ningn smbolo de entrada, que recibe el nombre de
estado de error o estado sumidero.
En el ejemplo, el estado qe es un estado sumidero. Al recibir la palabra peep, el autmata
pasara sucesivamente por los estados q0, q1, q2, qe y qe. Como qe no es un estado final,
la palabra es rechazada por el autmata.
Es un estado sumidero, todas las transiciones, con todos los smbolos posibles, forman
bucles que permanecen en el mismo estado. Para simplificar los diagramas, a veces se
suprimen el estado sumidero y todos los arcos que se dirigen a l, lo que equivale a dejar
vacas, las casillas correspondientes de la tabla de transicin. Este tipo de simplificaciones
se generaliza en los autmatas finitos no deterministas.
2.- Clasificacin de autmatas finitos
Los autmatas finitos se clasifican en deterministas y no deterministas
Autmatas finitos no deterministas: Es un modelo matemtico formado por:
1.- un conjunto de estados S
2.- un conjunto de smbolos de entrada (el alfabeto de smbolos de entrada)
3.- una funcin de transicin mueve transforma pares estado-smbolo en conjuntos de
estados
4.- un estado S0 que se considera el estado inicial
5.- un conjunto de estados F considerados como estados de aceptacin o finales


Un AFN se puede representar diagramticamente mediante un grafo dirigido etiquetado,
llamado grafo de transiciones, en el que los nodos son los estados y las aristas etiquetadas
que representan la funcin de transicin. Este grafo se parece a un diagrama de
transiciones, pero el mismo carcter puede etiquetar dos o ms transiciones fuera de
estado, y las aristas etiquetadas representan la funcin de transicin. Este grafo se parece
a un diagrama de transiciones, pero el mismo carcter puede etiquetar dos o ms
transiciones fuera de estado, y las aristas pueden etiquetarse con el smbolo especial y
con smbolos de entrada.
Informalmente, un autmata finito no determinista es una extensin de los deterministas
que permite ciertas transiciones prohibidas para estos:
A partir de un estado concreto, no es preciso que el autmata tenga prevista
ninguna transicin a otro estado (o al mismo) en respuesta a todos los smbolos
de entrada posibles. Estos casos se tratan como si existiera un estado de error
no final al que se dirigen todas las transiciones que faltan y del que ya no se
puede salir, en los autmatas no deterministas no es necesario siquiera
suponer que los estados de error existen y estn ocultos.
A partir de un estado concreto, y ante un smbolo de entrada, se permite que el
autmata transite a ms de un estado distinto (transiciones no deterministas).
No es obligatorio consumir un smbolo de entrada, se permite que el autmata
transite a ms de un estado distinto (transiciones no deterministas).
No es obligatorio consumir un smbolo de entrada para que el autmata
cambie de estado (transiciones ).
Transiciones no deterministas
Se llamara transiciones no deterministas las que posibilitan que el autmata pueda
transitar a ms de un estado, a partir de una situacin de partida concreta.
Informalmente, las transiciones no deterministas pueden interpretarse como un
mecanismo que permite al autmata seguir simultneamente dos o ms hiptesis con la
misma entrada. Este mecanismo facilita a veces el diseo de los autmatas finitos.
Ejemplo. Se desea disear un autmata finito que reconozca el lenguaje {gato, gamo}.



Si se utiliza un autmata finito no determinista, no es necesario preocuparse por estas
cosas. Las transiciones no deterministas posibilitan que el diseo se reduzca a construir
dos autmatas finitos deterministas, cada uno de los cuales reconoce una de las dos
palabras, y a unirlos por su estado inicial.
Obsrvese que el inconveniente de complicar el dispositivo de forma no determinista se
compensa por la simplificacin que ofrece para el diseo de este tipo de autmatas: se
dedica una rama a cada palabra del lenguaje y todas se originan en el estado inicial del
autmata.
Obsrvese tambin que el estado de rechazo ha sido reemplazado por el hecho de que no
es preciso que aparezcan en cada estado ramas etiquetadas con todos los smbolos
posibles, lo que simplifica el diagrama, aunque esto puede hacerse tambin en los
autmatas finitos deterministas, como se dijo anteriormente.

Diagrama de estados de un autmata finito no determinista que reconoce el lenguaje
{gato, gamo}
Ejemplo 2: se desea disear un autmata finito que reconozca la unin de dos lenguajes
sobre el alfabeto binario {0, 1}: el de todas las palabras que tienen al menos tres unos y el


de todas las palabras que tienen un nmero par de unos.

Diagrama de estados de un autmata finito no determinista que reconoce el lenguaje del
ejemplo.
Transiciones
Se llama transicin a aquella que hace que el autmata cambie de estado sin consumir
ningn smbolo de entrada. El smbolo , que representa la palabra vaca, se utiliza para
representar la entrada consumida en estas transiciones.

Las transiciones facilitan el diseo de los autmatas finitos: la tcnica descrita en el
apartado anterior puede simplificarse aun ms mediante el uso de estas transiciones. Por
ejemplo, si se desea disear un autmata finito no determinista que reconozca un
lenguaje finito, tal como {asno, gato, gamo} pueden seguirse estos pasos:
1.- se disea un autmata finito determinista para cada palabra.
2.- se combinan todos los autmatas en uno solo no determinista que reconoce el
lenguaje completo:
a) los antiguos estado inciales dejan de serlo.
b) se crea un nuevo estado inicial.
c) se aaden transiciones desde el nuevo estado inicial a los antiguos estados
iniciales.



3.3 Conversin de un AFND a AFD








Obsrvese que el AFD de la figura tiene 2 transiciones desde el estado 0 con la entrada a;
es decir, puede ir al estado 0 o al 1.




Igualmente, el AFN de la figura anterior tiene dos transiciones en desde el estado 0.
Aunque no se haya ilustrado con un ejemplo, una situacin en la que se podra elegir una
transicin con o con un smbolo de entrada real tambin produce ambigedad.
Dichas situaciones, donde la funcin de transicin tiene varios valores, hacen difcil
simular un AFN con un programa de computadora. La definicin de aceptacin
simplemente establece que debe haber algn camino etiquetado por la cadena de
entrada en cuestin que conduzca desde el estado de inicio a un estado de aceptacin.
Pero si hay muchos caminos que deletreen la misma cadena de entrada, quizs haya
que considerarlos todos antes de encontrar uno que conduzca la aceptacin o
descubrir que ningn camino conduce a un estado de aceptacin.
Ahora se introduce un algoritmo para construir a partir de un AFN un AFD que
reconozca el mismo lenguaje. Este algoritmo, a menudo llamado construccin de
subconjuntos, es til para simular un AFN por medio de un programa de
computadora.
En la tabla de transiciones de un AFN, cada entrada es un conjunto de estados; en la
tabla de transiciones de un AFD, cada entrada es tan solo un estado. La idea general
tras la construccin AFN a AFD es que cada estado de AFD corresponde a un conjunto
de estados del AFN. El AFD utiliza un estado para localizar todos los posibles estados
en los que puede estar al AFN despus de leer cada smbolo de la entrada. Es decir,
despus de leer la entrada a1a2an, el AFD se encuentra en un estado que representa
al subconjunto T de los estados del AFN alcanzables desde el estado de inicio del AFN
a lo largo de algn camino etiquetado con a1a2an. El nmero de estados de AFD


puede ser exponencial en el numero de estados del AFN, pero en la prctica este peor
caso ocurre raramente.
Algoritmo 3.2 (construccin de subconjuntos) construccin de un AFD a partir de un AFN.
Entrada: Un AFN.
Salida: Un AFD que acepta el mismo lenguaje.
Mtodo: el algoritmo construye una tabla de transiciones tranD para D. cada estado del
AFD es un conjunto de estados del AFN y se construye tranD de modo que D simulara en
paralelo todos los posibles movimientos que N puede realizar con una determinada
cadena de entrada.
Se utilizan las operaciones de la figura para localizar los conjuntos de los estados del AFN
(s representa un estado del AFN, y T, un conjunto de estados del AFN).

Antes de detectar el primer smbolo de entrada, N se puede encontrar en cualquiera de
los estados del conjunto cerradura (so), donde S0 es el estado de inicio de N.
supngase que exactamente los estados del conjunto T son alcanzables desde s0 con una
secuencia dada de smbolos de entrada, y sea a el siguiente smbolo de entrada. Al ver a,
N puede trasladarse a cualquiera de los estados del conjunto mueve (T, a), despus de ver
la a.
Al inicio, cerradura (s0) es el nico estado dentro de estadosD y no esta marcado;
While haya un estado no marcado T en estados do begin
Marcar T;
For cada smbolo de entrada a do begin
U:=cerradura (mueve (T, a));
If U no esta en estados then
Aadir U como estado no marcado a estados;


tranD [T, a]:= U
end
end
se construyen estados, el conjunto de estados de D, y tran D, la tabla de transiciones de D,
de la siguiente forma. cada estado de D corresponde a un conjunto de estados de AFN en
los que podra estar N despus de leer alguna secuencia de smbolos de entrada, incluidas
todas las posibles transiciones anteriores o posteriores a la lectura de smbolos. El
estado de inicio de D es cerradura (S0). Se aaden los estados y las transiciones a D
utilizando el algoritmo anterior. Un estado de D es un estado de aceptacin si es un
conjunto de estados de AFN que contenga al menos un estado de aceptacin de N.
Meter todos los estados de T en pila;
Inicializar cerradura (T) a T;
While pila no este vacia do begin
Sacar t, el elemento del tope, de pila;
For cada estado u con una arista desde t a u etiquetada con do
If u no esta en cerradura (T) do begin
Aadir u a cerradura (T);
Meter u en pila
End
End
El clculo de cerradura (T) es un proceso tpico de bsqueda en un grafo de nodos
alcanzables desde un conjunto dado de nodos. En este caso, los estados de T son el
conjunto dado de nodos, y el grafo esta compuesto solamente por las aristas del AFN
etiquetadas por . Un algoritmo sencillo para calcular cerradura- (T) utiliza una
estructura de datos tipo pila para guardar estados en cuyas aristas no se hayan buscado
transiciones etiquetadas con . Este procedimiento se muestra en el algoritmo anterior.


















3.4 Representacin de ER usando AFND































3.5 Minimizacin de estados en un AF







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 ser equivalente.
Un AFD est minimizado, si todos sus estados son distinguibles y alcanzables. Un
algoritmo de minimizacin de AFD es el siguiente:
Eliminar los estados inaccesibles del autmata.
Construir una tabla con todos los pares (p, q) de estados restantes.
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.
Para cada par (p, q) y cada smbolo a del alfabeto, tal que r = (p,a) y s = (q,a):
Si (r, s) ya ha sido marcado, entonces p y q tambin son distinguibles, por lo tanto marcar
la entrada (p, q).
De lo contrario, colocar (p, q) en una lista asociada a la entrada (r, s).
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).11 Sin embargo, el problema de minimizar un autmata finito no
determinista es NP-completo y PSPACE-completo.12 13Ejemplo
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.

También podría gustarte