Teoría de Lenguajes. Gramáticas incontextuales

Documentos relacionados
Teoría de Autómatas y Lenguajes Formales. Introducción a las Gramáticas. Gramáticas incontextuales

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

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

ESCUELA: UNIVERSIDAD DEL ISTMO

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

Pregunta 1 [40 puntos] Diga si las siguientes afirmaciones son verdaderas o falsas, demostrando su respuesta.

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

GRAMATICAS LIBRES DEL CONTEXTO

Capítulo 1 Lenguajes formales 6

Cualquier lenguaje de contexto libre, L, puede ser generado por medio de una GCL, G, que cumpla las siguientes condiciones:

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Expresiones regulares, gramáticas regulares

Ingeniería en Computación. Autómatas y Lenguajes Formales. Unidad de competencia IV: Conocer, utilizar y diseñar gramáticas de libre contexto

Propiedades de los Lenguajes Libres de Contexto

Autómatas de Pila y Lenguajes Incontextuales

Paso 1: Autómata. A 1 sin estados inútiles, que reconoce el lenguaje denotado por a a* b*

2do. Parcial. Todos los ejercicios se entregarán en hojas separadas. El examen tipo test cuenta hasta 2 puntos sobre la nota total.

Propiedades de los Lenguajes Libres de Contexto

EXÁMENES DE REPASO Teoría de Autómatas y Lenguajes Formales UNIVERSIDAD FRANCISCO DE VITORIA

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACIÓN

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Temas. Objetivo. Que el estudiante logre: 1) Identificar conceptos constructivos de la Teoría de la Computabilidad. 2) Definir autómatas de pila.

TC - Teoría de la Computación

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES Grado en Ingeniería Informática Online, Curso Universidad Rey Juan Carlos

6. Autómatas a Pila. Grado Ingeniería InformáDca Teoría de Autómatas y Lenguajes Formales

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS

Carácter Modalidad Horas de estudio semestral (16 semanas)

Tema 3: El Método Simplex. Algoritmo de las Dos Fases.

Tema 5 Lenguajes independientes del contexto. Sintaxis

Teoría de Lenguajes. Clase Teórica 7 Autómatas de Pila y Lenguajes Independientes del Contexto Primer cuartimestre 2014

Aznar Bellver, Jerónimo. Valoración inmobiliaria: métodos y aplicaciones. : Editorial de la Universidad Politécnica de Valencia,.

Las matrices Parte 1-2 o bachillerato

Inducción en definiciones y demostraciones AUTÓMATAS Y LENGUAJES FORMALES PRELIMINARES MATEMÁTICOS. Números naturales. Inducción matemática

Una cadena sobre Σ es cualquier secuencia de elementos de longitud finita sobre Σ.

personal.us.es/elisacamol Elisa Cañete Molero Curso 2011/12

Ciencias de la Computación I

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

Carrera: MTF Participantes Representante de las academias de ingeniería Mecatrónica de los Institutos Tecnológicos.

Capítulo 7: Expresiones Regulares

Cátedra de Sintaxis y Semántica de Lenguajes

Profs. Carlos Pérez y Ricardo Monascal

Lenguajes (gramáticas y autómatas)

ESTRUCTURAS ALGEBRAICAS. Parte 1

RELACIONES Y FUNCIONES. M.C. Mireya Tovar Vidal

Gramáticas independientes del contexto. Tema 3: Lenguajes independientes del contexto. Derivaciones. Árbol de derivación

Equivalencia Entre PDA y CFL

Matemá'cas generales

Operaciones Booleanas y Compuertas Básicas

Matrices 1 (Problemas). c

Lenguajes, Gramáticas y Autómatas Conceptos

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

{} representa al conjunto vacío, es decir, aquel que no contiene elementos. También se representa por.

John Venn Matemático y filósofo británico creador de los diagramas de Venn

Dada la proporción =, calcula el producto de extremos menos el producto de medios. 4. Halla los determinantes de las siguientes matrices: Solución:

La Jerarquía de Chomsky

Procesadores de Lenguaje

Modelos de Computación I

Expresiones Regulares y Derivadas Formales

9. MATRICES DEFINICIÓN Y NOTACIONES OPERACIONES CON MATRICES MATRICES CUADRADAS

Tema 2: Autómatas finitos

Colas de un elemento por una Relación

Lenguajes y Gramáticas

Grupos libres. Presentaciones.

Sistemas de Ecuaciones Lineales

La recta se define como el lugar geométrico de todos los puntos de un plano que al tomarse de dos en dos se obtiene la misma pendiente.

Tema 1: Matrices y Determinantes

En el presente video se resaltan los siguientes tres elementos esenciales de las matemáticas:

Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas 1.6 Código: ISI 1.7 Nivel: Pregrado

Plan de clase (1/3) a) Los siguientes triángulos son semejantes. Calcula la medida del lado que falta en cada uno, sin medir:

Sumario: Teoría de Autómatas y Lenguajes Formales. Capítulo 2: Lenguajes Formales. Capítulo 2: Lenguajes Formales

Dos matrices son iguales cuando tienen la misma dimensión y los elementos que ocupan el mismo lugar en ambas son iguales

Espacios Vectoriales

Capitulo V: Relaciones

UNIDAD 4. Álgebra Booleana

Fundación Uno. ) 2n, el resultado es: D) b a E)1. entonces el valor de "y" es: II) x y = 3 A)16 B)9 C)4 D)1 E)2. Desarrollo

Matemáticas aplicadas a las CC.SS. II 2º Bachillerato. La igualdad de matrices 3x3 equivale a 9 ecuaciones escalares: { a 3=5.

Motores de aluminio de aplicación general Tamaños

TEORÍA DE AUTÓMATAS Y LENGUAJES FORMALES TRABAJO DE PRÁCTICAS. Convocatoria de junio de 2013

NOMBRE DEL CURSO: Laboratorio de Lenguajes Formales y de Programación

Matemáticas I: Hoja 2 Cálculo matricial y sistemas de ecuaciones lineales

Teoría de Autómatas y Lenguajes Formales.

CONJUNTOS Y RELACIONES BINARIAS

A)2011 B)2012 B)2013 D)2014 E)2015. C) a5 +b 5

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

Teoría de Lenguajes. Teoría de la Programación I

MATEMÁTICA DISCRETA: Conjuntos, combinatoria y grafos. Roberto J. de la Fuente López. Versión (corrección de erratas a versión )

Clase 17: Autómatas de pila

LENGUAJES FORMALES Y AUTÓMATAS

Unidad 4. Autómatas de Pila

MATEMÁTICAS II CC III PARCIAL

Matriz sobre K = R o C de dimensión m n

Algebra lineal y conjuntos convexos

Sentido de recorrido. q i

Capítulo 1: Fundamentos: Lógica y Demostraciones Clase 3: Relaciones, Funciones, y Notación Asintótica

Estructuras algebraicas

Métodos directos para resolver sistemas de ecuaciones lineales

Métodos Avanzados para Análisis y Representación de Imágenes

El número decimal 57, en formato binario es igual a:

Transcripción:

Teoría de Lenguajes Gramáticas incontextuales José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Gramáticas incontextuales 1. Definiciones básicas. 2. Simplificación de gramáticas incontextuales. 3. Formas normales. Algoritmos de normalización. 4. Análisis de cadenas en gramáticas incontextuales. 5. Propiedades de decisión. 6. Subclases de gramáticas incontextuales Bibliografía M. A. Harrison. Introduction to Formal Language Theory. Addison-Wesley. 1978. J. E. Hopcroft, J. D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison-Wesley.1979. G. Rozenberg, A. Salomaa (Eds.). Handbook of Formal Languages (Vol.1) Springer. 1997.

Definiciones básicas Gramática incontextual: G=(N,, P, S) con las producciones de la forma A A N, (N )* S AB A aab B cbd Árboles de derivación A S B a A b c B d Derivaciones directas S AB aabb abb abcbd abcd Derivaciones (por la izquierda, por la derecha, arbitrarias) S * abcd * Lenguaje generado por la gramática G L(G) = { w : S * w } Jerarquía de Chomsky Ambigüedad, lenguaje inherentemente ambiguo L reg L cf L cs Simplificación de gramáticas incontextuales G=(N,, P, S) diremos que está simplificada si (1) Todos sus símbolos son útiles (1.1) Generativos A N : A * w w * (1.2) Alcanzables A ( N): S * A, ( N)* (2) No contiene producciones unitarias (3) No contiene producciones vacías A B A,B N A A N Para toda gramática incontextual G existe una gramática incontextual G simplificada tal que L(G ) = L(G) { }

Forma Normal de Chomsky G=(N,, P, S) diremos que está en forma normal de Chomsky si todas sus producciones toman una de las dos siguientes formas (1) A BC A, B, C N (2) A a a Para toda gramática incontextual G existe una gramática incontextual G en forma normal de Chomsky tal que L(G ) = L(G) { } Algoritmo para la obtención de la Forma Normal de Chomsky Entrada G=(N,, P, S) gramática incontextual arbitraria con L(G) Salida G 1 =(N 1, 1, P 1, S) gramática en FNC tal que L(G 1 ) = L(G) { } Método /* Pasos preliminares */ Obtener G 2 =(N 2, 2, P 2, S) simplificada tal que L(G 2 ) = L(G) { } /* Fase 1 */ Para toda producción A X 1 X 2 X n P 2 con n 2 Si X i 2 sustituir X i por C xi en la anterior producción y añadir la producción C xi X i El resto de producciones permanecen igual Se obtiene la gramática G 3 = (N 3, 3, P 3, S) con L(G 3 ) = L(G 2 ) /* Fase 2 */ Para toda producción A X 1 X 2 X n P 3 con n 3 Sustituir la anterior producción por el conjunto de producciones A X 1 D 1 D 1 X 2 D 2 D n-2 X n-1 X n El resto de producciones permanecen igual Se obtiene la gramática G 1 = (N 1, 1, P 1, S) con L(G 1 ) = L(G 2 ) = L(G) { }

Ejemplo G=(N,, P, S) (simplificada) S AaBb ABB Aa A aa ab B a BB /* Fase 1 */ G 3 =(N 3, 3, P 3, S) S AC a BC b ABB AC a A C a A C a C b B a BB C a a C b b /* Fase 2 */ G 1 =(N 1, 1, P 1, S) S AD 1 AD 3 AC a D 1 C a D 2 D 2 BC b D 3 BB A C a A C a C b B a BB C a a C b b Forma Normal de Greibach G=(N,, P, S) diremos que está en forma normal de Greibach si todas sus producciones son de la forma A a a N* Para toda gramática incontextual G existe una gramática incontextual G en forma normal de Greibach tal que L(G ) = L(G) { }

Algoritmo para la obtención de la Forma Normal de Greibach (1) Entrada G=(N,, P, S) gramática incontextual arbitraria con L(G) Salida G 1 =(N 1, 1, P 1, S) gramática en FNG tal que L(G 1 ) = L(G) { } Método /* Pasos preliminares */ Obtener G 2 =(N 2, 2, P 2, S) simplificada y en FNC tal que L(G 2 ) = L(G) { } /* Fase 1 */ N 2 = { A 1, A 2,, A m } Para k=1 hasta m Para j=1 hasta k-1 Para cada producción A k A j Para cada producción A j Añadir la producción A k Eliminar la producción A k A j Para cada producción A k A k Añadir la producción B k Añadir la producción B k B k Eliminar la producción A k A k Para cada producción A k Si no comieza por A k Añadir la producción A k B k Algoritmo para la obtención de la Forma Normal de Greibach (2) Al final de la Fase 1 las producciones están en una de las tres formas (1) A i A j con j > i (2) A i a (3) B i con a (N { B 1, B 2,, B i-1 })* Las producciones de la forma (2) ya están en FNG Todas las producciones de A m ya están en FNG Las producciones de los nuevos símbolos B i comienzan por símbolos A j /* Fase 2 */ Para k = m-1 hasta 1 Para cada producción A k A j Para cada producción A j Añadir la producción A k Eliminar la producción A k A j Para cada producción B k A j Para cada producción A j Añadir la producción B k Eliminar la producción B k A j

Ejemplo G=(N,, P, A 1 ) (simplificada y en FNC) /* Fase 1 */ G 2 =(N 2, 2, P 2, A 1 ) (1) (2) (3) A A 1 A 2 A 1 A 2 A 3 3 A A 2 a a B 2 A 2 A 3 A 2 a 2 A B 2 A 3 A 2 B 2 A 3 A 3 A 1 A 3 b 2 A 3 A 1 A 3 b A 1 A 2 A 3 A 2 A 1 A 2 a A 3 A 1 A 3 b A 1 A 2 A 3 A 2 a a B 2 B 2 A 3 A 2 B 2 A 3 A 2 A 3 A 2 A 3 A 3 b (4) A 1 A 2 A 3 A 2 a ab 2 B 2 A 3 A 2 B 2 A 3 A 2 A 3 a A 3 A 3 a B 2 A 3 A 3 b /* Fase 2 */ G 1 =(N 1, 1, P 1, A 1 ) (1) (2) A 1 a A 3 a B 2 A 3 A 2 a a B 2 B 2 A 3 A 2 B 2 A 3 A 2 A 3 a A 3 A 3 a B 2 A 3 A 3 b A 1 a A 3 a B 2 A 3 A 2 a a B 2 B 2 a A 3 A 3 A 2 B 2 a B 2 A 3 A 3 A 2 B 2 b A 2 B 2 a A 3 A 3 A 2 a B 2 A 3 A 3 A 2 b A 2 A 3 a A 3 A 3 a B 2 A 3 A 3 b Otras formas de gramáticas Forma m-estándar G=(N,, P, S) diremos que está en forma m-estándar si todas sus producciones son de la forma A a a N* m Para toda gramática incontextual G y para todo valor m 2 existe una gramática incontextual G en forma m-estándar tal que L(G ) = L(G) { }

Algoritmo para la obtención de la Forma Normal m-estándar Entrada G=(N,, P, S) gramática incontextual en Forma Normal (m+1)-estándar Salida G 1 =(N 1,, P 1, S) gramática en Forma Normal m-estándar tal que L(G 1 ) = L(G) Método N 1 = N {(A,B) : A,B N } /* Definición de las producciones de P 1 */ P 1 = {A : A P, m+1 } {A ab 1 B m-1 (B m, B m+1 ) : A ab 1 B m B m+1 P } {(A,B) B : A P, m } {(A,B) ab 1 B m-1 (B m, B) : A ab 1 B m-1 B m P} {(A,B) ab 1 B m-2 (B m-1, B m )(B m+1,b) : A ab 1 B m B m+1 P} Ejemplo G=(N,, P, A 1 ) (en FN 3-estándar) A 1 a A 3 a A 4 A 3 A 2 a a A 4 aa 2 A 2 A 3 a A 3 A 3 a A 4 A 3 A 3 b A 4 a A 3 A 3 A 4 b A 2 A 4 a G 1 =(N 1,, P 1, A 1 ) (en FN 2-estándar) N 1 = { A 1, A 2, A 3, A 4, (A 1,A 1 ), (A 1,A 2 ), (A 1, A 3 ), (A 1,A 4 ), (A 2,A 1 ), (A 2,A 2 ), (A 2, A 3 ), (A 2,A 4 ), (A 3,A 1 ), (A 3,A 2 ), (A 3, A 3 ), (A 3,A 4 ), (A 4,A 1 ), (A 4,A 2 ), (A 4, A 3 ), (A 4,A 4 ) } P 1 : A 1 a A 3 a A 4 A 3 A 2 a a A 4 aa 2 A 2 A 3 a A 3 A 3 b A 4 b A 2 A 4 a A 3 a A 4 A 3 A 3 A 3 a A 4 (A 3,A 3 ) (A 3,A 3 ) b A 3 (A 3,A 3 ) a A 3 (A 3,A 3 ) A 4 a A 3 A 2 A 4 A 4 a A 3 (A 2,A 4 ) (A 2,A 4 ) a A 4 a A 4 A 4 a A 2 (A 2, A 4 )

Otras formas de gramáticas Gramáticas invertibles G=(N,, P, S) diremos que es invertible si se cumple la siguiente propiedad ( A, B N) ( ( N)*) [((A ) P) ((B ) P)] A=B Para toda gramática incontextual G existe una gramática incontextual G invertible tal que L(G ) = L(G) Una solución no práctica A i A k A i R i A k R k R Algoritmo para la obtención de la Forma Normal invertible Entrada G=(N,, P, S) gramática incontextual simplificada Salida G 1 =(N 1,, P 1, S 1 ) gramática invertible tal que L(G 1 ) = L(G) Método N 1 = {S 1 } 2 N - S 1 N /* Definición de las producciones de P 1 */ S 1 si es un subconjunto de N que contenga a S Para cada producción B x 0 B 1 x 1 B n x n P donde B i, N, x i * Para cada auxiliar A 1,, A n N 1 {S 1 } añadir la producción A x 0 A 1 x 1 A n x n donde A = {C : C x 0 C 1 x 1 C n x n P, C i A i }

Ejemplo G=(N,, P, S) S 0A 1B A 0A 0S 1B B 1 0 G 1 =(N 1,, P 1, S 1 ) (invertible) N 1 = { S 1, {S}, {A}, {B}, {S,A}, {S,B}, {A,B}, {S,A,B} } P 1 : S 1 {S} {S,A} {S,B} {S,A,B} B 1 0 {B} 1 0 S 0A A 0A A 1B S 1B A 0S {S,A} 0{A} 0{A,B} 0{S,A} 0{S,A,B} {S,A} 1{B} 1{A,B} 1{S,B} 1{S,A,B} {A} 0{S} 0{S,B} Análisis de cadenas en gramáticas incontextuales El problema de la pertenencia ( Membership Problem ) Dada una gramática incontextual arbitraria G=(N,, P, S) y una cadena w * w L(G)? Si w = el problema se reduce a comprobar si S es anulable En el caso de w podemos trabajar con una gramática simplificada y en forma normal G tal que L(G ) = L(G) { }. El problema se reduce a comprobar si w L(G )

Análisis de cadenas mediante exploración exhaustiva Entrada : G=(N,, P, S) en FNG y w = w 1 w 2 w n (w ) Salida : Cierto (si w L(G)) o Falso (si w L(G)) Método : Explorar sistemáticamente todos los árboles de derivación que sigan el orden de los símbolos de la cadena S w 1 A 1 A p w 2 A 2 A q Complejidad temporal: O(k n ) (siendo k el número máximo de producciones que tiene cualquier auxiliar de la gramática) Algoritmo de análisis CYK (Cocke-Younger-Kasami) Entrada : G=(N,, P, S) en FNC y w = w 1 w 2 w n (w ) Salida : Cierto (si w L(G)) o Falso (si w L(G)) Método : Para i=1 hasta n V i1 = { A : A w i P } Para j=2 hasta n Para i=1 hasta n-j+1 V ij = Para k=1 hasta j-1 V ij = V ij { A : A BC P, B V ik, C V i+k, j-k } Si S V 1n devolver Cierto sino devolver Falso Complejidad temporal: O(n 3 ) Complejidad espacial: O(n 2 ) (siendo G un parámetro externo)

Ejemplo G=(N,, P, S) (simplificada y en FNC) S AB BC A BA a B CC b C AB a w = baaba j 1 2 3 4 5 b a a b a i 1 2 3 4 5 B A,C A,C B A,C S,A B S,C S,A B B S,A,C S,A,C S V 15 Cierto (w L(G)) Propiedades de decisión Un problema de decisión (expresado en términos formales) es decidible si existe un algoritmo que lo resuelva. (En caso contrario es indecidible) Algunos problemas decidibles referentes a gramáticas incontextuales El problema de la vacuidad : L(G) =? El problema de la infinitud : L(G) =? El problema de la pertenencia : w L(G)? El problema de la equivalencia estructural : str(g 1 ) = str(g 2 )? (str(g i ) denota el conjunto de esqueletos de G i, árboles de derivación donde los nodos internos no tienen etiquetas )

Algunos problemas indecidibles referentes a gramáticas incontextuales El problema de la inclusión : L(G 1 ) L(G 2 )? El problema de la equivalencia : L(G 1 )= L(G 2 )? El problema de la exhaustividad : L(G) = *? El problema de la regularidad : Es L(G) regular? El problema de la ambigüedad : Es G ambigua? El problema de la ambigüedad inherente : Es L(G) inherentemente ambiguo? El problema de la complementariedad : Es L(G) incontextual? El problema de la intersección : Es L(G 1 ) L(G 2 ) incontextual? Algunas subclases de gramáticas incontextuales Gramáticas lineales pares G=(N,, P, S) A u B v A w A, B N u, v, w * u = v L reg L el L cf Gramáticas lineales G=(N,, P, S) A u B A B v A w A, B N u, v, w * L reg L el L lin L cf