150 likes | 359 Views
Autómatas Finitos. d. d. d. d. d. n,d,q. d. n. n. n. n. n. n. 30. 25. 20. 5. 10. 0. 15. q. q. q. q. q. q. Ejemplo de una máquina expendedora de periódicos (que no dá cambio). n: niquel (5c) d: dime (10c) q: quarter (25c). El periódico cuesta 30 centavos.
E N D
d d d d d n,d,q d n n n n n n 30 25 20 5 10 0 15 q q q q q q Ejemplo de una máquina expendedora de periódicos (que no dá cambio) n: niquel (5c) d: dime (10c) q: quarter (25c) El periódico cuesta 30 centavos
Definición informal de autómata • Máquina: es una secuencia o ciclo de acciones. • Autómata finito: es un modelo matemático de una máquina el cual tiene un conjunto finito de estados y su “control” se mueve de estado a estado (transiciones). • Autómata determinista: el autómata no puede estar en más de un estado a la vez. Las transiciones se efectúan en respuesta a “entradas” o “estímulos” externos. Estas entradas son símbolos de un alfabeto. • Autómata no-determinista: el autómata puede estar en varios estados al mismo tiempo. Las transiciones de un estado a otro pueden ocurrir de manera espontánea, es decir, en respuesta a la palabra vacía como entrada. • Veremos que un autómata no-determinista se puede convertir en un autómata determinista equivalente (¿?) el cual puede ser “ejecutado” por una computadora convencional.
Cinta de entrada b a a b b a Cabeza lectora q0 Control q1 Luz de aceptación qn q2 qi q3 q4 Caricatura de un autómata finito
Definición formal de un AFD Un Autómata Finito Determinístico (AFD) es un quinteto (K, , , s0, F) donde • K es un conjunto finito no-vacío de estados. • es el alfabeto de entrada (conjunto finito no-vacío de símbolos). • : K K es la función de transición. • s0 K es el estado inicial. • F K es el conjunto de estados finales. Determinístico: para cada combinación de sK y a, la función especifica uno y sólo un estado de transición.
a Notación gráfica • Estado inicial: > • Estado final: • Transiciones: a a q1 > q0 b b a b q2
Notaciones • Un AFD puede considerarse como un grafo dirigido G = (V, E) • V = S • E = {((s, a), t) | s, t S, a y (s,a) = t} • La función de transición puede expresarse como una tabla. Por ejemplo
¿Para que sirven los AFD? • Si al “procesar” una palabra completa el estado al que se llega es uno de los estados finales, entonces decimos que el AFD acepta la palabra. Un poco más formalmente: extendemos la función a una función para cubrir cadenas en lugar de sólo letras. Así, si s es un estado y w es una cadena, entonces (s, w) es el estado en el que se termina cuando se empieza en s después de procesar en orden todas las letras de la palabra w. La función es llamada función de transición extendida. • Decimos que un AFD M = (K, , , s0, F) acepta una palabra w si y sólo si (s0, w) F. • Decimos que un AFD M = (K, , , s0, F) rechaza una palabra w si y sólo si (s0, w) F. • El lenguaje aceptado por una máquina M = (K, , , s0, F) es el conjunto de palabras aceptadas por dicha máquina. El lenguaje aceptado por M se denota por L(M), es decir, L(M) = {w* | (s0, w) F}
Ejemplo 1 q0 q1 0 1 0 Este AFD acepta palabras con un número impar de 1’s
EjercicioDiseñar un AFD que acepta las palabras con un número par de a’s y un número par de b’s. • La función de los estados es la de contar el número de a’s y el número de b’s, pero contarlas módulo 2, es decir, los estados servirán para recordar si el número de a’s que se han leído es par o impar y también recordar lo correspondiente para el número de b’s. Hay cuatro estados. • q0: tanto el número de a’s como de b’s que se han leído es par. • q1: el número de a’s es par pero el número de b’s es impar. • q2: el número de a’s es impar pero el número de b’s es par. • q3: el número de a’s es impar y el número de b’s es impar.
Ejemplo a (1,0) (0,0) a b b b b a (0,1) (1,1) a Acepta cadenas con un número par de a’s y un número par de b’s.
Ejemplo b b a b S0 S1 S2 a a a b b S5 S4 S3 a a,b Acepta palabras que contienen ababb
Ejemplo b a b S0 S1 S2 a a a,b b b S5 S4 S3 a a,b Acepta palabras que contienen ababb o abbbb
a a,b b b q1 q0 q2 a b a,b a a M2 q1 q0 q2 b Acepta palabras que no contienen aa, es decir (b+ab)*(a+). Ejemplos M1 Acepta palabras que contienen bb, es decir (a+b)*bb (a+b)*.
a a a b q2 q1 q3 a a b q0 b b b q5 q4 a,b ¿M1 M2? Acepta palabras que contienen bb o no contienen aa es decir (a+b)*bb (a+b)* + (b+ab)*(a+).