3-1_Introduccion

21
Introducción Árboles de Derivación Un Algoritmo para la Vacuidad Lenguajes Libres de Contexto Más allá de los Autómatas Finitos. Universidad de Cantabria Lenguajes Incontextuales

description

Universidad de Cantabria - CURSO de TEORIA DE AUTOMATAS

Transcript of 3-1_Introduccion

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Lenguajes Libres de ContextoMs all de los Autmatas Finitos.

    Universidad de Cantabria

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Esquema

    1 Introduccin

    2 rboles de Derivacin

    3 Un Algoritmo para la Vacuidad

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Introduccin

    Hemos visto que los lenguajes regulares son demasiadosimples. Ahora tenemos que dar un paso ms all y estudiarlos lenguajes libres de contexto.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Introduccin

    Los lenguajes libres de contexto tienen una aplicacin a loscompiladores, aunque existen otras aplicaciones como lacomparticin de informacin.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Introduccin

    Por qu no ir un paso ms all? Por qu no se estudian lasgramticas sensibles al contexto?

    Para gramticas sensibles al contexto, el problema dedecidir si el lenguaje que genera es vaco o no tambin esun problema indecidible.En cuanto al Problema de Palabra para gramticassensibles al contexto, el problema es PSPACEcompletopara ciertas subclases, con lo que se hace impracticablepara su uso en la vida real.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Introduccin

    Por qu no ir un paso ms all? Por qu no se estudian lasgramticas sensibles al contexto?

    Para gramticas sensibles al contexto, el problema dedecidir si el lenguaje que genera es vaco o no tambin esun problema indecidible.En cuanto al Problema de Palabra para gramticassensibles al contexto, el problema es PSPACEcompletopara ciertas subclases, con lo que se hace impracticablepara su uso en la vida real.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Nota

    PSPACE se refiere a la clase de problemas que puedenser resueltos usando un nmero eficiente de espacio.PSPACE-Completo es la clase de problemas ms difcilesde PSPACE.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Definicin

    Definicin (Gramticas libres de contexto o de Tipo 2)Llamaremos gramtica libre de contexto a toda gramticaG = (V ,,Q0,P) tal que todas las producciones de P son deltipo siguiente:A 7 , donde A V y ( V ).Un lenguaje libre de contexto es un lenguaje generado poruna gramtica libre de contexto.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Definicin

    El sistema de transicin asociado a una gramtica libre decontexto es el mismo que asociamos a una gramticacualquiera. Usaremos el smbolo C `G C para indicar que laconfiguracin C es deducible de la configuracin C mediantecomputaciones de G.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    rboles de Derivacin

    DefinicinLlamamos formas sentenciales a todos los elementos de(V ). Llamaremos formas terminales a las formassentenciales que slo tienen smbolos en el alfabeto desmbolos terminales, es decir, a los elementos de .

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    rboles de Derivacin

    Definicin (rbol de Derivacin)

    Sea G := (V ,,Q0,P) una gramtica libre de contexto, seaA V una variable. Diremos que un rbol TA := (V ,E)etiquetado es un rbol de derivacin asociado a G si verificalas propiedades siguientes:

    La raz del rbol es un smbolo no terminal (i.e., unavariable) y los otros nodos interiores estn etiquetados conuna variable y las hojas con un smbolo terminal o .Si un nodo est etiquetado con una variable X y susdescendientes (ledos de izquierda a derecha) en el rbolson X1, . . . ,Xk , entonces hay una produccinX 7 X1 Xk en G.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    rboles de Derivacin

    EjemploHallar rboles de derivacin para las gramticas siguientes:

    A 7 BF ,B 7 EC,E 7 a,C 7 b,F 7 c, de tal maneraque la raz sea A y las hojas estn etiquetadas con a,b, cen este orden.Q0 7 zABz,B 7 CD,C 7 c,D 7 d ,A 7 a, de tal maneraque la raz sea Q0 y las hojas estn etiquetadas (deizquierda a derecha) mediante z,a, c,d , z.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    rboles de Derivacin

    Sea G := (V ,,Q0,P) una gramtica libre de contexto, seaA V una variable. Sea TA un rbol asociado a la gramticacon raz A. Sea (V ) la forma sentencial obtenidaleyendo de izquierda a derecha los smbolos de las hojas deTA. Entonces, A `G . En particular, las formas sentencialesalcanzables desde el smbolo inicial Q0 estn representadaspor los rboles de derivacin de raz Q0.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    rboles de Derivacin

    Las palabras sobre el alfabeto estn en el lenguaje L(G)generado por una gramtica G si y solamente si existe un rbolde derivacin cuyas hojas (ledas de izquierda a derecha)producen la palabra .

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    El Problema de la Vacuidad

    El problema de decidir si es o no vaco el lenguaje generadopor una gramtica libre de contexto se puede resolveralgortmicamente.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Resultado

    Teorema (Vacuidad de un lenguaje libre de contexto)El problema de la vacuidad de los lenguajes generados porgramticas libres de contexto es decidible. Es decir, existe unalgoritmo que toma como entrada una gramtica libre decontexto G y devuelve una respuesta afirmativa si L(G) 6= ynegativa en caso contrario.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Idea del Algoritmo

    Entrada: Una gramtica libre de contexto G = (V ,,Q0,P).M := N := {A V : (A 7 ) P, }

    mientras N 6= M hacerM := NN := {A V : (A 7 ) P, (N )} N.

    finaliza mientrassi Q0 N, entonces devuelve SIen otro caso devuelve NOfinaliza si

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Idea de la Demostracin

    Consideremos una cadena de subconjuntos Ni de V quereflejan los sucesivos pasos por el ciclo mientras.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Idea de la Demostracin

    Escribamos N0 = y denotemos por Ni al conjunto obtenido enel isimo paso por el ciclo mientras, sin considerar lacondicin de parada. Esto es,

    Ni := {A V : (A 7 ) P, (Ni1 )} Ni1.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Idea de la Demostracin

    Por construccin observamos, adems, que si existe un paso ital que Ni = Ni+1, entonces, Ni = Nm para todo m i + 1.

    Lenguajes Incontextuales

  • Introduccinrboles de Derivacin

    Un Algoritmo para la Vacuidad

    Idea de la Demostracin

    Si definimos la altura por el nmero de nodos atravesados enel camino ms largo, se tiene que:

    Una variable X V verifica que X Ni si y solamente si existeun rbol de derivacin de G de altura i + 1 que tiene X comoraz y cuyas hojas estn etiquetadas con smbolos en {}.

    Lenguajes Incontextuales

    Introduccinrboles de DerivacinUn Algoritmo para la Vacuidad