Professional Documents
Culture Documents
ALGORITMOS PARA
PROGRAMACIN EN
TIEMPO REAL
A UTMATA S.
AUTMATAS
Por autmata en la matemtica discreta entendemos una
especie de computadora abstracta que dada una entrada
produce una salida,
calcula alguna funcin.
Generalmente la entrada es una cadena de smbolos de
un alfabeto, y la salida tambin, posiblemente sobre otro
alfabeto.
1
27/10/15
AUTMATAS
Este modelo est conformado por:
un alfabeto, un conjunto de estados finitos, una funcin de
transicin, un estado inicial y un conjunto de estados
finales.
AUTMATAS 3
2
27/10/15
AUTMATAS
Los autmatas finitos se pueden clasificar en funcin del tipo de
control como:
AUTMATAS 5
3
27/10/15
AUTMATAS
Cmo procesa entradas un AFD?
En cada paso el autmata lee un smbolo de la entrada y segn
el estado en el que se encuentre, cambia de estado y pasa a leer
otro smbolo.
AUTMATAS 7
DEFINICIN DE AFD.
Un autmata finito determinista es una quntupla que
denotaremos de manera genrica por M=(Q,,q 0,,F) donde:
Q es un conjunto finito cuyos elementos llamaremos estados.
es un alfabeto que llamamos alfabeto de entrada.
Q0 Q es un estado sealado que llamamos estado inicial.F
es un subconjunto de Q no vaco, cuyos elementos llamamos
estados finales.
es una aplicacin de Q Q , que llamamos funcin de
transicin.
8
4
27/10/15
AUTMATAS
DEFINICIN DE AFD.
La funcin de transicin es la verdadera clave de la
mquina. Obsrvese que es una aplicacin, as cada pareja
posible formada por un estado y un smbolo del alfabeto debe
tener una imagen y slo una, es decir (q,a) Q, cualquiera
que sean q Q y a .
Ejemplo:
AUTMATAS 9
Ejemplo:
El autmata de la figura describe el comportamiento de un
semforo peatonal. Inicialmente el semforo est en rojo para el
peatn y se supone que acaba de pasar a rojo. Se quiere
garantizar que el semforo permanezca en rojo al menos cuatro
ticks de reloj. Esto quiere decir que si el peatn oprime el botn y
el semforo acaba de pasar a rojo debe esperar cuatro ticks de
reloj para que pase a amarillo (y luego a verde); si han pasado
dos ticks slo debe esperar dos ticks; y si han pasado 10 cambia
inmediatamente. Oprimir el botn ms de una vez no afecta el
comportamiento. El semforo permanece en verde por cuatro
ticks de reloj.
10
5
27/10/15
AUTMATAS
Ejemplo:
AUTMATAS 11
REPRESENTACIN DE UN AFD
Con un diagrama:
12
6
27/10/15
AUTMATAS
REPRESENTACIN DE UN AFD
AUTMATAS 13
7
27/10/15
AUTMATAS
AUTMATA FINITO NO DETERMINISTA (AFND).
DEFINICIN
Formalmente un autmata finito no determinista M es una quntupla
(Q, , q0 ,, F) donde:
Q es un conjunto finito a cuyos elementos llamamos estados
es un alfabeto que llamamos alfabeto de entrada
q0 es un estado sealado que llamamos estado inicial
F es un subconjunto de Q, no vaco, cuyos elementos llamamos
estados finales
es una aplicacin de Q P(Q), que llamamos funcin de
transicin
Ahora, desde un estado, con un smbolo de entrada se alcanza un
conjunto de estados. Con smbolos (q,a) = A Q.
AUTMATAS 15
8
27/10/15
AUTMATAS
AUTMATA FINITO NO DETERMINISTA (AFND).
REPRESENTACIN DE UN AFND.
Dos maneras de representar un AFND
Con una tabla: se ponen tantas filas como estados, y tantas columnas
como smbolos forman el alfabeto. Marcamos el estado inicial con una
flecha de entrada y cada uno de los estados finales con un asterisco. En
el cruce de la fila marcada con el estado q y la columna marcada con el
smbolo a del alfabeto ponemos el conjunto de estados dado por (q,a).
Con un diagrama:
AUTMATAS 17
9
27/10/15
AUTMATAS
AUTMATA FINITO NO DETERMINISTA (AFND).
REPRESENTACIN DE UN AFND.
Observemos que este AFND presenta dos puntos de no
determinismo:
1. En p con 0 que pasa a q y a r,
2. En q con uno que pasa a q y a s.
AUTMATAS 19
10
27/10/15
AUTMATAS
AUTMATA FINITO NO DETERMINISTA (AFND).
Ejemplo.
Representacin de un AFND utilizando un diagrama de
transiciones.
La descripcin del AFND es mediante una tabla de transiciones.
AUTMATAS 21
Ejemplo.
Se desea disear un dispositivo que, dada una cadena
formada por nmeros binarios, encuentre las ocurrencias de la
palabra clave 1011 y sirva de base para un recuento de sus
apariciones.
Ntese que si la cadena fuera, por ejemplo, 0101011011011,
se detectara dos ocurrencias de la palabra clave, no
considerando el 1 de la sptima posicin como inicio de otra
ocurrencia.
Se pide construir el Autmata Finito Determinista
correspondiente.
22
11
27/10/15
AUTMATAS
Ejemplo.
El objetivo es detectar la palabra clave 1011, tantas veces
como aparezca en la secuencia de entrada de nmeros
binarios.
Por lo tanto, el autmata finito deber llegar a un estado
final cada vez que detecte una ocurrencia de dicha
palabra clave, por lo que no puede quedarse en el estado
final tras encontrar la primera secuencia 1011, si sigue
habiendo nmeros detrs.
No es tarea del autmata finito contabilizar el nmero de
palabras clave, sino de otro dispositivo de orden superior, que
incluya este autmata, que las detecta una a una.
AUTMATAS 23
Ejemplo.
Todo AFD est compuesto por una quntupla: AFD=(, Q, f, q0, {F})
El alfabeto de entrada, en este caso es sencillo, pues solo contiene
los dgitos 0 y 1 que forman los binarios: AFD=({0,1}, ...)
El conjunto de estados Q se ir definiendo ms adelante en funcin
de las transiciones necesarias, pero al menos necesitaremos un
estado inicial, p, y un estado final, t, que ya podemos aadir al
conjunto: AFD=({0,1}, {p, t, ...},...)
La funcin de transicin, f, la representaremos ms adelante
mediante un diagrama de transiciones: AFD=({0,1}, {p, t, ...}, f, ...)
El estado inicial ya est definido, denominndose p: AFD=({0,1}, {p,
t, ...}, f, p, ...)
Por ltimo, el conjunto de estados finales se completar al final, pero
al menos podemos incluir el que ya hemos definido, llamado t:
AFD=({0,1}, {p, t, ...}, f, p, {t, ...})
24
12
27/10/15
AUTMATAS
Ejemplo.
Dado que la palabra clave est formada por 4 smbolos, que
deben aparecer siempre de forma consecutiva, necesitaremos un
estado diferente para reconocer cada subsecuentica de smbolos
ledos de la cadena.
Es decir,
tendremos un estado (q) para determinar que se ha ledo la
subsecuencia 1,
otro estado (r) para indicar la lectura de la subsecuencia 10,
un estado ms (s) para representar el reconocimiento de la
subsecuencia con 3 elementos 101, y
por ltimo se alcanza el estado final (t) cuando se ha ledo la
secuencia completa 1011 de forma consecutiva.
As, de momento, nos quedara el siguiente diagrama de
transiciones:
AUTMATAS 25
Ejemplo.
13
27/10/15
AUTMATAS
Ejemplo.
AUTMATAS 27
Ejemplo.
Por ltimo, tambin hay que aadir transiciones desde el
estado final, t, porque el autmata debe reconocer varias
palabras clave 1011 y no slo la primera.
Asi, si se lee un 0 se transita al estado p, a esperar que
aparezca un 1 que inicia la palabra clave.
Pero si se lee un 1, se puede transitar directamente al estado
q que se representa la lectura del primer smbolo de la
palabra clave.
As, finalmente, la defuncin formal del autmata finito es:
AFD=({0,1},{p,q,r,s,t},f,p,{t}),
siendo f:
28
14
27/10/15
AUTMATAS
Ejemplo.
29
15