CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Gramáticas independientes del contexto TEORÍA DE LA COMPUTACIÓN LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA Una gramática G = hΣ, Γ, S, →i es independiente del contexto sii todas las reglas de producción tienen una de las dos siguientes formas A→α A → , donde A ∈ Γ. Francisco Hernández Quiroz CFG El lenguaje generado por G se denotará con L(G). Departamento de Matemáticas Facultad de Ciencias, UNAM E-mail: fhq@ciencias.unam.mx Página Web: www.matematicas.unam.mx/fhq Un lenguaje L es independiente del contexto sii existe una gramática G ∈ CFG tal que L = L(G). Facultad de Ciencias Francisco Hernández Quiroz Teoría de la Computación designará el conjunto de gramáticas independientes del contexto. CFL Leng. independientes del contexto 1 / 35 es el conjunto de lenguajes independientes del contexto. Francisco Hernández Quiroz Teoría de la Computación CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Ejemplos Leng. independientes del contexto 2 / 35 Leng. independientes del contexto 4 / 35 Otras definiciones I Considérese una derivación 1 α0 ⇒ α1 ⇒ · · · ⇒ αn . Lenguaje de palindromas. Sea GP = h{a, b}, {S}, S, →P i, donde Esta derivación presupone reglas de producción S →P aSa | bSb | . 2 A1 → β1 . . . An → βn Lenguaje de paréntesis. Sea Sea GD = h{(, )}, {S}, S, →D i, con las siguientes reglas S →D (S) | SS | . tales que αi = γi Ai ηi αi+1 = γi βi ηi . Esta derivación será por la izquierda sii para todo i ≤ n γi ≤ γi+1 Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 3 / 35 Francisco Hernández Quiroz γi ∈ Σ∗ Teoría de la Computación CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Otras definiciones II Otras definiciones III y será por la derecha sii ηi ≤ ηi+1 η i ∈ Σ∗ . Una producción es terminal sii no contiene símbolos no terminales del lado derecho. Una producción es una regla- sii su lado derecho es . Una producción es unitaria sii es de la forma de la forma A → B, con A, B ∈ Γ. Una gramática es propia sii no contiene regla- ni reglas unitarias. Una gramática es no ambigua sii ∀α ∈ L(G), α tiene exactamente una derivación por la izquierda (o por la derecha). Un lenguaje es no ambiguo sii existe una gramática no ambigua que lo genere. De lo contrario, será inherentemente ambiguo. Una gramática es pulcra sii (a) ∀A ∈ Γ . L(A) 6= ∅; (b) ∀A ∈ Γ . ∃α, β ∈ Σ∗ . S → αAβ o S = A. Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 5 / 35 Francisco Hernández Quiroz Teoría de la Computación CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Paréntesis balanceados Leng. independientes del contexto 6 / 35 Lenguajes de Dyck El lenguaje de paréntesis se puede generalizar a los lenguajes de Dyck. Sea A un alfabeto de símbolos terminales y sea Ā una copia de A, es decir: La gramática GD genera el lenguaje de paréntesis balanceados, es decir, α ∈ L(GD ) sii 1 A(α) = C(α); 2 C(β) ≤ A(β) (i) A ∩ Ā = ∅ (ii) existe una biyección de A a Ā. Por ejemplo, si A = {(}, entonces Ā = {)}. El lenguaje de Dyck sobre A es el lenguaje generado por las reglas de producción: S → a1 S ā1 | · · · | an S ān | SS | , ∀β . ∃γ . α = βγ; donde A(α) y C(α) son el número de paréntesis que abren y cierran que aparecen en α, respectivamente. Demostración. Por inducción en la derivación de S ⇒ α. Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto donde A = {a1 , . . . , an } y āi ∈ Ā es la copia de ai . Este lenguaje se denotará con DA∗ . Si |A| = n, una notación alternativa es Dn∗ . 7 / 35 Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 8 / 35 CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Formas normales de Chomsky y de Greibach Ejemplos Los conjuntos de producciones siguientes tienen forma normal de Chomsky y de Greibach (respectivamente) Sea G = hΣ, Γ, S, →i un gramática. G tiene forma normal de Chomsky (CNF) sii todas las producciones tiene la forma A → BC S → AB | AC | SS A → a, C → SB S → (B | (SB | (BS | (SBS donde A, B, C ∈ Γ y a ∈ Σ. A→( B →) B →) y generan el lenguaje de paréntesis balanceados. En cambio, G tiene forma normal de Greibach (GNF) sii todas las producciones tienen la forma Las producciones siguientes generan el lenguaje de palindromas S → AA | BB | AC | BD A → bB1 · · · Bk C → SA S → aA | aSA | bB | bSB A→a D → SB A→a B→b B→b con 0 ≤ k, b ∈ Σ y B1 , . . . , Bk ∈ Γ. Con excepción en ambos casos de . Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 9 / 35 Francisco Hernández Quiroz Teoría de la Computación CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Todas las CFG tienen equivalente en CNF o GNF Leng. independientes del contexto 10 / 35 Lema de gramáticas propias I Sea G ∈ CFG. Entonces, existe una gramática propia G0 tal que Teorema. Sea G ∈ CFG. Entonces existen GC , GG ∈ CFG tales que tienen forma normal de Chomsky y de Greibach, respectivamente, y L(G0 ) = L(G) − {}. Demostración. Sea →0 la relación mínima que L(GC ) = L(GG ) = L(G) − {}. (i) contiene a →; (ii) si A →0 αBβ y B → , entonces A →0 αβ (iii) si A →0 B y B →0 γ, entonces A →0 γ. Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 11 / 35 Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 12 / 35 CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Lema de gramáticas propias II Y sea G0 Transformación a forma normal de Chomsky ∈ CFG como G, pero con las reglas de producción →0 . Una vez que contamos con una gramática propia G00 , podemos construir la FNC : Entonces L(G) = L(G0 ) Obviamente, L(G) ⊆ L(G0 ). Para L(G0 ) ⊆ L(G), baste observar que toda derivación en G se puede realizar en G0 , salvo tal vez en dos pasos. Sea ahora G00 como G0 pero con la relación →00 que prescinde de las producciones unitarias y - que existan en →0 . Entonces 1 Para cada a ∈ Σ, introducimos nuevos no terminales Aa y reglas de producción Aa → a. 2 Sustituimos los terminales por los no terminales del punto anterior en todas las reglas de G00 que no tengan FNC todavía. 3 Dada una regla A → B1 . . . Bk (K > 2), introducimos un nuevo terminal C1 y las reglas L(G00 ) = L(G0 ) − {} = L(G) − {}. A → B1 C1 Esta última afirmación se demuestra considerando que las derivaciones de longitud mínima en G0 prescinden de producciones- y unitarias. Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 13 / 35 C1 → B2 . . . Bk . 4 Repetimos este procedimiento hasta tener sólo reglas con dos no terminales del lado derecho. 5 Eliminamos las reglas del punto anterior que no tengan FNC. Francisco Hernández Quiroz Teoría de la Computación CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Transformación a forma normal de Greibach Lenguaje de paréntesis. Empezamos con forma normal de Chomsky: S → AB | AC | SS ∗ RX ,x = {β ∈ Γ | X ⇒L xβ}. A→( B →). RS,( = (B + C)S ∗ Este lenguaje es regular. Sea GX ,x una gramática lineal por la derecha que lo genere. Sea SX,x el símbolo inicial de esta gramática. Entonces, sustituimos las reglas RC,( = (B + C)S ∗ B RA,( = {} RB,) = {} por reglas Estas producciones nos generan los lenguajes anteriores: A → xSX ,x Y , SS,( → BX | CX SC,( → BY | CY SA,( → SB,) → y agregamos las producciones y símbolos no terminales de GX,x a nuestra gramática. Eliminamos las reglas-. Francisco Hernández Quiroz C → SB Tenemos ahora los siguientes lenguajes RX ,x A → XY 3 14 / 35 Ejemplos I Sea GC una gramática en FNC. Para convertirla a FNG: 1 Para cada X ∈ Γ, considérese el lenguaje 2 Leng. independientes del contexto Teoría de la Computación Leng. independientes del contexto 15 / 35 Francisco Hernández Quiroz X → SX | Y → SY | BZ Teoría de la Computación Z → Leng. independientes del contexto 16 / 35 CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Ejemplos II Teorema del bombeo I Sea L ∈ CFL. Entonces, existe k ∈ N tal que para toda α ∈ L, si k ≤ | α |, entonces α = βγηθφ y γθ 6= Entonces, tenemos las reglas nuevas S → (SA,( B | (SA,( C | (SS,( S SS,( →)SB,) X | (SC,( X SC,( →)SB,) Y | (SC,( Y SA,( → y para toda i ∈ N C → (SS,( B X → (SS,( X | Y → (SS,( Y |)SB,) Z SB,) → A→( B →) Z → βγ i ηθi φ ∈ L. Demostración. Sea G ∈ CFG en FNC y L(G) = L − . Sea Γ el alfabeto de símbolos no terminales de G, con | Γ |= n y sea k = 2n+1 . Entonces, el árbol sintáctico de toda cadena de longitud igual o superior a k debe tener profundidad de n + 1 al menos. Entonces en un camino de longitud máxima de la raíz a las hojas debe aparecer dos veces, al menos, el mismo no terminal. Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 17 / 35 Francisco Hernández Quiroz Teoría de la Computación CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Teorema del bombeo II Leng. independientes del contexto 18 / 35 Ejemplo Considérense los siguientes árboles de derivación: S A Este no terminal puede usarse para definir las cadenas γ y θ. B V A a e X b g W c h f d Árbol de la cadena βγηθφ = abcdefgh Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 19 / 35 Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 20 / 35 CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Definición Ejemplos Lenguajes de Dyck Formas normales T. del bombeo Aplicaciones S A V e X V g W A c W Como con los lenguajes regulares, este teorema se puede utilizar para demostrar que un lenguaje dado no es independiente del contexto. Ejemplos: B h {an bn c n }, por una aplicación directa del teorema, y f {αα} d pues los CFL y los regulares son cerrados bajo intersección y A a e X b c f {an bm an bm } = {αα} ∩ L(a∗ b∗ a∗ b∗ ) d y, obviamente, {an bm an bm } no es independiente del contexto Árbol de la cadena βγ 2 ηθ2 φ = abcdefcdefgh Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 21 / 35 Francisco Hernández Quiroz CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Equivalencia Determinismo Definición Equivalencia Determinismo Autómatas de pila Teoría de la Computación Leng. independientes del contexto 22 / 35 Lenguajes aceptados por NPDA Una configuración de un autómata A ∈ NPDA es una terna (q, α, β) donde q ∈ Q Un autómata de pila no determinista A está formado por un conjunto de estados Q; α ∈ Σ∗ un alfabeto de entrada Σ; β ∈ Γ∗ un alfabeto de pila Γ; La configuración inicial es (s, α, ⊥). Definiremos ahora una relación entre configuraciones: una relación de transición δ ⊆ (Q × (Σ ∪ {}) × Γ) × (Q × Γ∗) un estado inicial s; un símbolo inicial de la pila ⊥; si δ((q, a, B), (r, η)) entonces (q, aα, Bβ) ⇒ (r, α, ηβ) un subconjunto de estados finales F ⊆ Q. si δ((q, , B), (r, η)) entonces (q, α, Bβ) ⇒ (r, α, ηβ) Llamaremos NPDA a los autómatas de pila no deterministas. El lenguaje aceptado por un A ∈ NPDA es L(A) = {α ∈ Σ∗ | ∃f ∈ F . (s, α, ⊥) ⇒∗ (f , , β)} Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 23 / 35 Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 24 / 35 CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Equivalencia Determinismo Definición Equivalencia Determinismo Aceptación por pila vacía Teorema de equivalencia entre CFG y NPDA I (a) Sea G ∈ CFG. Entonces, existe A ∈ NPDA tal que L(G) = L(A). Una definición alternativa del lenguaje aceptado por un A ∈ NPDA es (b) Sea A ∈ NPDA. Entonces, existe G ∈ CFG tal que L(A) = {α ∈ Σ∗ | (s, α, ⊥) ⇒∗ (q, , )} L(G) = L(A). Ambas definiciones son equivalentes y puede construirse un A0 ∈ NPDA que acepte por pila vacía el mismo lenguaje que un A ∈ NPDA que acepte por estado final (y viceversa). Demostración (a) Sea G = hΣ, Γ, S →i en FNG. Sea A = ({q}, Σ, Γ, δ, q, S, q), donde δ((q, a, A), (q, B1 · · · Bk )) Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 25 / 35 Francisco Hernández Quiroz CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Definición Equivalencia Determinismo Definición Equivalencia Determinismo Teorema de equivalencia entre CFG y NPDA II sii A ⇒nG αγ. α ∈ L(G) sii S ⇒∗G α sii (q, α, S) (q, , ) 26 / 35 δ no puede eliminar de la pila a ⊥, es decir δ(q, a, ⊥) = (r, α⊥). (b) Se demuestra primero que para todo A ∈ NPDA existe un A0 ∈ NPDA con un solo estado tal que L(A) = L(A0 ) La aceptación es por estados finales. La aceptación por pila vacía define un conjunto de lenguajes diferente. Un ejemplo de un lenguaje en CFL pero no en DCFL es y una vez construido A0 , los argumentos del caso (a) se pueden aplicar en sentido inverso. Teoría de la Computación Leng. independientes del contexto δ : Q × Σ ∪ {, a} → Q × Γ∗ . sii α ∈ L(A). Francisco Hernández Quiroz Teoría de la Computación A diferencia de los lenguajes regulares, la clase CFL no determinista es estrictamente mayor que la determinista (DCFL). Un autómata determinista de pila D = (Q, Σ, Γ, δ, ⊥, a, s, F ) incluye el símbolo especial a que sirve para indicar el final de la cadena de entrada. Las transiciones están indicadas por la función Entonces ⇒∗A A → aB1 · · · Bk . Determinismo Si puede demostrar por inducción en la longitud de las derivaciones (por la izquierda) que (q, αβ, A) ⇒nA (q, β, γ) sii Leng. independientes del contexto {a, b}∗ − {αα | α ∈ {a, b}∗ } 27 / 35 Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 28 / 35 CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Chomsky-Schützenberger Reconocimiento Chomsky-Schützenberger Reconocimiento El teorema de Chomsky y Schützenberger I El teorema de Chomsky y Schützenberger II Sea L ∈ CFL. Entonces existen n ∈ N, R ∈ REG y un homomorfismo h tal que L = h(Dn∗ ∩ R). y sean 1 Nota: un homomorfismo h : Σ∗ → Γ∗ es una función tal que h(αβ) = h(α)h(β). L(G0 ) cumple además con las siguientes restricciones adicionales: si π = A → BC 1 Para toda π ∈→, el símbolo si π = A → a Teoría de la Computación Leng. independientes del contexto 29 / 35 Francisco Hernández Quiroz CFG Autómatas de pila Algunos teoremas útiles Chomsky-Schützenberger Reconocimiento Chomsky-Schützenberger Reconocimiento El teorema de Chomsky y Schützenberger III Ningún 3 Si π = A → BC entonces 30 / 35 está seguido de ρ[ . 1 [ π 1 está seguido de ρ[ , con ρ = B → β. Si π = A → BC entonces Análogamente para π . 5 Leng. independientes del contexto El teorema de Chomsky y Schützenberger IV 2 [ 4 2 está seguido de π[ . n 2 π 1 ] π Teoría de la Computación CFG Autómatas de pila Algunos teoremas útiles 2 ] 2 Se puede definir fácilmente un isomorfismo con un lenguaje Dn∗ (con un par de tipos de paréntesis por cada regla en →). Obviando el isomorfismo, es claro que L(G0 ) ⊆ Dn∗ . π, ρ, σ, . . . Francisco Hernández Quiroz 2 G0 = hΣ0 , Γ, S, →0 i Demostración. Sea G = hΣ, Γ, S, →i en FNC. Asignaremos letras griegas minúsculas a las producciones de G: Definiremos nuevas producciones 1 1 2 2 A → π[ B π] π[ C π] π0 = 1 1 2 2 A → π[ π] π[ π] 1 Σ0 = { [ , ] , [ , ] | π ∈→} π π π π →0 = {π 0 | π ∈→} Si π = A → a, entonces 1 1 [ π está seguido por la cadena Si A ⇒∗G0 α, entonces α comienza con 1 [ π 1 2 2 ] [ ] πππ . para alguna π = A → γ. 1 h( [ ) = a π 0 RA = {α ∈ Σ ∗ | α satisface 1–5} Leng. independientes del contexto 2 1 y 2 2 h( ] ) = h( [ ) = h( ] ) = . π π π El teorema se sigue directamente de esta definición. Lema. A ⇒∗G0 α sii α ∈ Dn∗ ∩ RA . Suponiendo que el lema anterior es verdadero, entonces definimos el homomorfismo 0 h : Σ ∗ → Σ∗ . Teoría de la Computación 2 Si π = A → a entonces Considérese el siguiente lenguaje regular: Francisco Hernández Quiroz 1 h( [ ) = h( ] ) = h( [ ) = h( ] ) = . π π π π 31 / 35 Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 32 / 35 CFG Autómatas de pila Algunos teoremas útiles CFG Autómatas de pila Algunos teoremas útiles Chomsky-Schützenberger Reconocimiento Lema A ⇒∗G0 Chomsky-Schützenberger Reconocimiento α sii α ∈ Dn∗ ∩ RA Algoritmo de Cocke, Kasami y Younger Es un algoritmo para decidir de manera eficiente si una cadena pertenece a un CFL. Sea L un CFL y sea G = hΣΓ, S, →i una CFG en forma normal de Chomsky tal que L(G) = L. Demostración. Por inducción en n para la dirección ⇒. Para el caso inverso, por inducción en la longitud de las cadenas en Dn∗ ∩ RA . Basta considerar que α= 1 [ β 1 2 ] [ γ 2 ] π ππ π Sea α ∈ L con longitud n. Sean 0 ≤ i < j ≤ n y sea y analizar los dos casos posibles para π, a saber, A → BC o bien A → a. En el primer caso, por hipótesis inductiva, B ⇒∗G0 β y αi,j la subcadena de α que va de la posición i + 1 a la j. Sea Ti,j ⊆ Γ el conjunto de no terminales que generaron αi,j . El algoritmo calcula el valor de todos los Ti,j de manera inductiva. En particular, S ∈ T0,n si S ⇒∗G α. El algoritmo es O(pn3 ), p el número de producciones en G. C ⇒∗G0 γ y además β y γ satisfacen las condiciones 1–5. El segundo caso es aún más simple. Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 33 / 35 Leng. independientes del contexto 35 / 35 CFG Autómatas de pila Algunos teoremas útiles Chomsky-Schützenberger Reconocimiento for i := 0 to n − 1 do Ti,i+1 := ∅; for A → a ∈ G do if a = αi,i+1 then Ti,i+1 := Ti,i+1 ∪ {A} for m := 2 to n do for i := 0 to n − m do Ti,i+m := ∅; for j := i + 1 to i + m − 1 do for A → BC ∈ G do if B ∈ Ti,j ∧ C ∈ Tj,i+m then Ti,i+m := Ti,i+m ∪ {A} Francisco Hernández Quiroz Teoría de la Computación Francisco Hernández Quiroz Teoría de la Computación Leng. independientes del contexto 34 / 35