Este documento presenta una introducción a los automatas finitos. Define formalmente un automata finito determinístico como una 5-tupla que incluye un conjunto de estados, un alfabeto de símbolos de entrada, un estado inicial, estados finales y una función de transición. Explica cómo representar un automata finito determinístico mediante una tabla de transiciones o un diagrama de transiciones.
1. ´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automatas Finitos
´
Automata
Finito No-
Determin´stico
ı
Leopoldo Altamirano, Eduardo Morales
´
Automatas
Finitos y
Lenguajes
Formales
INAOE
´
Eliminacion
de las
Transiciones-ǫ
Verano, 2011
(INAOE) Verano, 2011 1 / 60
2. Contenido
´
Introduccion a
´
los Automatas
´
Definicion
formal de un ´ ´
1 Introduccion a los Automatas
´
Automata
Finito
Determin´stico
ı
´
Automata ´ ´
2 Definicion formal de un Automata Finito Determin´stico
ı
Finito No-
Determin´stico
ı
´
Automatas
Finitos y ´
3 Automata Finito No-Determin´stico
ı
Lenguajes
Formales
´
Eliminacion
de las ´
4 Automatas Finitos y Lenguajes Formales
Transiciones-ǫ
´
5 Eliminacion de las Transiciones-ǫ
(INAOE) Verano, 2011 2 / 60
3. ´ ´
Introduccion a los Automatas
´ ´
Introduccion a los Automatas
´
Introduccion a
´
los Automatas
´
Definicion
formal de un Automata: Conjunto de estados + Control → Cambio de
´
´
Automata
Finito estados en respuesta a una entrada.
Determin´stico
ı
Tipo de Control:
´
Automata
Finito No-
Determin´stico
ı
• Determin´stico: Para cada entrada, hay solo un estado
ı ´
´
Automatas ´
al que el automata puede ir desde el estado en que se
Finitos y
Lenguajes encuentre.
Formales
• No determin´stico: Un automata finito es
ı ´
´
Eliminacion
de las no-determin´stico cuando se permite que el AF tenga 0
ı
Transiciones-ǫ
´
o mas estados siguientes para cada par
estado-entrada.
(INAOE) Verano, 2011 3 / 60
4. ´ ´
Introduccion a los Automatas
´
Automatas No-Deterministas
´
Introduccion a
´
los Automatas
´
Definicion
formal de un ˜ ˜
Si anadimos la propiedad de no-determinismo, no anadimos
´
Automata
Finito ´
poder al automata. Osea que no podemos definir ningun
´
Determin´stico
ı
´
lenguaje que no se pueda definir con el automata
´
Automata
Finito No- determin´stico.
ı
Determin´stico
ı
Con la propiedad de no-determinismo se agrega eficiencia
´
Automatas
Finitos y ´
al describir una aplicacion:
Lenguajes
Formales • Permite programar soluciones en un lenguaje de mas
´
´
Eliminacion
de las alto nivel
Transiciones-ǫ
• Hay un algoritmo para compilar un N-DFA en un DFA y
poder ser ejecutado en una computadora convencional
(INAOE) Verano, 2011 4 / 60
5. ´ ´
Introduccion a los Automatas
´
Automatas No-Deterministas
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito • Extension del N-DFA para hacer saltos de un estado a
´
Determin´stico
ı
´
otro espontaneamente, con la cadena vac´a (ǫ) como
ı
´
Automata
Finito No- ´ ´
entrada: ǫN-DFA. Estos automatas tambien aceptan
Determin´stico
ı
´
Automatas
lenguajes regulares.
Finitos y
Lenguajes
• Ejemplo: Compra con dinero-electronico. El cliente
´
Formales
utiliza un archivo (env´o por internet) para pagar al
ı
´
Eliminacion
de las comerciante. El comerciante al recibir el archivo pide al
Transiciones-ǫ
banco que le transfieran el dinero.
(INAOE) Verano, 2011 5 / 60
6. ´ ´
Introduccion a los Automatas
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
´
Tarea: Leer la seccion 2.1.1 – 2.1.5 del libro
(INAOE) Verano, 2011 6 / 60
7. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
´ ´
Definicion Formal de un Automata
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı Un AF se representa como la 5-tupla: A = (Q, Σ, δ, q0 , F ).
´
Automata Donde:
Finito No-
Determin´stico
ı 1 Q es un conjunto finito de estados.
´
Automatas
Finitos y 2 Σ es un alfabeto de s´mbolos de entrada.
ı
Lenguajes
Formales 3 q0 es el estado inicial/de comienzo.
´
Eliminacion
de las 4 ´ ´
F representa cero o mas estados finales/de aceptacion.
Transiciones-ǫ
(INAOE) Verano, 2011 7 / 60
8. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
´ ´
funcion de Transicion
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito 1 ´ ´ ´
δ es una funcion de transicion. Esta funcion:
Determin´stico
ı
• Toma un estado y un s´mbolo de entrada como
ı
´
Automata
Finito No- argumentos.
Determin´stico
ı
• Regresa un estado.
´
Automatas • Una “regla” de δ se escribe como δ(q, a) = p, donde q y
Finitos y
Lenguajes p son estados, y a es un s´mbolo de entrada.
ı
Formales
´
• Intuitivamente: Si el AF esta en un estado q, y recibe
´
Eliminacion
de las una entrada a, entonces el AF va al estado p (nota:
Transiciones-ǫ
q = p OK).
(INAOE) Verano, 2011 8 / 60
9. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Ejemplo: Un Automata A que acepta
´
Automata L = {x01y|x, y ∈ {0, 1}∗ }
Finito No-
Determin´stico
ı • El DFA acepta cadenas que tienen 01 en alguna parte
´
Automatas de la cadena
Finitos y
Lenguajes
Formales
• El lenguaje del DFA es el conjunto de cadenas que
´
Eliminacion acepta {w |w tiene la forma “x01y” para algunas
de las
Transiciones-ǫ cadenas x y y que consisten solo de 0’s y 1’s }.
´
(INAOE) Verano, 2011 9 / 60
10. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Tabla de Transiciones
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
El Automata anterior puede ser representado con una tabla
´
Automata de transiciones, definido como A = (q0 , q1 , q2 , 0, 1, δ, q0 , q1 ),
Finito No-
Determin´stico
ı de la siguiente forma:
´
Automatas 0 1
Finitos y
Lenguajes → q0 q2 q0
Formales
·q1 q1 q1
´
Eliminacion
de las q2 q2 q1
Transiciones-ǫ
(INAOE) Verano, 2011 10 / 60
11. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Diagrama de Transiciones
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı ´
Automata representado con un diagrama de transiciones:
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 11 / 60
12. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Convenciones
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı Se utilizan algunas convenciones para evitar mencionar el
´
Automata tipo de cada nombre, para esto utilizamos las siguientes
Finito No-
Determin´stico
ı reglas:
´
Automatas
Finitos y
• Los s´mbolos de entrada son a, b, etc., o d´gitos.
ı ı
Lenguajes
Formales • Las cadenas de s´mbolos de entrada son u, v, . . . , z.
ı
´
Eliminacion
de las
• Los estados son q, p, etc.
Transiciones-ǫ
(INAOE) Verano, 2011 12 / 60
13. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Diagrama de Transiciones
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Un AF se puede representar por medio de un grafo; los
Determin´stico
ı
nodos representan estados; un arco de p a q se etiqueta
´
Automata
Finito No- con el conjunto de s´mbolos de entrada a tal que
ı
Determin´stico
ı
δ(q, a) = p.
´
Automatas
Finitos y • No hay arco si a no existe.
Lenguajes
Formales
• El estado de inicio se indica con la palabra “start” con
´
Eliminacion
de las una flecha.
Transiciones-ǫ
• Los estados de aceptacion tienen doble c´rculo.
´ ı
(INAOE) Verano, 2011 13 / 60
14. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 14 / 60
15. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
´ ˆ
Funciones de transicion extendidas (δ)
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
Intuitivamente, un FA acepta una cadena w = a1 a2 . . . an si
´
Automata
Finito No- hay una ruta en el diagrama de transiciones que:
Determin´stico
ı
´
Automatas 1 Empieza en el estado de inicio,
Finitos y
Lenguajes 2 ´
Termina en un estado de aceptacion, y
Formales
´
Eliminacion
3 Tiene una secuencia de etiquetas a1 , a2 , . . . , an .
de las
Transiciones-ǫ
(INAOE) Verano, 2011 15 / 60
16. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı Ejemplo: El siguiente AF acepta la cadena 01101:
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 16 / 60
17. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
´ ´
Funcion de Transicion
´
Introduccion a
´
los Automatas ´ ´
Formalmente, extendemos la funcion de transicion δ a
´
Definicion
ˆ
δ(q, w ), donde w puede ser cualquier cadena de s´mbolos
ı
formal de un
´
Automata de entrada:
Finito
Determin´stico
ı ˆ
• Base: δ(q, ǫ) = q (i.e., nos quedamos en el mismo lugar
´
Automata
Finito No- si no recibimos una entrada).
Determin´stico
ı
´
Automatas
´ ˆ ˆ
• Induccion: δ(q, w ) = δ(δ(q, x), a), donde x es una
Finitos y
Lenguajes
cadena, y a es un solo s´mbolo (i.e., ver a donde va el
ı ´
Formales ´
AF con x, luego buscar la transicion para el ultimo ´
´
Eliminacion
de las
s´mbolo a partir de ese estado).
ı
Transiciones-ǫ
• Hecho importante con una prueba inductiva directa: δ ˆ
realmente representa rutas. Esto es, si w = a1 a2 . . . an ,
y δ(pi , ai ) = pi+1 , ∀i = 0, 1, . . . , n − 1, entonces
ˆ
δ(p0 , w ) = pn .
(INAOE) Verano, 2011 17 / 60
18. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
´ ´
Funcion de Transicion
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata • Aceptacion de Cadenas: Un AF A = (Q, Σ, δ, q0 , F )
´
Finito No-
Determin´stico
ı ˆ
acepta la cadena w si δ(p0 , w ) esta en F .
´
´
Automatas
Finitos y • Lenguaje de un AF: Un AF acepta el lenguaje
Lenguajes
Formales
ˆ
L(A) = {w |δ(p0, w ) ∈ F }.
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 18 / 60
19. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Algunas confusiones frecuentes
´
Introduccion a
´
los Automatas
´
Definicion
´
Una gran fuente de confusion cuando se trabaja con
formal de un
´
Automata
´ ´
automatas (o matematicas en general) son los “errores de
Finito
Determin´stico
ı
tipo”:
´
Automata • Ejemplo: No confundir A, un FA, i.e., un programa, con
Finito No-
Determin´stico
ı L(A), el cual es del tipo “conjunto de cadenas”.
´
Automatas
Finitos y
• Ejemplo: El estado de inicio q0 es del tipo “estado” pero
Lenguajes
Formales
´
los estados de aceptacion F son del tipo “conjunto de
´
Eliminacion estados”.
de las
Transiciones-ǫ • Ejemplo enganoso: Es a un s´mbolo o una cadena de
˜ ı
longitud 1? Respuesta: Depende del contexto, i.e., se
ˆ
usa en δ(q, a), donde es un s´mbolo, o en δ(q, a),
ı
donde es una cadena?
(INAOE) Verano, 2011 19 / 60
20. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Ejemplo:
´
Introduccion a
´
los Automatas
´
Un DFA que acepta todas y solo las cadenas que tienen un
´
Definicion
formal de un ´ ´ un numero par de 1’s
numero par de 0’s y tambien ´
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 20 / 60
21. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Ejemplo (cont.)
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 21 / 60
22. ´ ´
Definicion formal de un Automata Finito Determin´stico
ı
Ejemplo (cont.)
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
´ ´
Representacion tabular del automata anterior:
Finito
Determin´stico
ı
0 1
´
Automata · → q0 q2 q1
Finito No-
Determin´stico
ı q1 q3 q0
´
Automatas q2 q0 q3
Finitos y
Lenguajes q3 q1 q2
Formales
´
Eliminacion
de las Ejemplo: Problema 2.2.1.a
Transiciones-ǫ
Ejemplo: Problema 2.2.4.a
(INAOE) Verano, 2011 22 / 60
23. ´
Automata Finito No-Determin´stico
ı
´
Automata Finito No-Determin´stico
ı
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito ´
Un automata finito es no-determin´stico cuando se permite
ı
Determin´stico
ı
´
que el AF tenga 0 o mas estados siguientes para cada par
´
Automata
Finito No- estado-entrada:
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 23 / 60
24. ´
Automata Finito No-Determin´stico
ı
´
Automata Finito No-Determin´stico
ı
´
Introduccion a
´
los Automatas
´
Definicion • En el ejemplo anterior, se puede apreciar que de q0 se
formal de un
´
Automata ´
puede ir a q0 o a q1 con la entrada “0”, y esto hace al
Finito
Determin´stico
ı AF ser no-determinista.
´
Automata
Finito No- • Un NFA puede estar en varios estados a la vez o se
Determin´stico
ı
´
puede ver que “adivina” a que estado ir.
´
Automatas
Finitos y • Por ejemplo, el siguiente automata acepta todas las
´
Lenguajes
Formales cadenas que terminan en 01:
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 24 / 60
25. ´
Automata Finito No-Determin´stico
ı
´
Automata Finito No-Determin´stico
ı
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito Lo que pasa al procesar como entrada a 00101 es:
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 25 / 60
26. ´
Automata Finito No-Determin´stico
ı
´
Automata Finito No-Determin´stico
ı
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
• Un NFA es una herramienta importante para disenar
˜
´
Automata
Finito
procesadores de cadenas, e.g., grep, analizadores
Determin´stico
ı ´ ´ ˜
lexicos, etc. Es facil disenar NFAs que encuentren
´
Automata
Finito No-
secuencias de palabras en texto.
Determin´stico
ı
• NFA: Formalmente, un NFA es una qu´ntupla
ı
´
Automatas
Finitos y A = (Q, Σ, δ, q0 , F ), donde todo es un DFA, pero δ(q, a)
Lenguajes
Formales nos regresa un conjunto de estados en lugar de un solo
´
Eliminacion estado. De hecho puede ser vac´o, tener un solo estado
ı
de las
Transiciones-ǫ ´
o tener mas estados.
• Un NFA acepta, al igual que un DFA, lenguajes
regulares
(INAOE) Verano, 2011 26 / 60
27. ´
Automata Finito No-Determin´stico
ı
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Por ejemplo, para el NFA que acepta cadenas que acaban
Determin´stico
ı ´ ´
en 01 su funcion de transicion δ es:
´
Automata
Finito No-
Determin´stico
ı 0 1
´
Automatas
Finitos y
→ q0 {q0 , q1 } {q0 }
Lenguajes
Formales
q1 ∅ {q2 }
´
Eliminacion
*q2 ∅ ∅
de las
Transiciones-ǫ
Como puede observarse, todo se especifica en conjuntos.
(INAOE) Verano, 2011 27 / 60
28. ´
Automata Finito No-Determin´stico
ı
´ ˆ
Extension a δ
´
Introduccion a
´
los Automatas
´
Definicion
´
Similarmente a un DFA, podemos definir la funcion de
formal de un transicion ˆ
´ extendida δ como sigue:
´
Automata
Finito
Determin´stico
ı
ˆ
• Base: δ(q, ǫ) = q
´
Automata
Finito No-
• Induccion: Supongamos w es de la forma w = xa,
´
Determin´stico
ı donde a es el s´mbolo terminal y x es el resto de w .
ı
´
Automatas
´ ˆ
Supongamos tambien que: δ(q, x) = {p1 , p2 , . . . , pk }.
Finitos y
k
i=1 δ(pi , a) = {r1 , r2 , . . . , rm }. Entonces
Lenguajes
Formales
´
Eliminacion
∪δ(q, w ) = {r1 , r2 , . . . , rm }.
de las ˆ
En otras palabras calculamos δ(q, w ) primero
Transiciones-ǫ
ˆ x) y despues siguiendo cualquier
calculando δ(q, ´
´ de algunos de esos estados etiquetada con
transicion
a.
(INAOE) Verano, 2011 28 / 60
30. ´
Automata Finito No-Determin´stico
ı
Lenguajes de un NFA
´
Introduccion a
´
los Automatas
´
Definicion
formal de un El lenguaje aceptado por un NFA, A, es:
´
Automata
Finito
ˆ
L(A) = {w |δ(q0 , w ) ∩ F = ∅}.
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
Equivalencia entre un DFA y un NFA
´
Automatas
Finitos y ´ ´
Un NFA es normalmente mas facil de definir, aunque al
Lenguajes
Formales mismo tiempo, para cualquier NFA N existe un DFA D tal
´
Eliminacion
de las
que L(D) = L(N) y viceversa.
Transiciones-ǫ ´
Para esto se usa la construccion de subconjunto que
´ ´
muestra un ejemplo de como un automata se puede
construir a partir de otro.
(INAOE) Verano, 2011 30 / 60
31. ´
Automata Finito No-Determin´stico
ı
´
Construccion de Subconjunto
´
Introduccion a Para cada NFA existe un DFA equivalente (acepta el mismo
´
los Automatas
lenguaje). Pero el DFA puede tener un numero exponencial
´
´
Definicion
formal de un de estados.
´
Automata
Finito Sea N = (QN , Σ, δN , q0 , FN ) un NFA. El DFA equivalente
Determin´stico
ı
´
construido a partir del subconjunto de construccion es
´
Automata
Finito No- D = (QD , Σ, δD , {q0 }, FD ), donde:
Determin´stico
ı
´
Automatas
• |QD | = 2|QN | ; i.e., QD es el conjunto de todos los
Finitos y
Lenguajes
subconjuntos de QN .
Formales
• FD es el conjunto de conjuntos S en QD tal que
´
Eliminacion
de las S ∩ FN = ∅.
Transiciones-ǫ
• Para cualquier S ⊆ QN y a ∈ Σ,
δD (S, a) = p∈S δN (p, a), osea, la union de todos los
´
estados a partir de p con entrada a.
δD ({q1 , q2 , . . . , qk }, a) =
δN (p1 , a) ∪ δN (p2 , a) ∪ . . . ∪ δN (pk , a).
(INAOE) Verano, 2011 31 / 60
32. ´
Automata Finito No-Determin´stico
ı
´
Construccion de Subconjunto
´
Introduccion a
´
los Automatas
´
Definicion ´ ´
La funcion de transicion δD del NFA anterior es:
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 32 / 60
33. ´
Automata Finito No-Determin´stico
ı
´
Construccion de Subconjunto
´
Introduccion a
´
los Automatas
Al existir 3 estados, tenemos 8 subconjuntos. Esto mismo lo
´
Definicion
formal de un podemos poner como:
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 33 / 60
34. ´
Automata Finito No-Determin´stico
ı
´
Construccion de Subconjunto
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
• Lo cual es un DFA (simplemente cambiando la
Determin´stico
ı ´ ´
notacion). Tambien es importante notar que no todos
´
Automata
Finito No-
´
los estados pueden ser alcanzados. En particular, solo
Determin´stico
ı
los estados B, E y F son accesibles, por lo que los
´
Automatas
Finitos y ´
demas los podemos eliminar.
Lenguajes
Formales • Una forma de no construir todos los subconjuntos para
´
Eliminacion ´ ´
despues encontrar que solo unos cuantos son
de las
Transiciones-ǫ ´
accesibles, es construir la tabla solo para los estados
accesibles (lazy evaluation).
(INAOE) Verano, 2011 34 / 60
36. ´
Automata Finito No-Determin´stico
ı
Ejemplo (cont.)
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito Lo que nos queda:
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 36 / 60
37. ´
Automata Finito No-Determin´stico
ı
Prueba de Equivalencia
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata Teorema clave: induccion de |w | (la prueba esta en el
´ ´
Finito No-
Determin´stico
ı
ˆ ˆ
libro): δD ({q0 }, w ) = δN (q0 , w ). Lo que queremos probar es
´
Automatas que si D = (QD , Σ, δD , {q0 }, FD ) es construido a partir del
Finitos y
Lenguajes NFA N = (QN , Σ, δN , q0 , FN ) usando construccion de
´
Formales
subconjuntos, entonces L(D) = L(N).
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 37 / 60
38. ´
Automata Finito No-Determin´stico
ı
Prueba de Equivalencia
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata ´
Queremos probar por induccion en w que
Finito No-
Determin´stico
ı
ˆ ˆ
δD ({q0 }, w ) = δN (q0 , w ). Las dos funciones de transicion
´
´
Automatas regresan conjuntos de estados de QN , pero la determin´stica ı
Finitos y
Lenguajes lo interpreta como uno solo de sus estados QD .
Formales ˆ ˆ
Base: w = ǫ, en este caso δD ({q0 }, ǫ) = δN (q0 , ǫ) = {q0 }.
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 38 / 60
39. ´
Automata Finito No-Determin´stico
ı
Prueba de Equivalencia
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito Induccion: Tomamos w de longitud n + 1 y asumimos que
´
Determin´stico
ı
´
Automata
se cumple el enunciado para n, o sea que
Finito No- ˆ ˆ
δD ({q0 }, x) = δN (q0 , x). Sean estos dos conjuntos de
Determin´stico
ı
´
Automatas
estados = {p1 , p2 , . . . , pk }. Dividimos a w en xa. La
Finitos y ´ ˆ
definicion de δ para el NFA nos dice que:
Lenguajes
Formales ˆ
δN (q0 , w ) = k δN (pi , a).
i=1
´
Eliminacion
de las
´
Por la construccion de subconjuntos:
k
Transiciones-ǫ δD ({p1 , p2 , . . . , pk }, a) = i=1 δN (pi , a)
(INAOE) Verano, 2011 39 / 60
40. ´
Automata Finito No-Determin´stico
ı
Prueba de Equivalencia
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
ˆ
Usando esto, y que δD ({q0 }, x) = {p1 , p2 , . . . , pk } tenemos
´
Automata que:
Finito No-
Determin´stico
ı ˆ ˆ
δD ({q0 }, w ) = δD (δD ({q0 }, x), a) = δD ({p1 , p2 , . . . , pk }, a) =
k
i=1 δN (pi , a)
´
Automatas
Finitos y
Lenguajes Tanto D como N aceptan w cuando contiene un estado en
Formales
´
Eliminacion
FN.
de las
Transiciones-ǫ
Consecuencia: L(D) = L(N).
(INAOE) Verano, 2011 40 / 60
41. ´
Automata Finito No-Determin´stico
ı
Ejemplos
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
Ejemplo: Convertir el siguiente NFA a un DFA
´
Automata
Finito No- 0 1
Determin´stico
ı
→ p {p, q} {p}
´
Automatas
Finitos y q {r } {r }
Lenguajes
Formales r {s} ∅
´
Eliminacion ∗s {s} {s}
de las
Transiciones-ǫ
(INAOE) Verano, 2011 41 / 60
42. ´
Automata Finito No-Determin´stico
ı
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
˜ ´
En este ejemplo un tanto imaginario, se disenara un NFA
formal de un
´
Automata
para aceptar cadenas sobre el alfabeto {1, 2, 3} de tal
Finito
Determin´stico
ı
manera que el ultimo s´mbolo aparezca previamente, sin
´ ı
´
Automata ninguna intervencion ´ de un s´mbolo mas alto entre esa
ı ´
Finito No-
Determin´stico
ı
´
previa aparicion del s´mbolo, e.g.,
ı
´
Automatas . . . 11, . . . 21112, . . . 312123.
Finitos y
Lenguajes • Truco: Utilizar el estado de inicio con el significado
Formales
´
Eliminacion
“Creo que todav´a no se ha visto el s´mbolo que
ı ı
de las
Transiciones-ǫ
corresponde al s´mbolo final”.
ı
• Otros tres estados representando una eleccion de que
´
el s´mbolo con que acaba la cadena se ha visto y se
ı
recuerda de que s´mbolo se trata.
ı
(INAOE) Verano, 2011 42 / 60
43. ´
Automata Finito No-Determin´stico
ı
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 43 / 60
44. ´
Automata Finito No-Determin´stico
ı
Ejemplo (cont.)
´
Introduccion a
´
los Automatas
´
Definicion
formal de un ´
Subconjunto de Construccion del NFA Previo.
´
Automata
Finito
Determin´stico
ı
• Un truco practico importante utilizado por analizadores
´
´
Automata ´
lexicos y otros procesadores de texto es ignorar los
Finito No-
Determin´stico
ı (frecuentemente muchos) estados que no son
´
Automatas accesibles desde el estado de inicio (i.e., no hay ruta
Finitos y
Lenguajes que lleve a ellos).
Formales
• Para el ejemplo anterior de NFA, de los 32
´
Eliminacion
de las
Transiciones-ǫ
subconjuntos posibles, solo 15 son accesibles.
Calculando las transiciones “por demanda” obtenemos
el siguiente δD :
(INAOE) Verano, 2011 44 / 60
46. ´
Automata Finito No-Determin´stico
ı
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
˜
Ejemplo: Disene un NFA que reconozca los siguientes
´
Automatas
conjuntos de cadenas: abc, abd y aacd , suponiendo que el
Finitos y
Lenguajes
alfabeto es {a, b, c, d }
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 46 / 60
47. ´
Automatas Finitos y Lenguajes Formales
´
Automata Finito con Transiciones-ǫ
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
• Sea ǫ una etiqueta en arcos.
´
Automata • No hay ningun cambio extra: la aceptacion de w todav´a
´ ´ ı
Finito No-
Determin´stico
ı se da como la existencia de la ruta desde un estado de
´
Automatas
Finitos y
´
inicio a un estado de aceptacion con etiqueta w .
Lenguajes
Formales
• Pero ǫ puede aparecer en los arcos, y significa que hay
´
Eliminacion ı ´
una cadena vac´a (i.e., no tiene una contribucion visible
de las
Transiciones-ǫ para w ).
(INAOE) Verano, 2011 47 / 60
48. ´
Automatas Finitos y Lenguajes Formales
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 48 / 60
49. ´
Automatas Finitos y Lenguajes Formales
Ejemplo (cont.)
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı • 001 es aceptado siguiendo la ruta q, s, r , q, r , s, con la
´
Automata
Finito No-
etiqueta 0ǫ01ǫ = 001.
Determin´stico
ı
• Podemos disenar un automata que acepte cadenas de
˜ ´
´
Automatas
Finitos y numeros que tengan un signo al inicio opcional,
´
Lenguajes
Formales seguida posiblemente de una cadena de decimales,
´
Eliminacion seguida de un punto decimal y posiblemente de otra
de las
Transiciones-ǫ cadena de decimales.
(INAOE) Verano, 2011 49 / 60
50. ´
Automatas Finitos y Lenguajes Formales
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 50 / 60
51. ´
Automatas Finitos y Lenguajes Formales
ǫ-NFA
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı ´
Mas formalmente: Un ǫ-NFA es una qu´ntuplaı
´
Automata
Finito No- (Q, Σ, δ, q0 , F ), donde δ es una funcion de Q × Σ ∪ {ǫ} al
´
Determin´stico
ı
conjunto potencia de Q.
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion ´
La tabla de transicion del ǫ-NFA del ejemplo anterior es:
de las
Transiciones-ǫ
(INAOE) Verano, 2011 51 / 60
52. ´
Automatas Finitos y Lenguajes Formales
´
Tabla de Transicion
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 52 / 60
53. ´
Eliminacion de las Transiciones-ǫ
´
Eliminacion de las Transiciones-ǫ
´
Introduccion a
´
los Automatas Las transiciones-ǫ son una conveniencia, pero no
´
Definicion
formal de un
incrementan la potencia de los FA’s. Para eliminar las
´
Automata transiciones-ǫ:
Finito
Determin´stico
ı
´
1 Calcular la cerradura transitiva solo para los arcos ǫ.
´
Automata
Finito No- Ejemplo: q −→ {q}; r −→ {r , s}; s −→ {r , s}.
Determin´stico
ı
´
Automatas
2 Si un estado p puede alcanzar al estado q por medio
Finitos y
Lenguajes
´
de arcos ǫ, y existe una transicion de q a r en la entrada
Formales ˜´ ´
a (no ǫ), entonces anadase una transicion de p a r con
´
Eliminacion
de las
la entrada a.
Transiciones-ǫ
3 Convertir el estado p en un estado de aceptacion ´
siempre y cuando p pueda alcanzar algun estado de
´
´
aceptacion q por medio de arcos ǫ.
4 Eliminar todas las transiciones-ǫ.
(INAOE) Verano, 2011 53 / 60
54. ´
Eliminacion de las Transiciones-ǫ
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 54 / 60
55. ´
Eliminacion de las Transiciones-ǫ
Transiciones Extendidas
´
Introduccion a
´
los Automatas
De la misma forma como lo hicimos anteriormente,
´
Definicion
formal de un podemos definir las transiciones extendidas para ǫ-NFA.
´
Automata
Finito ˆ
• Base: δ(q, ǫ) = ECLOSE (q)
Determin´stico
ı
´
Automata ´ ˆ
• Induccion: δ(q, xa) = ˆ
p∈δ(δ(q,x),a) ECLOSE (p)
Finito No-
Determin´stico
ı ˆ
Por ejemplo, δ(q0 , 5.6) es:
´
Automatas
Finitos y
ˆ 0 , ǫ) = {q0 , q1 } = ECLOSE (q0)
δ(q
Lenguajes
Formales
δ(q0 , 5) ∪ δ(q1 , 5) = {q1 , q4 }
´
Eliminacion ECLOSE (q1) ∪ ECLOSE (q4) = {q1 , q4 }
de las
Transiciones-ǫ δ(q1 , .) ∪ δ(q4 , .) = {q2 , q3 }
ˆ
ECLOSE (q2) ∪ ECLOSE (q3) = {q2 , q3 , q5 } = δ(q0 , 5.6)
δ(q2 , 6) ∪ δ(q3 , 6) ∪ δ(q5 , 6) = {q3 }
ˆ
δ(q0 , 5.6) = ECLOSE (q3) = {q3 , q5 }
(INAOE) Verano, 2011 55 / 60
56. ´
Eliminacion de las Transiciones-ǫ
Equivalencias
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı • Como antes, el lenguaje aceptado por un ǫ-NFA, E, es:
´
Automata ˆ
L(E ) = {w |δ(q0 , w ) ∩ F = ∅}, osea todas las cadenas
Finito No-
Determin´stico
ı w que van de un estado inicial q0 a al menos un estado
´
Automatas
Finitos y
final.
Lenguajes
Formales
• Se puede demostrar que se puede construir un DFA a
´
Eliminacion partir de un ǫ-NFA siguiendo un esquema parecido al
de las
Transiciones-ǫ ´
de construccion de subconjuntos visto para NFA.
(INAOE) Verano, 2011 56 / 60
57. ´
Eliminacion de las Transiciones-ǫ
Equivalencias
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito
Determin´stico
ı QD = {S|S ⊆ QE ∧ S = ECLOSE (S)}
´
Automata qD = ECLOSE (q0)
Finito No-
Determin´stico
ı FD = {S|S ⊆ QD ∧ S ∩ FE = ∅}
´
Automatas δD (S, a) = { ECLOSE (p)|p ∈ δ(t, a), t ∈ S}
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
lo que se calcula para todos los a ∈ Σ y conjuntos S ∈ QD .
(INAOE) Verano, 2011 57 / 60
58. ´
Eliminacion de las Transiciones-ǫ
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
El DFA correspondiente al ǫ-NFA de numeros decimales
´
Finito
Determin´stico
ı
(omitiendo todas las transiciones a estados “muertos”) es:
´
Automata
Finito No-
Determin´stico
ı
´
Automatas
Finitos y
Lenguajes
Formales
´
Eliminacion
de las
Transiciones-ǫ
(INAOE) Verano, 2011 58 / 60
59. ´
Eliminacion de las Transiciones-ǫ
Equivalencias
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Finito Se puede demostrar que un lenguaje L es aceptado por
Determin´stico
ı
´
Automata
algun ǫ-NFA E si y solo si L es aceptado por un DFA. Para
´
Finito No-
Determin´stico
ı
´
esto, hacia un sentido es facil (cambiando un DFA a un
´
Automatas
ǫ-NFA) y para el otro sentido se hace lo mismo que hemos
Finitos y
Lenguajes
hecho antes, probando con el caso base y el caso inductivo,
Formales donde partimos w = xa, asumimos que es verdad para x y
´
Eliminacion
de las
probamos para w , solo que ahora tomando la cerradura ǫ o
Transiciones-ǫ
ECLOSE para los estados.
(INAOE) Verano, 2011 59 / 60
60. ´
Eliminacion de las Transiciones-ǫ
Ejemplo
´
Introduccion a
´
los Automatas
´
Definicion
formal de un
´
Automata
Considere el siguiente ǫ-NFA:
Finito
Determin´stico
ı
ǫ a b c
´
Automata
→p ∅ {p} {q} {r }
Finito No-
Determin´stico
ı
q {p} {q} {r } ∅
´
Automatas ∗r {q} {r } ∅ {p}
Finitos y
Lenguajes
Formales
a) Calcula las ǫ-closure para cada estado
´
Eliminacion b) Cuales son todas las cadenas de 3 o menos caracteres
de las
Transiciones-ǫ ´
aceptadas por el automata
c) Convertirlo a un DFA
(INAOE) Verano, 2011 60 / 60