Propiedades de los Lenguajes Libres de Contexto



Documentos relacionados
Propiedades de los Lenguajes Libres de Contexto

Examen de Teoría de Autómatas y Lenguajes Formales

Tema 5: Autómatas a pila. Teoría de autómatas y lenguajes formales I

Lenguajes Regulares. Antonio Falcó. - p. 1

6 Propiedades de los lenguajes libres de contexto 6.1 El Lema de Bombeo para LLC

Expresiones Regulares y Derivadas Formales

1. Cadenas EJERCICIO 1

Curso Básico de Computación 6 Propiedades de los lenguajes libres de contexto

TEMA 5. GRAMÁTICAS REGULARES.

Primer ejemplo detallado de cálculo de PRIMERO

Lenguajes Incontextuales

Números naturales, principio de inducción

Autómatas de Pila. Descripciones instantáneas o IDs. El Lenguaje de PDA. Equivalencia entre PDAs y CFGs INAOE (INAOE) 1 / 50

Propiedades de Lenguajes Regulares

Clase 09: AFN, AFD y Construcción de Thompson

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Práctica 5 - Simplificación de gramáticas incontextuales

INAOE. Expresiones Regulares. Operadores y Operandos. Equivalencia de Lenguajes de FA y Lenguajes RE. Leyes Algebraicas de las. Expresiones Regulares

Matrices y Determinantes.

Tema 4 Probabilidad condicionada: teoremas básicos. Independencia de sucesos

INAOE. Gramáticas Libres de Contexto. Definición formal de CFGs. Derivaciones usando. Derivaciones. izquierda y. derecha.

Nivel del ejercicio : ( ) básico, ( ) medio, ( ) avanzado.

Autómatas finitos no deterministas (AFnD)

GRAMÁTICAS y LENGUAJES INDEPENDIENTES DEL CONTEXTO

1 Clase sobre determinantes

Víctor J. Díaz Madrigal y Fernando Enríquez de Salamanca Ros. 2.1 Límites de los lenguajes regulares Teorema de Myhill-Nerode Lema del bombeo

Definición de la matriz inversa

Producto cartesiano. X Y = {(x, y) : x X, y Y }. Ejemplo En el tablero de ajedrez, X = números del 1-8, Y = letras de A-H.

Teoría de Lenguajes. Gramáticas incontextuales

3 Propiedades de los conjuntos regulares 3.1 Lema de Bombeo para conjuntos regulares

Autómatas Finitos y Lenguajes Regulares

Curso Básico de Computación

Tarea Nº 2 Introducción a la Informática Lema del Bombeo y Lenguajes de Contexto Libre

MENORES, COFACTORES Y DETERMINANTES

El cuerpo de los números reales

TEMA 2: TEORÍA DE CONJUNTOS Y CONJUNTOS NUMÉRICOS.

Conversión de Gramáticas Libres de Contexto. EQUIPO 6 Jardón Jara Micheelle Enrique Perfecto Espinosa Valeria

Sea G = (V N, V T, S, P) una gramática libre de contexto, un árbol es un árbol de derivación para G si:

Ecuaciones de 2do grado

TEMA I: LOS CONCEPTOS FUNDAMENTALES DE LA TEORÍA DE LA COMPUTABILIDAD

Matrices escalonadas y escalonadas reducidas

VALOR ABSOLUTO. Definición.- El valor absoluto de un número real, x, se define como:

2: Autómatas finitos y lenguajes regulares.

Matemáticas I: Hoja 1

Expresiones regulares, gramáticas regulares

MATEMÁTICAS APLICADAS A LAS C.C. SOCIALES

Ejercicio Guía para obtener FNC y FNG. Forma Intermedia de Chomsky

17. POLÍGONOS REGULARES

Tema 1: Matrices y Determinantes

Gramáticas Libres de Contexto

Gramáticas independientes del contexto AUTÓMATAS Y LENGUAJES FORMALES LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

Expresiones regulares, gramáticas regulares Unidad 3

Vectores y Matrices. Tema 3: Repaso de Álgebra Lineal Parte I. Contenidos

Estructuras algebraicas

c-inversa o inversa generalizada de Rao

Sistemas de Ecuaciones Lineales

UNIDAD: ÁLGEBRA Y FUNCIONES ECUACIÓN DE SEGUNDO GRADO Y FUNCIÓN CUADRÁTICA

TEMA 4: DERIVADAS. En símbolos, la pendiente de la curva en P = lim Q P (pendiente de P Q).

2.4. Números complejos

2 - Matrices y Determinantes

Matrices. p ij = a ik b kj = a i1 b 1j + a i2 b 2j + + a in b nj.

VIII Olimpíada Matemática de Centroamérica y El Caribe

TEORÍA DE AUTÓMATAS I Informática de Sistemas

Se utilizarán las letras mayúsculas, tales como A, B y C para nombrar conjuntos. Por ejemplo: a i. o e

Ciencias de la Computación I

Teoría de Autómatas y Lenguajes Formales.

SISTEMAS DE ECUACIONES LINEALES

Examen de Computabilidad y Complejidad (CMC) 21 de enero de 2011

Inecuaciones y Ecuación cuadrática

Determinante de una matriz

Sistemas de Ecuaciones y Matrices

Dependencia e independencia lineal

Relaciones. Estructuras Discretas. Relaciones. Relaciones en un Conjunto. Propiedades de Relaciones en A Reflexividad

Gramáticas independientes del contexto TEORÍA DE LA COMPUTACIÓN LENGUAJES INDEPENDIENTES DEL CONTEXTO Y AUTÓMATAS DE PILA. Otras definiciones I

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES. Unidad didáctica 4. Números reales y números complejos

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Representación de números enteros: el convenio complemento a uno

Lección 10: Representación gráfica de algunas expresiones algebraicas

Interrogación 2. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003

CAPITULO 2: LENGUAJES

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES. Unidad didáctica 4. Números reales y números complejos

Espacios Vectoriales

Lenguajes No Regulares

Alfabetos, cadenas y lenguajes

Matemáticas Discretas L. Enrique Sucar INAOE. Permutaciones y Combinaciones

Clase 8 Matrices Álgebra Lineal

Representación de números enteros: el convenio complemento a dos

Dibujo Técnico Polígonos regulares

MATEMÁTICAS BÁSICAS UNIVERSIDAD NACIONAL DE COLOMBIA - SEDE MEDELLÍN CLASE # 5

Cardinalidad. Teorema 0.3 Todo conjunto infinito contiene un subconjunto infinito numerable.

Teoría de Lenguajes Solución 2do. Parcial Curso 2013

Algebra de Boole y simplificación de funciones lógicas. Capítulo 4

Operaciones con matrices

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

si w=ay por tanto a Σ e y Σ*

Generalidades sobre lenguajes.

Anillos. a + (b + c) = (a + b) + c. 3) Existe un elemento 0 en R, el cual llamaremos cero, tal que. a + 0 = 0 + a = a para todo a en R.

Teoría de la Computación y Lenguajes Formales

Transcripción:

de los s de los Lenguajes Libres de Contexto INAOE (INAOE) 1 / 47

Contenido de los s 1 2 -ɛ 3 4 5 6 de los s (INAOE) 2 / 47

() de los s Queremos mostrar que todo (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 símbolo terminal. A esto se le conoce como, y para llegar a ella debemos: 1 Eliminar símbolos no-útiles, aquellos que no aparecen en ninguna derivación S w, para el símbolo de inicio 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. (INAOE) 3 / 47

símbolos no-útiles de los s Un símbolo X es útil para una gramática G = (V, T, P, S), si hay una derivación: S G αxβ G w para una cadena terminal w. A los símbolos que no son útiles se les denomina inútiles. 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 algún α, β (V T ). Un símbolo útil es generador y alcanzable. Cabe notar que si eliminamos a los símbolos no-generadores primero, y luego a los no-alcanzables, nos quedamos únicamente con símbolos útiles. (INAOE) 4 / 47

Ejemplo de los s 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 gramática S a, A b. Ahora sólo S es alcanzable. 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. Si eliminamos los inalcanzables y después a B como no-generador, nos quedamos con S a, A b, que todavía contiene símbolos inútiles. (INAOE) 5 / 47

Teorema de los s Sea G = (V, T, P, S) una CFG tal que L(G). Sea G 1 = (V 1, T 1, P 1, S) la gramática obtenida: 1 todos los símbolos no-generadores y las producciones en las que ocurren. Sea la nueva gramática G 2 = (V 2, T 2, P 2, S). 2 de G 2 todos los símbolos no-alcanzables y las producciones en que ocurren. G 1 no tiene símbolos inútiles, y L(G 1 ) = L(G). (INAOE) 6 / 47

de los s Cálculo 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: 1 Base: Todo símbolo de T es generador, se genera a sí mismo. 2 Inducción: Suponemos que tenemos la producción A α, y cada símbolo de α es generador. Entonces A es generador (esto incluye α = ɛ, las reglas que tienen a ɛ en el cuerpo son generadoras). (INAOE) 7 / 47

Ejemplo de los s 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ñadimos también a A, y eso es todo, el conjunto de símbolos generadores es {a, b, A, S}. (INAOE) 8 / 47

Teorema de los s El algoritmo anterior encuentra todos y sólo 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 Base: r(g) = {S}, S es alcanzable. 2 Inducción: Si la variable A r(g) y A α P entonces se añaden todos los símbolos de α a r(g). (INAOE) 9 / 47

Ejemplo de los s Sea G : S AB a, A b Entonces, primero r(g) = {S}. Con base en la primera producción añadimos {A, B, a} a r(g). Con base en la segunda producción añadimos {b} a r(g) y eso es todo. Teorema: El algoritmo anterior encuentra todos y solo los símbolos alcanzables de G. (INAOE) 10 / 47

-ɛ -ɛ de los s Aunque las producciones ɛ son convenientes, no son esenciales. Si L es CF, entonces L {ɛ} tiene una CFG sin producciones ɛ. La estrategia consiste en descubrir cuáles 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, creamos dos versiones de la producción, una sin A, B CD y otra con A, B CAD. Si utilizamos la producción con A no permitimos que A derive a ɛ. (INAOE) 11 / 47

-ɛ Algortimo de los s El siguiente algoritmo calcula n(g), el conjunto de símbolos nulificables de una gramática G = (V, T, P, S) como sigue: 1 Base: n(g) = {A : A ɛ P} 2 Inducción: Si {C 1, C 2,..., C k } n(g) y A C 1, C 2,..., C k P, entonces n(g) = n(g) {A}. 3 Nota, cada C i debe ser una variable para ser nulificable, entonces se consideran sólo las producciones con cuerpos conformados de variables. (INAOE) 12 / 47

-ɛ Teorema de los s En cualquier gramática G, los únicos símbolos nulificables son las variables encontradas por el algoritmo anterior. Una vez que conocemos los símbolos nulificables, podemos transformar G en G 1 como sigue: 1 Para cada A X 1 X 2... X k P con m k símbolos nulificables, reemplazar por 2 m reglas, una con cada sub-lista de los símbolos nulificables ausentes. 2 Excepción: Si m = k no añadimos la regla donde borramos todos los m símbolos nulificables. 3 Borrar todas las reglas de la forma A ɛ. (INAOE) 13 / 47

-ɛ Ejemplo de los s Considere la siguiente gramática: S AB A aaa ɛ B bbb ɛ A y B son nulificables porque tienen a ɛ en el cuerpo de una de sus producciones. S también 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. (INAOE) 14 / 47

-ɛ Ejemplo (cont.) de los s 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 gramática final queda como: S AB A B A aaa aa a B bbb bb b La gramática anterior no cambia el lenguaje, excepto que ɛ ya no está presente. (INAOE) 15 / 47

-ɛ Teorema Si la gramática G 1 se construye a partir de G con la construcción anterior para eliminar producciones ɛ, entonces L(G 1 ) = L(G) {ɛ}. de los s (INAOE) 16 / 47

de los s A B es una producción unitaria, cuando A y B son variables. Las producciones unitarias se pueden eliminar. Veamos la gramática: 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. Podemos expandir T en la producción E T y 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 (INAOE) 17 / 47

de los s El método de expansión trabaja siempre y cuando no 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. (INAOE) 18 / 47

Algoritmo de los s Base: (A, A) es un par unitario para cualquier variable A. Esto es, A A en cero pasos. u(g) = {(A, A) : A V }. Inducción: Suponemos que (A, B) u(g) y que B C P donde C es una variable. Entonces añadimos (A, C) a u(g). Teorema: El algoritmo anterior encuentra todos y solo los pares unitarios de una CFG G. (INAOE) 19 / 47

Algoritmo de los s Para eliminar producciones unitarias, procedemos de la siguiente manera. Dada G = (V, T, P, S), podemos construir G 1 = (V, T, P 1, S): 1 Encontrando todos los pares unitarios de G. 2 Para cada par unitario (A, B), añadimos a P 1 todas las producciones A α, donde B α es una producción no unitaria en P. 3 Note que es posible tener A = B; de esta manera, P 1 contiene todas las producciones unitarias en P. 4 P 1 = {A α : α / V, B α P, (A, B) u(g)} (INAOE) 20 / 47

Ejemplo de los s A partir de la gramática: 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: (INAOE) 21 / 47

Ejemplo (cont.) de los s Par Producción (E, E) E E + T (E, T ) E T F (E, F) E (E) (E, I) E a b Ia Ib I0 I1 (T, T ) T T F (T, F) T (E) (T, I) T a b Ia Ib I0 I1 (F, F) F (E) (F, I) F a b Ia Ib I0 I1 (I, I) I a b Ia Ib I0 I1 (INAOE) 22 / 47

Ejemplo (cont.) de los s Eliminamos las producciones unitarias. La gramática 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 (INAOE) 23 / 47

Resumen de los s Para limpiar una gramática podemos: 1 Eliminar producciones-ɛ 2 Eliminar producciones unitarias 3 Eliminar símbolos inútiles en este orden. (INAOE) 24 / 47

de los s Ahora se mostrará que cada no vacío sin ɛ tiene una gramática G sin símbolos inútiles, de tal manera que cada producción tenga la forma: A BC, donde {A, B, C} T, o A α, donde A V, y α T. Para lograr esto, iniciamos con alguna gramática para el, y: 1 Limpiamos la gramática. 2 Hacemos que todos los cuerpos de longitud 2 o más consistan solo de variables. 3 Dividimos los cuerpos de longitud 3 o más en una cascada de producciones con cuerpos de dos variables. (INAOE) 25 / 47

de los s 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. Después añadimos una nueva regla A a. Para el paso 3, por cada regla de la forma A B 1 B 2... B k, k 3, introducimos variables nuevas C 1, C 2,... C k 2, y reemplazamos la regla con: A B 1 C 1 C 1 B 2 C 2... C k 3 B k 2 C k 2 C k 2 B k 1 B k (INAOE) 26 / 47

Ejemplo de los s Iniciamos con la gramática (el paso 1 ya está 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 ) (INAOE) 27 / 47

Ejemplo (cont.) de los s y al reemplazar obtenemos la gramática: 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 ) (INAOE) 28 / 47

Ejemplo (cont.) de los s Para el paso 3, reemplazamos: E EPT por E EC 1, C 1 PT E TMF, T TMF por E TC 2, T TC 2, C 2 MF E LER, T LER, F LER por E LC 3, T LC 3, F LC 3, C 3 ER (INAOE) 29 / 47

Ejemplo (cont.) de los s La gramática final es: E EC 1 TC 2 LC 3 a b IA IB IZ IO T TC 2 LC 3 a b IA IB IZ IO F LC 3 a b IA IB IZ IO I a b IA IB IZ IO C 1 PT, C 2 MF, C 3 ER A a, B b, Z 0, O 1 P +, M, L (, R ) (INAOE) 30 / 47

Ejemplo de los s Encuentre una gramática equivalente para: S AB CA A a B BC AB C ab b sin símbolos inútiles Con la gramática: S ASB ɛ A aas a B SbS A bb Eliminar: (a) producciones ɛ, (b) producciones unitarias, (c) símbolos inútiles, y (d) ponerla en (INAOE) 31 / 47

Solución al 1 de los s A y C son generadoras por que tienen producciones con terminales. Como S tienen una producción con puros generadores (CA), entonces también es 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 gramática queda: S CA A a C b (INAOE) 32 / 47

Solución al 2 de los s 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 única producción unitaria es: B A por lo que la 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 también S, por lo que no hay símbolos inútiles (INAOE) 33 / 47

Solución al 2 (cont.) de los s 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 más 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 (INAOE) 34 / 47

de los s Existe un equivalente del Sea L un. Existe una constante n tal que si z es cualquier cadena de L tal que z es al menos n, podemos escribir z = uvwxy tal que: 1 vwx n 2 vx ɛ 3 Para toda i 0, uv i wx i y está en L (INAOE) 35 / 47

de los s Es muy parecido al de solo que ahora tenemos que encontrar a dos subcadenas que podamos repetir indefinidamente La idea viene de que toda la podemos representar como y generar árboles de parseo binarios Mientras que los pueden servir para dos grupos de caracteres, no sirven para tres (e.g., {0 n 1 n 2 n n 1}) Los tampoco sirven si tenemos pares de símbolos intercalados (e.g., {0 i 1 j 2 i 3 j i 1, i 1}) Tampoco pueden verificar la igualdad de dos cadenas arbitrariamente largas (e.g., ww w {0, 1} } ) (INAOE) 36 / 47

Ejemplos de los s {0 n 1 n 2 2 n 1} Idea: z = uvwxy, vwx n (lemma), vwx no puede tener al mismo tiempo 0 s y 2 s porque el último 0 y el primer 2 están separados por n + 1 pocisiones. Si vwx no tiene 2 s (o 0 s) con el pumping lo desbalanceamos. {0 i 1 j 2 i 3 j i 1, i 1}. Con un argumento similar podemos tener que la cadena no tiene todos los símbolos y desbalancear la cadena. ww w {0, 1} }. En este caso, podemos poner como ejemplo: 0 n 1 n 0 n 1 n la cual es una cadena ww y mostrar tomando las ideas de los ejemplos anteriores que podemos generar una cadena que no está en L. (INAOE) 37 / 47

Ejemplo de los s Mostrar que {a i b j C k i < j < k} no es Tomando a z = a n b n+1 C n+2 y vwx. Si vwx no tiene c s entonces podemos generar más as y bs que cs. Si vwx tiene una c, entonces no podría tener una a porque la longitud está limitada a n. Esto quiere decir que uwy (sin las partes que se repiten) tiene n a s, pero no más que 2n + 2 bs y cs juntas con lo cual no es posible que se tengan al mismo tiempo más bs que as y más cs que bs. Probar que: {a n b n C i i n} no es. (INAOE) 38 / 47

de los s de los s de los s Existen varias propiedades de los, una de las más importantes es la de substitución. Substitución: Sea Σ un alfabeto y supongamos que para cada símbolo a Σ definimos un lenguaje arbitrario L a. Estos lenguajes definen una función s o una substitución. Si w = a 1 a 2... a n es una cadena en Σ, s(w) es la concatenación de los lenguajes s(a 1 )s(a 2 )... s(a n ). (INAOE) 39 / 47

de los s Ejemplo de los s Σ = {0, 1} y s(0) = {a n b n : n 1}, s(1) = {aa, bb} Sea w = 01. Entonces s(w) = s(0)s(1) = {a n b n aa : n 1} {a n b n+2 : n 1}. Si L = L(0 ), entonces s(l) = (s(0)) = {a n 1b n 1a n 2b n 2... a n k b n k : k 0, n i 1} (INAOE) 40 / 47

de los s Teoremas de los s Teoremas: Sea L un sobre Σ, y s una substitución, tal que s(a) sea un, a Σ. Entonces s(l) es un. Teoremas: Si tenemos uno o más s, también son el resultado de hacer: (i) unión, (ii) concatenación, (iii) Cerradura de Kleene, (iv) cerradura positiva +, (v) inversión, (vi) homomorfismo, y (vii) homomorfismo inverso. Teorema: Si L, L 1, L 2 son s, y R es lenguaje regular, entonces L R, L \ R son pero L, L 1 \ L 2, L 1 L 2, L 1 \ L 2 no son necesariamente s. (INAOE) 41 / 47

de los s Probar membresía en un de los s Para probar si una cadena w es parte del lenguaje (L) de un CGF (i.e., w L), usar el algoritmo CYK El eje x corresponde a la cadena w = a 1, a 2, a 3,..., a n En el primer renglón pone producciones tipo A a En el resto (e.g., X ij ) se ponen las variables (e.g., A) tales que tengan una producción (e.g., A BC) donde B está en X ik (parte del prefijo) y C está en X kj (resto de la cadena), i < k < j. (INAOE) 42 / 47

de los s Algoritmo CYK de los s (INAOE) 43 / 47

de los s Ejemplo de los s Probar que la siguiente gramática genera: baaba S AB BC A BA a B CC b C AB a b : {B} a : {A, C} ba : {B}{A, C} = {BA, BC} : {S, A} aa : {A, C}{A, C} = {AA, AC, CA, CC} : {B} ab : {A, C}{B} = {AB, CB} : {S, C} ba : {B}{A, C} = {BA, BC} : {S, A} (INAOE) 44 / 47

de los s Ejemplo de los s bab : b/ab o ba/b : {B}{B} {S, A}{A, C} = {BB, SA, SC, AA, AC} : aab : a/ab o aa/b : {A, C}{S, C} {B}{B} = {AS, AC, CS, CC, BB} : {B} aba : a/ba o ab/a : {A, C}{S, A} {S, C}{A, C} = {AS, AA, CS, CA, SA, SC, CA, CC} : {B} baab : b/aab o ba/ab o baa/b : {B}{B} {S, A}{S, C} {B} = {BB, SS, SC, AS, AC} : aaba : a/aba o aa/ba o aab/a : {A, C}{B} {B}{S, A} {B}{A, C} = {AB, AC, BS, BA, BA, BC} : {S, A, C} (INAOE) 45 / 47

de los s Ejemplo baaba : b/aaba o ba/aba o baa/ba o baab/a : {B}{S, A, C} {S, A}{B} = {BS, BA, BC, SB, AB} : {S, A, C} de los s (INAOE) 46 / 47

de los s Problemas no-decidibles de los s En el siguiente tema vamos a ver que hay problemas que no los podemos resolver con una computadora (no-decidibles). Por ejemplo: 1 Es una CFG G dada ambígua? 2 Es un dado inherentemente ambíguo? 3 Es la intersección de dos s vacía? 4 Son dos s iguales? 5 Es un dado igual a Σ donde Σ es el alfabeto de ese lenguaje? (INAOE) 47 / 47