Quiz de practica — Parcial 2
Parcial 2 • Dificultad: medium
Quiz de practica — Parcial 2
Temas: Automatas de pila (PDA), propiedades de los LLC, maquinas de Turing, computabilidad, jerarquia de Chomsky. Repaso acumulativo: DFA, NFA, CFG, expresiones regulares, lema de bombeo.
Instrucciones: Resuelva cada pregunta con notacion formal completa. Justifique sus respuestas.
Pregunta 1 — Diseno de PDA (7-tupla)
Disenar un automata de pila (PDA) que acepte por estado final el lenguaje:
Dar la 7-tupla completa y la funcion de transicion .
Ver respuesta
Transiciones:
Idea: En se apilan ‘s por cada . Al leer la primera , se transita a desapilando. En se desapila una por cada . Si la pila queda con solo , se acepta. Se requiere porque no hay transicion .
Pregunta 2 — Traza de ejecucion del PDA
Usando el PDA de la Pregunta 1, realizar la traza completa de ejecucion (descripcion instantanea) para la cadena .
Ver respuesta
La cadena es aceptada porque se consume toda la entrada y se alcanza el estado final .
Pregunta 3 — Conversion de CFG a PDA
Dada la gramatica libre de contexto :
Construir el NPDA de estado unico equivalente que acepte por pila vacia, usando el metodo estandar de conversion CFG PDA.
Ver respuesta
Transiciones de produccion (reemplazar variable en tope de pila por lado derecho):
Transiciones de emparejamiento (consumir terminal si coincide con tope):
Nota: El PDA simula una derivacion por la izquierda. La pila almacena la forma sentencial restante. Se acepta cuando la pila queda vacia y la entrada se ha consumido.
Pregunta 4 — Propiedades de los LLC (Verdadero o Falso)
Para cada afirmacion, indicar si es verdadera (V) o falsa (F). Justificar brevemente.
(a) Los lenguajes libres de contexto son cerrados bajo union.
(b) Los lenguajes libres de contexto son cerrados bajo interseccion.
(c) Los lenguajes libres de contexto son cerrados bajo complemento.
(d) La interseccion de un lenguaje libre de contexto con un lenguaje regular siempre es libre de contexto.
(e) Si es libre de contexto y es regular, entonces es libre de contexto.
Ver respuesta
(a) Verdadero. Si genera y genera (con variables disjuntas), se construye con nueva variable inicial . Entonces .
(b) Falso. Contraejemplo clasico: y son ambos LLC, pero no es libre de contexto.
(c) Falso. Si los LLC fueran cerrados bajo complemento, por las leyes de De Morgan () tambien serian cerrados bajo interseccion, lo cual contradice (b).
(d) Verdadero. Se demuestra con la construccion producto: dado un PDA para y un DFA para , se construye un PDA que simula ambos en paralelo. El PDA resultante acepta .
(e) Verdadero. Se tiene . Como es regular, es regular (los regulares son cerrados bajo complemento). Por (d), la interseccion de un LLC con un regular es LLC.
Pregunta 5 — Lema de bombeo para LLC
Demostrar que el lenguaje no es libre de contexto, usando el lema de bombeo para lenguajes libres de contexto.
Ver respuesta
Lema de bombeo (CFL): Si es un LLC, entonces existe tal que toda cadena con se puede descomponer como donde:
- Para todo :
Demostracion por contradiccion:
Supongamos que es libre de contexto. Sea la constante del lema de bombeo. Elegimos , con .
Por el lema, con y .
Como , la subcadena no puede contener simultaneamente ‘s y ‘s (estan separadas por caracteres ). Por lo tanto, contiene a lo sumo dos de los tres simbolos.
Caso 1: contiene solo ‘s y/o ‘s (no contiene ‘s). Entonces tiene mas ‘s o ‘s que ‘s, asi que .
Caso 2: contiene solo ‘s y/o ‘s (no contiene ‘s). Entonces tiene mas ‘s o ‘s que ‘s, asi que .
En todos los casos, bombear con produce una cadena fuera de , contradiciendo el lema. Por lo tanto, no es libre de contexto.
Pregunta 6 — Maquina de Turing: diseno informal
Disenar informalmente una maquina de Turing que reconozca el lenguaje de los palindromos sobre :
Describir los estados, la estrategia general, y el movimiento de la cabeza. No es necesario dar la tabla de transiciones completa, pero si la idea de cada fase del algoritmo.
Ver respuesta
Estrategia: Comparar el primer simbolo con el ultimo, luego el segundo con el penultimo, y asi sucesivamente.
Estados:
- : estado inicial. Leer el primer simbolo de la cinta.
- : se leyo una al inicio. Buscar el final para verificar que tambien sea .
- : se leyo una al inicio. Buscar el final para verificar que tambien sea .
- : regresar la cabeza al inicio (al primer simbolo no marcado).
- : estado de aceptacion.
- : estado de rechazo.
Algoritmo:
-
Leer y marcar el primer simbolo. En , leer el simbolo bajo la cabeza. Si es blanco (), aceptar (cadena vacia o todos los simbolos ya fueron verificados). Si es , reemplazarlo por , ir a . Si es , reemplazarlo por , ir a .
-
Mover al final. En o , mover la cabeza a la derecha hasta encontrar o , luego retroceder una posicion para posicionarse sobre el ultimo simbolo no marcado.
-
Verificar el ultimo simbolo. Si el simbolo coincide con el primero (ej: y se lee ), marcarlo con e ir a . Si no coincide, ir a . Si ya esta marcado (solo quedaba un simbolo), aceptar.
-
Regresar al inicio. En , mover la cabeza a la izquierda hasta encontrar , luego avanzar una posicion a la derecha y volver a .
-
Repetir hasta aceptar o rechazar.
Complejidad: pasos para una cadena de longitud .
Pregunta 7 — Jerarquia de Chomsky
Clasificar cada uno de los siguientes lenguajes en el nivel mas restrictivo de la jerarquia de Chomsky al que pertenecen. Justificar brevemente.
(a)
(b)
(c)
(d)
Ver respuesta
(a) Tipo 3 — Lenguaje regular.
Se reconoce con un DFA de dos estados que alterna entre “par” e “impar” al leer un . La expresion regular es: (1*01*01*)*1*. Pertenece al nivel mas bajo de la jerarquia.
(b) Tipo 2 — Lenguaje libre de contexto (no regular).
Es generado por la gramatica (tipo 2). No es regular: el lema de bombeo para lenguajes regulares lo demuestra facilmente (bombeando , se desbalancea la cantidad de ‘s y ‘s).
(c) Tipo 1 — Lenguaje sensible al contexto (no libre de contexto).
Se demostro en la Pregunta 5 que no es LLC. Sin embargo, es sensible al contexto: se puede construir una gramatica sensible al contexto (o equivalentemente, un automata linealmente acotado) que lo reconozca. La gramatica usa reglas como para reordenar simbolos.
(d) No es recursivo (fuera de la jerarquia, o Tipo 0 / RE).
Este es el problema de la detencion (Halting problem). Es recursivamente enumerable (Tipo 0): se puede construir una MT que simule la MT dada y acepte si se detiene. Pero no es decidible (no es recursivo), ya que no existe MT que siempre se detenga y decida este lenguaje (demostrado por Turing via diagonalizacion).
| Lenguaje | Tipo | Clase |
|---|---|---|
| 3 | Regular | |
| 2 | Libre de contexto | |
| 1 | Sensible al contexto | |
| 0 | Recursivamente enumerable |
Pregunta 8 — Repaso: diseno de DFA
Disenar un DFA que acepte el lenguaje sobre :
Dar la 5-tupla y la tabla de transiciones.
Ver respuesta
Tabla de transiciones:
| Estado | 0 | 1 |
|---|---|---|
- : se han leido un numero par de ‘s (estado inicial y de aceptacion).
- : se han leido un numero impar de ‘s.
- Los ‘s no cambian de estado (son irrelevantes para la paridad de ‘s).
- La cadena vacia se acepta (cero es par).
Pregunta 9 — Gramaticas libres de contexto (Verdadero o Falso)
Para cada afirmacion, indicar si es verdadera (V) o falsa (F). Justificar brevemente.
(a) Toda gramatica libre de contexto ambigua puede transformarse en una gramatica no ambigua equivalente.
(b) Toda gramatica libre de contexto puede transformarse a la forma normal de Chomsky (CNF).
(c) En una derivacion por la izquierda, en cada paso se reemplaza la variable mas a la izquierda de la forma sentencial.
(d) Si una cadena tiene dos arboles de derivacion distintos en una gramatica , entonces es ambigua.
(e) Todo lenguaje libre de contexto tiene una gramatica en forma normal de Greibach (GNF).
Ver respuesta
(a) Falso. Existen lenguajes inherentemente ambiguos: todo LLC tiene al menos una gramatica, pero algunos lenguajes son tales que toda gramatica que los genere es ambigua. Un ejemplo clasico es .
(b) Verdadero (con una salvedad). Toda CFG que no genera la cadena vacia puede convertirse a CNF. Si , se permite la regla donde no aparece en el lado derecho de ninguna otra produccion (version extendida de CNF).
(c) Verdadero. Esa es precisamente la definicion de derivacion por la izquierda (leftmost derivation). En cada paso se expande la variable mas a la izquierda.
(d) Verdadero. Una gramatica es ambigua si y solo si existe al menos una cadena que tiene dos o mas arboles de derivacion distintos.
(e) Verdadero (con la misma salvedad que CNF). Todo LLC sin tiene una gramatica en GNF, donde cada produccion tiene la forma con y . La conversion se realiza mediante el algoritmo de Greibach (sustitucion y eliminacion de recursion izquierda).
Pregunta 10 — Demostracion formal: gramatica y lenguaje generado
Considere la gramatica con producciones:
(a) Demostrar que .
(b) Dar las derivaciones por la izquierda para las cadenas , y .
Ver respuesta
(a) Demostracion (por doble contencion):
():
Toda derivacion en comienza con . Luego, en cada paso, agrega una a la izquierda y una a la derecha. Al aplicar , se termina la derivacion. Si se aplica exactamente veces () y luego , se obtiene . Como , se tiene . Toda cadena generada pertenece a .
():
Dada con , construimos la derivacion: aplicar , luego exactamente veces, y finalmente . Esto produce . Por lo tanto, para todo .
Se concluye que .
(b) Derivaciones por la izquierda:
Para ():
Para ():
Para ():