Unidad 3- Automatas

15
27/10/15 1 ALGORITMOS PARA PROGRAMACIÓN EN TIEMPO REAL AUTÓMATAS. AUTÓMATAS Por autómata en la matemática discreta entendemos una especie de computadora abstracta que dada una entrada produce una salida, calcula alguna función. Generalmente la entrada es una cadena de símbolos de un alfabeto, y la salida también, posiblemente sobre otro alfabeto. Un autómata finito (AF) o máquina de estado finito es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir una salida. 2

description

Autómatas

Transcript of Unidad 3- Automatas

Page 1: Unidad 3- Automatas

27/10/15

1

ALGORITMOS PARA PROGRAMACIÓN EN TIEMPO REAL

AUTÓMATAS.

AUTÓMATAS• Por autómata en la matemática discreta entendemos una

especie de computadora abstracta que dada una entrada produce una salida, • calcula alguna función. • Generalmente la entrada es una cadena de símbolos de

un alfabeto, y la salida también, posiblemente sobre otro alfabeto.

• Un autómata finito (AF) o máquina de estado finito es un modelo computacional que realiza cómputos en forma automática sobre una entrada para producir una salida.

2

Page 2: Unidad 3- Automatas

27/10/15

2

AUTÓMATAS• Este modelo está conformado por:

• un alfabeto, un conjunto de estados finitos, una función de transición, un estado inicial y un conjunto de estados finales.

• Su funcionamiento se basa en una función de transición, 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 autómata se desplaza de un estado a otro, para finalmente detenerse en un estado final o de aceptación, que representa la salida

3AUTÓMATASUn autómata finito es un conjunto de estados y un control que se mueve de un estado a otro en respuesta a entradas externas.

• Los autómatas sirven para describir el comportamiento de otras maquinas o sistemas.

• El autómata responde a ciertas acciones o estímulos del mundo exterior.

4

Page 3: Unidad 3- Automatas

27/10/15

3

AUTÓMATASLos autómatas finitos se pueden clasificar en función del tipo de control como:

• Deterministas, el autómata únicamente puede estar en un estado en un momento determinado.

• No Deterministas, el autómata puede estar en varios estados simultáneamente.

Ambos definen los mismos lenguajes, sin embargo los No deterministas permiten describir más eficientemente determinados problemas.

5AUTÓMATAS¿Cómo procesa entradas un AFD? • La entrada a un AF es un conjunto de símbolos tomados del

alfabeto de entrada ∑, no hay limite en tamaño de la cadena.

• Existe un “puntero” que en cada momento apunta a una posición de la cadena de entrada.

• El autómata está siempre en un estado de Q, inicialmente se encuentra en el estado q0.

6

Page 4: Unidad 3- Automatas

27/10/15

4

AUTÓMATAS¿Cómo procesa entradas un AFD? • En cada paso el autómata lee un símbolo de la entrada y según

el estado en el que se encuentre, cambia de estado y pasa a leer otro símbolo.

• Asi sucesivamente hasta que se terminen de leer todos los símbolos 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.

7AUTÓMATASDEFINICIÓN DE AFD. Un autómata finito determinista es una quíntupla que denotaremos de manera genérica por M=(Q,Σ,q0,δ,F) donde:

• Q es un conjunto finito cuyos elementos llamaremos estados.• Σ es un alfabeto que llamamos alfabeto de entrada.• Q0 ∈ Q es un estado señalado que llamamos estado inicial.F

es un subconjunto de Q no vacío, cuyos elementos llamamos estados finales.

• δ es una aplicación de Q×Σ àQ , que llamamos función de transición.

8

Page 5: Unidad 3- Automatas

27/10/15

5

AUTÓMATASDEFINICIÓN DE AFD. • La función de transición es la verdadera clave de la

máquina. Obsérvese que es una aplicación, así cada pareja posible formada por un estado y un símbolo del alfabeto debe tener una imagen y sólo una, es decir δ (q,a) ∈ Q, cualquiera que sean q ϵ Q y a ∈ Σ.

Ejemplo:

9AUTÓMATASEjemplo:El autómata de la figura describe el comportamiento de un semáforo peatonal. Inicialmente el semáforo está en rojo para el peatón y se supone que acaba de pasar a rojo. Se quiere garantizar que el semáforo permanezca en rojo al menos cuatro ticks de reloj. Esto quiere decir que si el peatón oprime el botón y el semáforo 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 sólo debe esperar dos ticks; y si han pasado 10 cambia inmediatamente. Oprimir el botón más de una vez no afecta el comportamiento. El semáforo permanece en verde por cuatro ticks de reloj.

10

Page 6: Unidad 3- Automatas

27/10/15

6

AUTÓMATASEjemplo:

11AUTÓMATASREPRESENTACIÓN DE UN AFD

Dos maneras de representar un AFD • Con una tabla:

• Se ponen tantas filas como estados, y tantas columnas como símbolos 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 símbolo a del alfabeto ponemos el estado δ (q,a).

• Con un diagrama:

12

Page 7: Unidad 3- Automatas

27/10/15

7

AUTÓMATASREPRESENTACIÓN DE UN AFD

Dos maneras de representar un AFD • Con una tabla:• Con un diagrama:

• Cada estado no final se representa con un círculo; cada estado final se representa con un doble círculo; se señala el estado inicial con una flecha entrando, sin etiqueta; por cada transición δ (q,a)=t se dibuja una flecha dirigida del estado de partida q al de llegada llegada t etiquetada a.

13AUTÓMATASAUTÓMATA FINITO NO DETERMINISTA (AFND).

• En los ADF se sabe exactamente cuál es la transición que se debe llevar a cabo ante una determinada situación.

• En los Autómatas Finitos No Deterministas, se pueden tener varias opciones.

La diferencia fundamental es que ahora permitiremos que desde un estado, con un símbolo del alfabeto se alcance no un único estado, sino un subconjunto de estados (incluido el vacío).

14

Page 8: Unidad 3- Automatas

27/10/15

8

AUTÓMATASAUTÓMATA FINITO NO DETERMINISTA (AFND). DEFINICIÓN Formalmente un autómata finito no determinista M es una quíntupla (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 señalado que llamamos estado inicial• F es un subconjunto de Q, no vacío, cuyos elementos llamamos

estados finales • δ es una aplicación de Q× Σ àP(Q), que llamamos función de

transición Ahora, desde un estado, con un símbolo de entrada se alcanza un conjunto de estados. Con símbolos δ (q,a) = A ∈Q.

15AUTÓMATASAUTÓMATA FINITO NO DETERMINISTA (AFND). Ejemplo

Sea M5= (Q, Σ, q0 ,δ, F) siendo Q={p,q,r,s}, Σ = {0,1,2}, sea p el estado inicial, F={q,s} y la función de transición δ dada por:

16

Page 9: Unidad 3- Automatas

27/10/15

9

AUTÓMATASAUTÓMATA FINITO NO DETERMINISTA (AFND). REPRESENTACIÓN DE UN AFND. Dos maneras de representar un AFND • Con una tabla: se ponen tantas filas como estados, y tantas columnas

como símbolos 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 símbolo a del alfabeto ponemos el conjunto de estados dado por δ (q,a).

• Con un diagrama:

17AUTÓMATASAUTÓMATA FINITO NO DETERMINISTA (AFND). REPRESENTACIÓN 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 señala 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

Page 10: Unidad 3- Automatas

27/10/15

10

AUTÓMATASAUTÓMATA FINITO NO DETERMINISTA (AFND). REPRESENTACIÓN 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.

Observemos también que tanto la tabla como el diagrama contienen toda la información del autómata.

19AUTÓMATASAUTÓMATA FINITO NO DETERMINISTA (AFND). REPRESENTACIÓN 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.

Observemos también que tanto la tabla como el diagrama contienen toda la información del autómata.

20

Page 11: Unidad 3- Automatas

27/10/15

11

AUTÓMATASAUTÓMATA FINITO NO DETERMINISTA (AFND). Ejemplo.

Representación de un AFND utilizando un diagrama de transiciones. La descripción del AFND es mediante una tabla de transiciones.

21AUTÓMATASEjemplo. • Se desea diseñar un dispositivo que, dada una cadena

formada por números binarios, encuentre las ocurrencias de la palabra clave 1011 y sirva de base para un recuento de sus apariciones.

• Nótese que si la cadena fuera, por ejemplo, 0101011011011, se detectaría dos ocurrencias de la palabra clave, no considerando el “1” de la séptima posición como inicio de otra ocurrencia.

• Se pide construir el Autómata Finito Determinista correspondiente.

22

Page 12: Unidad 3- Automatas

27/10/15

12

AUTÓMATASEjemplo. • El objetivo es detectar la palabra clave 1011, tantas veces

como aparezca en la secuencia de entrada de números binarios.

• Por lo tanto, el autómata 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 números detrás.

• No es tarea del autómata finito contabilizar el número de palabras clave, sino de otro dispositivo de orden superior, que incluya este autómata, que las detecta una a una.

23AUTÓMATASEjemplo. • Todo AFD está compuesto por una quíntupla: AFD=(Σ, Q, f, q0, {F})

• El alfabeto de entrada, en este caso es sencillo, pues solo contiene los dígitos 0 y 1 que forman los binarios: AFD=({0,1}, ...)

• El conjunto de estados Q se irá definiendo más adelante en función de las transiciones necesarias, pero al menos necesitaremos un estado inicial, p, y un estado final, t, que ya podemos añadir al conjunto: AFD=({0,1}, {p, t, ...},...)

• La función de transición, f, la representaremos más adelante mediante un diagrama de transiciones: AFD=({0,1}, {p, t, ...}, f, ...)

• El estado inicial ya está definido, denominándose 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

Page 13: Unidad 3- Automatas

27/10/15

13

AUTÓMATASEjemplo. • Dado que la palabra clave está formada por 4 símbolos, que

deben aparecer siempre de forma consecutiva, necesitaremos un estado diferente para reconocer cada subsecuentica de símbolos leídos de la cadena.

• Es decir, • tendremos un estado (q) para determinar que se ha leído la

subsecuencia “1”, • otro estado (r) para indicar la lectura de la subsecuencia “10”, • un estado más (s) para representar el reconocimiento de la

subsecuencia con 3 elementos “101”, y • por último se alcanza el estado final (t) cuando se ha leído la

secuencia completa “1011” de forma consecutiva. • Así, de momento, nos quedaría el siguiente diagrama de

transiciones:

25AUTÓMATASEjemplo.

• Como se trata de un AF determinista hay que definir una transición desde cada estado con cada uno de los símbolos del alfabeto.

• También es necesario añadir dichas transiciones para controlar las situaciones de error, en las que la secuencia inicialmente sea igual a la palabra clave, pero llegado un determinado símbolo varíe, y haya que retroceder hasta el estado adecuado, que no siempre será el inicio.

• Así, añadiendo desde cada estado la transición con el símbolo que faltaba, nos queda:

26

Page 14: Unidad 3- Automatas

27/10/15

14

AUTÓMATASEjemplo.

27AUTÓMATASEjemplo. • Por último, también hay que añadir transiciones desde el

estado final, t, porque el autómata debe reconocer varias palabras clave “1011” y no sólo 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 símbolo de la palabra clave.

Así, finalmente, la defunción formal del autómata finito es: AFD=({0,1},{p,q,r,s,t},f,p,{t}),

siendo f:

28

Page 15: Unidad 3- Automatas

27/10/15

15

AUTÓMATASEjemplo.

29