11.07.2015 Views

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 9INDECIDIBILIDAD9.1 ProblemasInformalmente se usa la palabra problema para referirse a preguntas tales como: ¿Es una gramática libre <strong>de</strong>contexto dada, ambigua? En el caso <strong>de</strong>l problema anterior, <strong>de</strong> la ambiguedad, una instancia <strong>de</strong>l problemaes una gramática en particular. En general, una instancia <strong>de</strong> un problema es una lista <strong>de</strong> argumentos, unargumento por cada parámetro <strong>de</strong>l problema. Restringiendo la atención sólo a problemas cuya respuesta seaSI o NO y codificando instancias <strong>de</strong>l problema por strings sobre un alfabeto finito, es posible transformarla pregunta <strong>de</strong> si existe un algoritmo para un problema, a saber si un lenguaje en particular es recursivo.Debe notarse que al consi<strong>de</strong>rar sólo problemas con respuesta SI o NO, no se está <strong>de</strong>jando <strong>de</strong> lado muchosproblemas importantes, ya que muchos tienen versiones en SI o NO que son, <strong>de</strong>mostrablemente, tan difícilescomo el “problema general”.Considérese el problema <strong>de</strong> la ambiguedad <strong>de</strong> las gramáticas libres <strong>de</strong> contexto. Denomínese AMB ala versión SI o NO. Una versión más general <strong>de</strong>l problema, llamada encuentre, requiere producir un stringcon 2 ó más árboles <strong>de</strong> <strong>de</strong>rivación, si existe, o respon<strong>de</strong>r “NO”, si no existe. Un algoritmo para encuentrepue<strong>de</strong> usarse para resolver AMB. Si encuentre produce un string w, se respon<strong>de</strong> SI ; si encuentre respon<strong>de</strong>NO, se respon<strong>de</strong> NO. Por otro lado, dado un algoritmo para AMB, se pue<strong>de</strong> producir un algoritmo paraencuentre. El algoritmo primero aplica AMB a la gramática. Si AMB respon<strong>de</strong> NO, se respon<strong>de</strong> NO. SiAMB respon<strong>de</strong> SI , el algoritmo comienza a generar sistemáticamente todos los strings sobre el alfabeto <strong>de</strong>G. Tan pronto como se genera un string w, se ve si tiene dos o más árboles <strong>de</strong> <strong>de</strong>rivación. Nótese que elalgoritmo empieza a generar strings sólo si G es ambigua, por lo tanto eventualmente encontrará el string<strong>de</strong>seado y lo escribirá. Por lo tanto, en realidad se tiene un algoritmo. La parte <strong>de</strong>l algoritmo que chequeasi w tiene 2 ó más árboles <strong>de</strong> <strong>de</strong>rivación se <strong>de</strong>ja como ejercicio.El proceso por el cual se construye un algoritmo para un problema (como encuentre), usando un supuestoalgoritmo para otro (AMB), es llamado una reducción (<strong>de</strong> encuentre a AMB). En general, cuando un problemaA se reduce a un problema B, se está mostrando que B es al menos tan “difícil” como A. Por lo tantoen este caso, como en muchos otros, el problema SI o NO AMB no es más sencillo (fácil) que la versión másgeneral <strong>de</strong>l problema. Posteriormente se verá que no hay algoritmo para AMB. Por la reducción <strong>de</strong> AMBa encuentre, se concluye que tampoco hay un algoritmo para encuentre, ya que su existencia implicaría laexistencia <strong>de</strong> un algoritmo para AMB, una contradicción.Un punto instructivo adicional concierne a la codificación <strong>de</strong> la gramática G. Como todas las MT tienenun alfabeto fijo, no se pue<strong>de</strong> consi<strong>de</strong>rar la notación <strong>de</strong> cuádrupla G = (V, T, P, S) como la codificación <strong>de</strong>G sin modificarla. Pero es posible codificar cuádruplas como strings binarios. Los metasímbolos (, ), {,}, , , → se codifican como 1, 10, 100, . . . , 10 5 , respectivamente. El i-ésimo símbolo <strong>de</strong> la gramática (encualquier or<strong>de</strong>n elegido), se codifica como 10 i+5 . Con esta codificación no se distinguen los terminales ni losno-terminales. Por supuesto que renombrar los no-terminales no afecta el lenguaje generado, por lo que sussímbolos no son importantes. Aún cuando se piensa que la i<strong>de</strong>ntidad <strong>de</strong> los terminales es importante, para139

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!