Teorı́a de Lenguajes Clase Teórica 2 Autómatas Finitos Primer cuartimestre 2016 Material compilado por Julio Jacobo a lo largo de distintas ediciones de la materia Teorı́a de Lenguajes en el Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires, revisado recientemente por Verónica Becher. Bibliografı́a: Capı́tulo 2, Introduction to Automata Theory, Languages and Computation, J. Hopcroft, R. Motwani, J. Ullman, Second Edition, Addison Wesley, 2001. Definición 1 (Autómata Finito Determinı́stico (AFD)). Es una 5-upla hQ, Σ, δ, q0 , F i donde Q es un conjunto finito de estados Σ es un conjunto finito de sı́mbolos que constituye el alfabeto de entrada δ : Q × Σ → Q es la función de transición q0 ∈ Q es el estado inicial F ⊆ Q es el conjunto de estados finales La función de transición puede extenderse para que acepte como segundo argumento cadenas de Σ, o sea δb : Q×Σ∗ → Q, definiéndola de la siguiente manera: b Definición 2 (Función de transición generalizada δ). δb (q, xa) = δ δb (q, x) , a , con x ∈ Σ∗ y a ∈ Σ. δb (q, λ) = q Notar que δb (q, a) = δ δb (q, λ) , a = δ (q, a). Por esto puede utilizarse el sı́mbolo δ para ambos tipos de transición. Definición 3 (Cadena aceptada por un AFD). Una cadena x es aceptada por un AFD M = hQ, Σ, δ, q0 , F i si y solo si δb (q0 , x) ∈ F . Definición 4 (Lenguaje aceptado por un AFD). Dado un AFD M = hQ, Σ, δ, q0 , F i, el lenguaje aceptado por M , L (M ), es el conjunto de cadenas aceptadas por M y se define como n o L (M ) = x ∈ Σ∗ : δb (q0 , x) ∈ F . Definición 5 (Autómata Finito No Determinı́stico (AFND)). Es una 5-upla hQ, Σ, δ, q0 , F i donde Q, Σ, q0 y F tienen el mismo significado que para el AFD, pero δ : Q × Σ → P (Q). La función de transición puede extenderse para que acepte como segundo argumento cadenas de Σ, o sea δb : Q×Σ∗ → P (Q), definiéndola de la siguiente manera: b δb (q, λ) = {q} Definición 6 (Función de transición generalizada δ). n o δb (q, xa) = p ∈ Q : ∃r ∈ δb (q, x) tal que p ∈ δ (r, a) , con x ∈ Σ∗ y a ∈ Σ. 1 Notar que n o δb (q, λa) = p ∈ Q : ∃r ∈ δb (q, λ) tal que p ∈ δ (r, a) = {p ∈ Q : ∃r ∈ {q} tal que p ∈ δ (r, a)} = {p ∈ Q : p ∈ δ (q, a)} = δ (q, a) . Por esto puede utilizarse el sı́mbolo δ para ambos tipos de transición. Definición 7 (Cadena aceptada por un AFND). Una cadena x es aceptada por un AFND M = hQ, Σ, δ, q0 , F i si y solo si δb (q0 , x) ∩ F 6= φ. Definición 8 (Lenguaje aceptado por un AFND). Dado un AFND M = hQ, Σ, δ, q0 , F i, el lenguaje aceptado por M , L (M ), es el conjunto de cadenas aceptadas por M y se define como n o L (M ) = x ∈ Σ∗ : δb (q0 , x) ∩ F 6= φ . Podemos extender la función de transición aún más, haciendo que mapee conjuntos de estados y cadenas en conjuntos de estados. Definición 9. Función de transición δ : P (Q) × Σ∗ → P (Q) dada por [ δ (P, x) = δ (q, x) . q∈P Es trivial ver que, para todo AFD existe un AFND equivalente. Lo que no es tan obvio es que lo inverso también es cierto: Para cada AFND existe un AFD equivalente. Teorema 1 (Equivalencia entre AFND y AFD (Rabin & Scott, 1959)). Dado un AFND M = hQ, Σ, δ, q0 , F i, existe un AFD M 0 = hQ0 , Σ, δ 0 , q00 , F 0 i tal que L (M ) = L (M 0 ). Demostración. Construimos un M 0 = hQ0 , Σ, δ 0 , q00 , F 0 i. Q0 es el conjunto de elementos [q1 , . . . , qi ], con q1 , . . . , qi ∈ Q (corresponden a los elementos de P (Q)). F 0 = {[q1 , . . . , qi ] ∈ Q0 : {q1 , . . . , qi } ∩ F 6= φ} q00 = [q0 ] δ 0 ([q1 , . . . , qj ] , a) = [p1 , . . . , pi ] ⇐⇒ δ ({q1 , . . . , qj } , a) = {p1 , . . . , pi } . Demostremos que para toda cadena x, δ 0 (q00 , x) = [q1 , . . . , qi ] ⇐⇒ δ (q0 , x) = {q1 , . . . , qi } . Demostración por inducción en la longitud de la cadena. b Caso Base: |x| = 0, o sea x = λ. Por definición de δ, δ 0 q00 , λ = [q0 ] y δ (q0 , λ) = {q0 } , por lo que δ 0 (q00 , λ) = [q0 ] ⇐⇒ δ (q0 , λ) = {q0 }. Caso inductivo: suponemos que vale para x tal que |x| = n: δ 0 (q00 , x) = [p1 , . . . , pk ] ⇐⇒ δ (q0 , x) = {p1 , . . . , pk }. Veamos que vale para xa, para a ∈ Σ, δ 0 q00 , xa = δ 0 δ 0 q00 , x , a = [r1 , . . . , ri ] ⇐⇒ por definición de δ 0 en AFD M 0 ∃ [p1 , . . . , pk ] , δ 0 q00 , x = [p1 , . . . , pk ] ∧ δ 0 ([p1 , . . . , pk ] , a) = [r1 , . . . , ri ] ⇐⇒ por HI y y por definición de δ en AFND M ∃ {p1 , . . . , pk } , δ (q0 , x) = {p1 , . . . , pk } ∧ δ ({p1 , . . . , pk } , a) = {r1 , . . . , ri } ⇐⇒ por def δ en AFND M , δ(q0 , xa) = δ(δ(q0 , x), a) = {r1 , . . . , ri } Concluimos,δ 0 (q00 , xa) = [r1 , . . . , ri ] ⇐⇒ δ (q0 , xa) = {r1 , . . . , ri } . 2 Dado un AFND M = hQ, Σ, δ, q0 , F i construimos AFD M 0 = hQ0 , Σ, δ 0 , q00 , F 0 i tal que L (M ) = L (M 0 ). Ahora nos queda probar que L (M ) = L (M 0 ) . x ∈ L (M ) ⇐⇒ δ (q0 , x) = {q1 , . . . , qi } ∧ {q1 , . . . , qi } ∩ F 6= φ ⇐⇒ δ 0 (q00 , x) = [q1 , . . . , qi ] ∧ [q1 , . . . , qi ] ∈ F 0 ⇐⇒ x ∈ L (M 0 ) . Definición 10 (Autómata Finito No Determinı́stico con transiciones λ). AFND-λ es una 5-upla hQ, Σ, δ, q0 , F i donde Q, Σ, q0 y F tienen el mismo significado que para el AFND, pero δ : Q × (Σ ∪ {λ}) → P (Q). Definición 11 (Clausura λ de un estado). La clausura λ de un estado q, Clλ (q), es el conjunto de estados alcanzable desde q, siguiendo sólo transiciones λ. Usamos la noción de clausura transitivo-reflexiva para definir Clλ . Sea R ⊆ Q × Q tal que (q, p) ∈ R si y solo si p ∈ δ(q, λ). Luego, Clλ (q) = {p : (q, p) ∈ R∗ } Notar que el estado q pertenece a su clausura λ. Definición 12 (Clausura λ de un conjunto de estados P ). Clλ (P ) = [ Clλ (q) . q∈P La función de transición puede extenderse para que acepte como segundo argumento cadenas en Σ, o sea δb : Q×Σ∗ → P (Q). b. δb (q, λ) = Clλ (q) Definición 13 (Función de transición extendida δ) n o δb (q, xa) = Clλ p : ∃r ∈ δb (q, x) tal que p ∈ δ (r, a) con x ∈ Σ∗ y a ∈ Σ, o sea, δb (q, xa) = Clλ [ δ (r, a) b r∈δ(q,x) Extendiendo la definición de δ y δb a conjuntos de estados, tenemos que S δ (P, a) = δ (q, a) q∈P S b δb (P, x) = δ (q, x) q∈P b Utilizando esto último, δ (q, xa) puede escribirse como b b δ (q, xa) = Clλ δ δ (q, x) , a . Notar que δb (q, a) puede ser distinto de δ (q, a): δb (q, a) = Clλ δ δb (q, λ) , a = Clλ (δ (Clλ (q) , a)) 6= δ (q, a) , Definición 14 (Cadena aceptada por un AFND-λ). Se dice que una cadena x es aceptada por un AFND-λ M = hQ, Σ, δ, q0 , F i si y solo si δb (q0 , x) ∩ F 6= φ. Definición 15 (Lenguaje aceptado por un AFND-λ). Dado un AFND-λ M = hQ, Σ, δ, q0 , F i, el lenguaje aceptado por M , L (M ), es el conjunto de cadenas aceptadas por M y se define como n o L (M ) = x : δb (q0 , x) ∩ F 6= φ . 3 Teorema 2 (Equivalencia entre AFND y AFND-λ). Dado un AFND-λ M = hQ, Σ, δ, q0 , F i, hay un AFND M 0 = hQ, Σ, δ 0 , q0 , F 0 i que reconoce el mismo lenguaje. Demostración. Definimos δ 0 (q, a) = δb (q, a) . F F0 = F ∪ {q0 } , si Clλ (q0 ) ∩ F = ∅ , si no. Observar que F 0 ⊇ F . Dado AFND-λ M = hQ, Σ, δ, q0 , F i construimos AFND M 0 = hQ, Σ, δ 0 , q0 , F 0 i. Demostremos que δ 0 (q0 , x) = δb (q0 , x) para |x| ≥ 1., por inducción en la longitud de la cadena. Caso base |x| = 1. Sea x = a. Por definición de δ 0 , δ 0 (q, a) = δb (q, a), Caso inductivo |x| > 1. Sea x = wa y asumamos que vale para w. δ 0 (q0 , wa) = δ 0 (δ 0 (q0 , w), a) = δ 0 (δb (q0 , w), a), | {z } | {z } las expresiones tomadas por las llaves son iguales por h.i. Por otro lado, si P ⊆ Q δ 0 (P, a) = [ δ 0 (q, a) = q∈P [ δb (P, a) = δb (P, a) q∈P Por lo tanto, haciendo P = δb (q0 , w), tenemos que b δb (q0 , w) , a) = δ(q b 0 , wa). δ 0 (q0 , wa) = δ 0 (δb (q0 , w) , a) = δ( Dado AFND-λ M = hQ, Σ, δ, q0 , F i construimos AFND M 0 = hQ, Σ, δ 0 , q0 , F 0 i. Veamos que L (M 0 ) = L (M ). Para x = λ, Clλ (q0 ) ∩ F 6= ∅ =⇒ q0 ∈ F 0 ⇐⇒ λ ∈ L (M 0 ) ⇐⇒ q0 ∈ F 0 =⇒ q0 ∈ F ∨ Clλ (q0 ) ∩ F 6= ∅ Dado que q0 ∈ F ∨ Clλ (q0 ) ∩ F 6= ∅ | {z } | {z } ⇓ ⇓ Clλ (q0 ) ∩ F 6= ∅ λ ∈ L (M ) ⇓ λ ∈ L (M ) concluimos λ ∈ L (M 0 ) ⇔ λ ∈ L (M ) . λ ∈ L (M ) ⇐⇒ λ ∈ L (M 0 ) Dado AFND-λ M = hQ, Σ, δ, q0 , F i construimos AFND M 0 = hQ, Σ, δ 0 , q0 , F 0 i. Veamos ahora que L (M 0 ) = L (M ), para x 6= λ. x ∈ L (M ) ⇐⇒δb (q0 , x) ∩ F 6= ∅, por aceptación en AFND-λ =⇒δ 0 (q0 , x) ∩ F 0 6= ∅ , por el paso intermedio y porque F ⊆ F 0 =⇒x ∈ L (M 0 ) . x ∈ L (M 0 ) ⇐⇒δ 0 (q0 , x) ∩ F 0 6= ∅, por aceptación en AFND =⇒δb (q0 , x) ∩ F 6= ∅ ∨ δb (q0 , x) ∩ {q0 } = 6 ∅ ∧ Clλ (q0 ) ∩ F 6= ∅ por lema anterior y por def. de F 0 =⇒x ∈ L (M ) ∨ x ∈ L (M ) =⇒x ∈ L (M ) . 4