Propiedades de los Lenguajes Libres de Contexto

Propiedades de los Lenguajes Libres de Contexto 15 de junio de 2015 15 de junio de 2015 1/1 Contenido 15 de junio de 2015 2/1 ´ Introduccion
Author:  Víctor Rubio Rey

4 downloads 178 Views 310KB Size

Recommend Stories


Propiedades de los Lenguajes Libres de Contexto
Forma Normal de Chomsky Eliminando Producciones Propiedades de los Lenguajes Libres de Contexto Eliminando Producciones Unitarias Forma Normal de C

PROPIEDADES DE LOS MATERIALES
PROPIEDADES DE LOS MATERIALES UNIDAD 3 PROPIEDADES DE LOS MATERIALES 43 PROPIEDADES DE LOS MATERIALES PROPIEDADES DE LOS MATERIALES Son el conjun

PROPIEDADES DE LOS FLUIDOS
Laboratorio de Yacimiento (063-3121) Propiedades del Crudo PROPIEDADES DE LOS FLUIDOS CRUDO Objetivo: Determinar las propiedades importantes del Cru

PROPIEDADES DE LOS MATERIALES
PROPIEDADES DE LOS MATERIALES JESUS TECNOLOGIA INDUSTRIAL I MARISTAS SEVILLA TECNOLOGIA INDUSTRIAL I PROPIEDADES DE LOS MATERIALES CONTENIDO 01. I

Story Transcript

Propiedades de los Lenguajes Libres de Contexto

15 de junio de 2015

15 de junio de 2015

1/1

Contenido

15 de junio de 2015

2/1

´ Introduccion

´ Introduccion • Simplificacion ´ de CFG’s. Esto facilita la vida, porque

podemos decir que si un lenguaje es CF, entonces tiene ´ una gramatica de una forma especial. • Lema de Pumping para CFL’s. Similar al caso regular.

No lo vamos a cubrir. • Propiedades de cerradura. Algunas, pero no todas, de

las propiedades de cerradura de los lenguajes regulares se cumplen en los CFL’s. • Propiedades de decision. ´ Podemos probar la membres´ıa y vac´ıo, pero por ejemplo, la equivalencia de CFL’s no es decidible.

15 de junio de 2015

3/1

Forma Normal de Chomsky

Forma Normal de Chomsky (CNF) Queremos mostrar que todo CFL (sin ) se genera por una CFG donde todas las producciones son de la forma: A → BC o A → a Donde A, B, y C son variables, y a es un terminal. A esto se le conoce como CNF, y para llegar a ella debemos: 1

Eliminar s´ımbolos no-utiles, aquellos que no aparecen ´ ∗ ´ S ⇒ w, para el s´ımbolo de inicio en ninguna derivacion S y la cadena de s´ımbolos terminales w.

2

Eliminar las producciones-, es decir, producciones de la forma A → .

3

Eliminar producciones unitarias, es decir, producciones de la forma A → B, donde A y B son variables.

15 de junio de 2015

4/1

Forma Normal de Chomsky

Eliminando s´ımbolos no-utiles ´ • Un s´ımbolo X es util ´ ´ para una gramatica

´ G = (V , T , P, S), si hay una derivacion: ∗ ∗ S ⇒G αX β ⇒G w para una cadena terminal w. A los s´ımbolos que no son utiles se les denomina inutiles. ´ ´ ∗

• Un s´ımbolo X es generador si X ⇒G w, para alguna

w ∈ T ∗.



• Un s´ımbolo X es alcanzable si S ⇒G αX β, para algun ´

α, β ⊆ (V ∪ T )∗ .

• Un s´ımbolo util ´ es generador y alcanzable. • Cabe notar que si eliminamos a los s´ımbolos

no-generadores primero, y luego a los no-alcanzables, nos quedamos unicamente con s´ımbolos utiles. ´ ´

15 de junio de 2015

5/1

Forma Normal de Chomsky

Ejemplo • Sea G: S → AB|a, A → b. • S y A son generadores, B no lo es. Si eliminamos B

´ tenemos que eliminar S → AB, dejando la gramatica ´ S es alcanzable. S → a, A → b. Ahora solo • Eliminando A y b nos deja con S → a. Con el lenguaje

{a}. • El orden importa, de otra manera (para este ejemplo),

si eliminamos primero los s´ımbolos no-alcanzables, nos damos cuenta de que todos los s´ımbolos son alcanzables. • A partir de: S → AB|a, A → b. Despues ´ eliminamos B como no-generador, y nos quedamos con S → a, A → b, que todav´ıa contiene s´ımbolos inutiles. ´ 15 de junio de 2015

6/1

Forma Normal de Chomsky

Teorema

Sea G = (V , T , P, S) una CFG tal que L(G) 6= ∅. Sea ´ G1 = (V1 , T1 , P1 , S) la gramatica obtenida: 1

Eliminando todos los s´ımbolos no-generadores y las producciones en las que ocurren. Sea la nueva ´ gramatica G2 = (V2 , T2 , P2 , S).

2

Eliminando de G2 todos los s´ımbolos no-alcanzables y las producciones en que ocurren.

G1 no tiene s´ımbolos inutiles, y L(G1 ) = L(G). ´

15 de junio de 2015

7/1

Forma Normal de Chomsky

´ Calculo de S´ımbolos Generadores y Alcanzables

• Necesitamos algoritmos para calcular los s´ımbolos

generadores y alcanzables de G = (V , T , P, S). • Los s´ımbolos generadores g(G) se calculan con el siguiente algoritmo de cerradura: Base: Todo s´ımbolo de T es generador, se genera a s´ı mismo. ´ ´ Suponemos que tenemos la produccion 2 Induccion: A → α, y cada s´ımbolo de α es generador. Entonces A es generador (esto incluye α = , las reglas que tienen a  en el cuerpo son generadoras). 1

15 de junio de 2015

8/1

Forma Normal de Chomsky

Ejemplo

• Sea G: S → AB|a, A → b • Entonces, primero g(G) = {a, b}. • Como S → a ponemos a S en g(G), y porque A → b

˜ ´ a A, y eso es todo, el conjunto de anadimos tambien s´ımbolos generadores es {a, b, A, S}.

15 de junio de 2015

9/1

Forma Normal de Chomsky

Teorema

• El algoritmo anterior encuentra todos y solo ´ los

s´ımbolos generadores de G. • El conjunto de s´ımbolos alcanzables r (G) de

G = (V , T , P, S) se calcula con el siguiente algoritmo de cerradura: 1 2

Base: r (G) = {S}, S es alcanzable. ´ Si la variable A ∈ r (G) y A → α ∈ P entonces Induccion: ˜ se anaden todos los s´ımbolos de α a r (G).

15 de junio de 2015

10 / 1

Forma Normal de Chomsky

Ejemplo

• Sea G : S → AB|a, A → b • Entonces, primero r (G) = {S}. • Con base en la primera produccion ´ anadimos ˜ {A, B, a}

a r (G). • Con base en la segunda produccion ´ anadimos ˜ {b} a

r (G) y eso es todo. Teorema: El algoritmo anterior encuentra todos y solo los s´ımbolos alcanzables de G.

15 de junio de 2015

11 / 1

Eliminando Producciones-

Eliminando Producciones- • Aunque las producciones  son convenientes, no son

esenciales. Si L es CF, entonces L − {} tiene una CFG sin producciones . • La estrategia consiste en descubrir cuales ´ variables son nulificables. ∗

• Se dice que la variable A es nulificable si A ⇒ . • Sea A nulificable, entonces en todas las producciones

en donde A aparece en el cuerpo, digamos B → CAD, ´ una sin creamos dos versiones de la produccion, A, B → CD y otra con A, B → CAD. Si utilizamos la ´ con A no permitimos que A derive a . produccion

15 de junio de 2015

12 / 1

Eliminando Producciones-

Algortimo

• El siguiente algoritmo calcula n(G), el conjunto de

´ s´ımbolos nulificables de una gramatica G = (V , T , P, S) como sigue: Base: n(G) = {A : A →  ∈ P} ´ Si {C1 , C2 , . . . , Ck } ⊆ n(G) y Induccion: A → C1 , C2 , . . . , Ck ∈ P, entonces n(G) = n(G) ∪ {A}. 3 Nota, cada Ci debe ser una variable para ser nulificable, ´ las producciones con entonces se consideran solo cuerpos conformados de variables. 1 2

15 de junio de 2015

13 / 1

Eliminando Producciones-

Teorema

• En cualquier gramatica ´ G, los unicos s´ımbolos ´

nulificables son las variables encontradas por el algoritmo anterior. • Una vez que conocemos los s´ımbolos nulificables, podemos transformar G en G1 como sigue: Para cada A → X1 X2 . . . Xk ∈ P con m ≤ k s´ımbolos nulificables, reemplazar por 2m reglas, una con cada sub-lista de los s´ımbolos nulificables ausentes. ´ Si m = k no anadimos ˜ 2 Excepcion: la regla donde borramos todos los m s´ımbolos nulificables. 3 Borrar todas las reglas de la forma A → . 1

15 de junio de 2015

14 / 1

Eliminando Producciones-

Ejemplo • Considere la siguiente gramatica: ´

S → AB A → aAA| B → bBB| • A y B son nulificables porque tienen a  en el cuerpo de

una de sus producciones. • S tambien ´ es nulificable, porque S → AB tiene puros s´ımbolos nulificables. • Ahora para construir las nuevas producciones sin ,

consideremos la primera: S → AB. • De aqui construimos las producciones con y sin los

s´ımbolos nulificables (y sin eliminar todas): S → AB|A|B. 15 de junio de 2015

15 / 1

Eliminando Producciones-

Ejemplo (cont.)

• Para A → aAA, hacemos algo parecido y nos queda:

A → aAA|aA|aA|a, que como hay dos iguales podemos elimiar una. • Finalmente para B es parecido, por lo que la gramatica ´ final queda como: S → AB|A|B A → aAA|aA|a B → bBB|bB|b • La gramatica ´ anterior no cambia el lenguaje, excepto que  ya no esta´ presente.

15 de junio de 2015

16 / 1

Eliminando Producciones-

Teorema

• Si la gramatica ´ G1 se construye a partir de G con la

´ anterior para eliminar producciones , construccion entonces L(G1 ) = L(G) − {}.

15 de junio de 2015

17 / 1

Eliminando Producciones Unitarias

Eliminando Producciones Unitarias • A → B es una produccion ´ unitaria, cuando A y B son



• • •

variables. Las producciones unitarias se pueden eliminar. ´ Veamos la gramatica: I → a|b|Ia|Ib|I0|I1 F → I|(E) T → F |T ∗ F E → T |E + T tiene las producciones unitarias E → T , T → F , y F → I. ´ E →T y Podemos expandir T en la produccion obtener: E → F |T ∗ F . Expandiendo E → F nos da: E → I|(E). Finalmente expandemos E → I y obtenemos: E → a|b|Ia|Ib|I0|I1|(E)|T ∗ F |E + T 15 de junio de 2015

18 / 1

Eliminando Producciones Unitarias

Eliminando Producciones Unitarias

• El metodo ´ ´ trabaja siempre y cuando no de expansion

haya ciclos en las reglas, por ejemplo en: A → B, B → C, C → A. • Para calcular u(G), el conjunto de todos los pares

unitarios de G = (V , T , P, S) utilizamos el siguiente algoritmo de cerradura.

15 de junio de 2015

19 / 1

Eliminando Producciones Unitarias

Algoritmo

• Base: (A, A) es un par unitario para cualquier variable ∗

A. Esto es, A ⇒ A en cero pasos. u(G) = {(A, A) : A ∈ V }. • Induccion: ´ Suponemos que (A, B) ∈ u(G) y que B → C ∈ P donde C es una variable. Entonces ˜ anadimos (A, C) a u(G). Teorema: El algoritmo anterior encuentra todos y solo los pares unitarios de una CFG G.

15 de junio de 2015

20 / 1

Eliminando Producciones Unitarias

Algoritmo Para eliminar producciones unitarias, procedemos de la siguiente manera. Dada G = (V , T , P, S), podemos construir G1 = (V , T , P1 , S): 1 2

Encontrando todos los pares unitarios de G. ˜ Para cada par unitario (A, B), anadimos a P1 todas las ´ producciones A → α, donde B → α es una produccion no unitaria en P.

3

Note que es posible tener A = B; de esta manera, P1 contiene todas las producciones unitarias en P.

4

P1 = {A → α : α ∈ / V , B → α ∈ P, (A, B) ∈ u(G)}

15 de junio de 2015

21 / 1

Eliminando Producciones Unitarias

Ejemplo

´ A partir de la gramatica: • I → a|b|Ia|Ib|I0|I1 • F → I|(E) • T → F |T ∗ F • E → T |E + T

Creamos un nuevo conjunto de producciones usando el primer elemento del par como cabeza y todos los cuerpos no unitarios del segundo elemento del par como cuerpos de las producciones:

15 de junio de 2015

22 / 1

Eliminando Producciones Unitarias

Ejemplo (cont.) Par (E, E) (E, T ) (E, F ) (E, I) (T , T ) (T , F ) (T , I) (F , F ) (F , I) (I, I)

´ Produccion E →E +T E →T ∗F E → (E) E → a|b|Ia|Ib|I0|I1 T →T ∗F T → (E) T → a|b|Ia|Ib|I0|I1 F → (E) F → a|b|Ia|Ib|I0|I1 I → a|b|Ia|Ib|I0|I1

15 de junio de 2015

23 / 1

Eliminando Producciones Unitarias

Ejemplo (cont.)

´ Eliminamos las producciones unitarias. La gramatica resultante es equivalente a la original. E → E + T |T ∗ F |(E)|a|b|Ia|Ib|I0|I1 T → T ∗ F |(E)|a|b|Ia|Ib|I0|I1 F → (E)|a|b|Ia|Ib|I0|I1 I → a|b|Ia|Ib|I0|I1

15 de junio de 2015

24 / 1

Eliminando Producciones Unitarias

Resumen

´ Para “limpiar” una gramatica podemos: 1

Eliminar producciones-

2

Eliminar producciones unitarias

3

Eliminar s´ımbolos inutiles ´

en este orden.

15 de junio de 2015

25 / 1

Forma Normal de Chomsky, CNF

Forma Normal de Chomsky, CNF

• Ahora se mostrara´ que cada CFL no vac´ıo sin  tiene

´ una gramatica G sin s´ımbolos inutiles, de tal manera ´ ´ tenga la forma: A → BC, donde que cada produccion {A, B, C} ⊆ T , o A → α, donde A ∈ V , y α ∈ T . • Para lograr esto, iniciamos con alguna gramatica ´ para el CFL, y: ´ “Limpiamos la gramatica”. ´ Hacemos que todos los cuerpos de longitud 2 o mas consistan solo de variables. ´ en una 3 Dividimos los cuerpos de longitud 3 o mas cascada de producciones con cuerpos de dos variables. 1 2

15 de junio de 2015

26 / 1

Forma Normal de Chomsky, CNF

Forma Normal de Chomsky, CNF • Para el paso 2, por cada terminal a que aparece en un

cuerpo de longitud ≥ 2, creamos una nueva variable, A, y reemplazamos a a por A en todos los cuerpos. ´ anadimos ˜ Despues una nueva regla A → a. • Para el paso 3, por cada regla de la forma

A → B1 B2 . . . Bk , k ≥ 3, introducimos variables nuevas C1 , C2 , . . . Ck−2 , y reemplazamos la regla con: A → B1 C1 C1 → B2 C2 ... Ck−3 → Bk−2 Ck−2 Ck−2 → Bk−1 Bk

15 de junio de 2015

27 / 1

Forma Normal de Chomsky, CNF

Ejemplo

´ Iniciamos con la gramatica (el paso 1 ya esta´ hecho): • E → E + T |T ∗ F |(E)|a|b|Ia|Ib|I0|I1 • T → T ∗ E|(E)|a|b|Ia|Ib|I0|I1 • F → (E)|a|b|Ia|Ib|I0|I1 • I → a|b|Ia|Ib|I0|I1

Para el paso 2, introducimos nuevas variables y nos quedan las siguientes reglas: A → a, B → b, Z → 0, O → 1 P → +, M → ∗, L → (, R →)

15 de junio de 2015

28 / 1

Forma Normal de Chomsky, CNF

Ejemplo (cont.)

´ y al reemplazar obtenemos la gramatica: E → EPT |TMF |LER|a|b|IA|IB|IZ |IO T → TPE|LEL|a|b|IA|IB|IZ |IO F → LER|a|b|IA|IB|IZ |IO I → a|b|IA|IB|IZ |IO A → a, B → b, Z → 0, O → 1 P → +, M → ∗, L → (, R →)

15 de junio de 2015

29 / 1

Forma Normal de Chomsky, CNF

Ejemplo (cont.)

Para el paso 3, reemplazamos: • E → EPT por E → EC1 , C1 → PT • E → TMF , T → TMF por

E → TC2 , T → TC2 , C2 → MF • E → LER, T → LER, F → LER por

E → LC3 , T → LC3 , F → LC3 , C3 → ER

15 de junio de 2015

30 / 1

Forma Normal de Chomsky, CNF

Ejemplo (cont.)

´ La gramatica CNF final es: • E → EC1 |TC2 |LC3 |a|b|IA|IB|IZ |IO • T → TC2 |LC3 |a|b|IA|IB|IZ |IO • F → LC3 |a|b|IA|IB|IZ |IO • I → a|b|IA|IB|IZ |IO • C1 → PT , C2 → MF , C3 → ER • A → a, B → b, Z → 0, O → 1 • P → +, M → ∗, L → (, R →)

15 de junio de 2015

31 / 1

Forma Normal de Chomsky, CNF

Ejemplo • Encuentre una gramatica ´ equivalente para:

S → AB|CA A→a B → BC|AB C → aB|b sin s´ımbolos inutiles ´ • Con la gramatica: ´ S → ASB| A → aAS|a B → SbS|A|bb Eliminar: (a) producciones , (b) producciones unitarias, (c) s´ımbolos inutiles, y (d) ponerla en CNF ´

15 de junio de 2015

32 / 1

Forma Normal de Chomsky, CNF

´ al 1 Solucion

• A y C son generadoras por que tienen producciones

´ con con terminales. Como S tienen una produccion ´ en puros generadores (CA), entonces tambien generador. B no es generador, por lo que si lo eliminamos y todas las producciones donde aparece y ´ nos quedamos solo con los alcanzables, la gramatica queda: S → CA A→a C→b

15 de junio de 2015

33 / 1

Forma Normal de Chomsky, CNF

´ al 2 Solucion • Solo S es nulificable, por lo que tenemos que ponerla y

quitarla en cada lugar donde ocurre: S → ASB|AB A → aAS|aA|a B → SbS|Sb|bS|b|A|bb • La unica ´ unitaria es: B → A por lo que la produccion ´ reemplazamos directamente: S → ASB|AB A → aAS|aA|a B → SbS|Sb|bS|b|aAS|aA|a|bb • A y B generan s´ımbolos terminales, y por lo tanto

´ S, por lo que no hay s´ımbolos inutiles tambien ´

15 de junio de 2015

34 / 1

Forma Normal de Chomsky, CNF

´ al 2 (cont.) Solucion • Introducir variabes y producciones C → a y D → b y

ponerla en todos los cuerpos que no tienen un solo s´ımbolo terminal S → ASB|AB A → CAS|CA|a B → SDS|SD|DS|b|CAS|CA|a|DD C→a D→b • Para las producciones con mas ´ de 3 s´ımbolos se introducen nuevas variables: S → AE|AB A → CF |CA|a B → SG|SD|DS|b|CF |CA|a|DD C → a, D → b E → SB , F → AS G → DS 15 de junio de 2015

35 / 1

Propiedades de Cerradura de los CFLs

Propiedades de Cerradura de los CFL’s

• Existen varias propiedades de los CFL, una de las mas ´

´ importantes es la de substitucion. • Substitucion: ´ Sea Σ un alfabeto y supongamos que

para cada s´ımbolo a ∈ Σ definimos un lenguaje arbitrario La . • Estos lenguajes definen una funcion ´ s o una ´ substitucion. • Si w = a1 a2 . . . an es una cadena en Σ∗ , s(w) es la

´ de los lenguajes s(a1 )s(a2 ) . . . s(an ). concatenacion

15 de junio de 2015

36 / 1

Propiedades de Cerradura de los CFLs

Ejemplo

• Σ = {0, 1}, s(0) = {an b n : n ≥ 1}, s(1) = {aa, bb}. • Sea w = 01. Entonces

s(w) = s(0)s(1) = {an bn aa : n ≥ 1} ∪ {an bn+2 : n ≥ 1}. • Si L = {0}∗ , entonces s(L) = (s(0))∗ = 2

{an1 bn1 an2 bn . . . ank bnk : k ≥ 0, ni ≥ 1}

15 de junio de 2015

37 / 1

Propiedades de Cerradura de los CFLs

Teoremas • Teoremas: Sea L un CFL sobre Σ, y s una substitucion, ´

tal que s(a) sea un CFL, ∀a ∈ Σ. Entonces s(L) es un CFL. • Teoremas: Si tenemos uno o mas ´ CFL’s, tambien ´ son ´ (ii) CFL el resultados de hacer: (i) union, ´ (iii) Cerradura de Kleene, (iv) cerradura concatenacion, ´ (vi) homomorfismo, (vii) positiva +, (v) inversion, homomorfismo inverso. • Teorema: Si L, L1 , L2 son CFL’s, y R es lenguaje

regular, entonces L ∩ R, L \ R son CFL y L, L1 \ L2 no son necesariamente CFL’s.

15 de junio de 2015

38 / 1

Propiedades de Cerradura de los CFLs

Probrar membres´ıa en eun CFL • Usar el algoritmo CYK (construye tabla triangular) • En el primer renglon ´ pone producciones tipo A → a • En el resto pone producciones que tengan una parte del

prefijo de la cadena seguida de el resto de la cadena

15 de junio de 2015

39 / 1

Propiedades de Cerradura de los CFLs

Ejemplo • Probar que la siguiente gramatica ´ genera: baaba

S → AB|BC A → BA|a B → CC|b C → AB|a

15 de junio de 2015

40 / 1

Propiedades de Cerradura de los CFLs

Problemas no-decidibles

Los siguientes son problemas no-decidibles: 1

Es una CFG G dada ambigua?

2 3

Es un CFL dado inherentemente ambiguo? ´ de dos CFL’s vac´ıa? Es la interseccion

4

Son dos CFL’s el mismo?

5

Es un CFL dado universal (igual a Σ∗ )?

15 de junio de 2015

41 / 1

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.