Vous êtes sur la page 1sur 15

27/10/15

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.

Un autmata finito (AF) o mquina de estado finito es un


modelo computacional que realiza cmputos en forma
automtica sobre una entrada para producir una salida.

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.

Su funcionamiento se basa en una funcin de transicin,


que recibe a partir de un estado inicial una cadena de
caracteres pertenecientes al alfabeto (la entrada), y que va
leyendo dicha cadena a medida que el autmata se
desplaza de un estado a otro, para finalmente detenerse
en un estado final o de aceptacin, que representa la
salida

AUTMATAS

Los autmatas sirven para describir el comportamiento de


otras maquinas o sistemas.

El autmata responde a ciertas acciones o estmulos del


mundo exterior.

Un autmata finito es un conjunto de estados y un control que


se mueve de un estado a otro en respuesta a entradas externas.

27/10/15

AUTMATAS
Los autmatas finitos se pueden clasificar en funcin del tipo de
control como:

Deterministas, el autmata nicamente puede estar en un


estado en un momento determinado.

No Deterministas, el autmata puede estar en varios estados


simultneamente.

Ambos definen los mismos lenguajes, sin embargo los No


deterministas permiten describir ms eficientemente
determinados problemas.

AUTMATAS

La entrada a un AF es un conjunto de smbolos tomados del


alfabeto de entrada , no hay limite en tamao de la cadena.

Existe un puntero que en cada momento apunta a una


posicin de la cadena de entrada.

El autmata est siempre en un estado de Q, inicialmente se


encuentra en el estado q 0.

Cmo procesa entradas un AFD?

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.

Asi sucesivamente hasta que se terminen de leer todos los


smbolos de la cadena de entrada.

Si en ese momento el AF est en un estado qi de F, se dice que


acepta la cadena, en caso contrario la rechaza.

AUTMATAS
DEFINICIN DE AFD.

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.

Un autmata finito determinista es una quntupla que


denotaremos de manera genrica por M=(Q,,q 0,,F) donde:

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
Ejemplo:

10

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.

27/10/15

AUTMATAS

11

Ejemplo:

AUTMATAS
REPRESENTACIN DE UN AFD
Dos maneras de representar un AFD
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 estado (q,a).

Con un diagrama:

12

27/10/15

AUTMATAS
REPRESENTACIN DE UN AFD

13

Dos maneras de representar un AFD


Con una tabla:
Con un diagrama:
Cada estado no final se representa con un crculo; cada estado final
se representa con un doble crculo; se seala el estado inicial con
una flecha entrando, sin etiqueta; por cada transicin (q,a)=t se
dibuja una flecha dirigida del estado de partida q al de llegada
llegada t etiquetada a.

AUTMATAS
AUTMATA FINITO NO DETERMINISTA (AFND).

En los ADF se sabe exactamente cul es la transicin que se


debe llevar a cabo ante una determinada situacin.

En los Autmatas Finitos No Deterministas, se pueden tener


varias opciones.

14

La diferencia fundamental es que ahora permitiremos que desde


un estado, con un smbolo del alfabeto se alcance no un nico
estado, sino un subconjunto de estados (incluido el vaco).

27/10/15

AUTMATAS

15

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
AUTMATA FINITO NO DETERMINISTA (AFND).
Ejemplo

16

Sea M5= (Q, , q0 ,, F) siendo Q={p,q,r,s}, = {0,1,2}, sea p el


estado inicial, F={q,s} y la funcin de transicin dada por:

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:

17

AUTMATAS
AUTMATA FINITO NO DETERMINISTA (AFND).
REPRESENTACIN DE UN AFND.
Dos maneras de representar un AFND
Con una tabla:

Con un diagrama: Cada estado no final se representa con un


circulo; cada estado final se representa con un doble circulo; se
seala el estado inicial con una flecha entrando, sin etiqueta; si
(q,a)=A, por cada estado r A se dibuja una flecha dirigida del
estado de partida q al de llegada r etiquetada a.

18

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.

19

Observemos tambin que tanto la tabla como el diagrama


contienen toda la informacin del autmata.

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.

20

Observemos tambin que tanto la tabla como el diagrama


contienen toda la informacin del autmata.

10

27/10/15

AUTMATAS
AUTMATA FINITO NO DETERMINISTA (AFND).
Ejemplo.
Representacin de un AFND utilizando un diagrama de
transiciones.

21

La descripcin del AFND es mediante una tabla de transiciones.

AUTMATAS

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

Ejemplo.

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.

23

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

25

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

Como se trata de un AF determinista hay que definir una


transicin desde cada estado con cada uno de los smbolos del
alfabeto.
Tambin es necesario aadir dichas transiciones para controlar
las situaciones de error, en las que la secuencia inicialmente sea
igual a la palabra clave, pero llegado un determinado smbolo
vare, y haya que retroceder hasta el estado adecuado, que no
siempre ser el inicio.
As, aadiendo desde cada estado la transicin con el smbolo
que faltaba, nos queda:

26

13

27/10/15

AUTMATAS

27

Ejemplo.

AUTMATAS
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}),

28

siendo f:

14

27/10/15

AUTMATAS

29

Ejemplo.

15

Vous aimerez peut-être aussi