Curso Básico de Computación

Documentos relacionados
8.1 Indecibilidad 8.5 Indecibilidad en el problema de la correspondencia de Post

5 Autómatas de pila 5.1 Descripción informal. 5.2 Definiciones

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

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

Introducción a la indecidibilidad

13.3. MT para reconocer lenguajes

Departamento de Tecnologías de la Información. Tema 4. Máquinas de Turing. Ciencias de la Computación e Inteligencia Artificial

Otras propiedades de los lenguajes regulares

1. Cadenas EJERCICIO 1

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 42

Curso Básico de Computación

Propiedades de lenguajes independientes del contexto

Máquinas de Turing IIC3242. IIC3242 Máquinas de Turing 1 / 45

GRAMÁTICAS LIBRES DE CONTEXTO

Procesadores de Lenguaje

autómatas finitos y lenguajes regulares LENGUAJES FORMALES Y

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

Curso Básico de Computación

Equivalencia Entre PDA y CFL

Unidad 4. Autómatas de Pila

Tema 4: Gramáticas independientes del contexto. Teoría de autómatas y lenguajes formales I

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

Expresiones regulares, gramáticas regulares

Teoría de la Computación puesta en Práctica

Números naturales y recursividad

Autómatas de Pila y Lenguajes Incontextuales

Terminaremos el capítulo con una breve referencia a la teoría de cardinales.

Problemas indecidibles

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

Tema 3: Gramáticas regulares. Teoría de autómatas y lenguajes formales I

Grupos libres. Presentaciones.

ALGEBRA y ALGEBRA LINEAL. Primer Semestre CAPITULO I LOGICA Y CONJUNTOS.

ALGORITMOS DIGITALES II. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006

Derivada de la función compuesta. Regla de la cadena

Es claro que es una relación de equivalencia. Para ver que tener la misma cardinalidad y la cardinalidad están bien definidas queremos ver que

SSL Guia de Ejercicios

Capítulo 9. Introducción a los lenguajes formales. Continuar

Aprendizaje Computacional y Extracción de Información

EJERCICIOS del TEMA 3: Lenguajes independientes del contexto

Estructuras algebraicas. Departamento de Álgebra. Apuntes de teoría

Sea Σ un alfabeto y L el lenguaje de los palíndromos sobre Σ. Sean a, b dos elementos de Σ. Se demuestra por reducción al absurdo que L no es regular:

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

PROGRAMACIÓN II AÑO 2009 TALLER 3: TEORÍA DE LENGUAJES Y AUTÓMATAS

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

Introducción. Las gramáticas definen las reglas que definen a los lenguajes Las reglas pueden tener una diversa variedad de esquemas

Convertir un AFND a un AFD

Clases de complejidad computacional: P y NP

Computabilidad y Lenguajes Formales: Autómatas de Pila

CONJUNTOS REGULARES. Orlando Arboleda Molina. 19 de Octubre de Escuela de Ingeniería de Sistemas y Computación de La Universidad del Valle

Semana02[1/23] Conjuntos. 9 de marzo de Conjuntos

La Ambigüedad en el Parsing

Teoría de Lenguajes. Gramáticas incontextuales

1. (F, +) es un grupo abeliano, denominado el grupo aditivo del campo.

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

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

Capítulo 2 Conjuntos. 2.1 Introducción. 2.2 Determinación de conjuntos. Definición:

Compiladores: Análisis Sintáctico. Pontificia Universidad Javeriana Cali Ingenieria de Sistemas y Computación Prof. Gloria Inés Alvarez V.

Continuidad y monotonía

Curso Básico de Computación

Autómatas Finitos Deterministicos (DFA)

Autómatas Finitos Deterministicos (DFA)

AUTÓMATAS DE PILA Y LENGUAJES INDEPENDIENTES DEL CONTEXTO

Gramáticas libres de contexto

Expresiones Regulares y Derivadas Formales

GRAMATICAS LIBRES DEL CONTEXTO

Conjuntos. Un conjunto es una colección de objetos. Si a es un objeto y R es un conjunto entonces por. a R. se entiende que a pertenece a R.

Introducción a la Lógica y la Computación

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

3er Concurso Unversitario de Matemáticas Galois-Noether 2013 Segunda Etapa

El Autómata con Pila: Transiciones

Una topología de los números naturales*

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

Capítulo 4. Lógica matemática. Continuar

Tema: Autómata de Pila

1 LIMITES Y DERIVADAS

Computabilidad y lenguajes formales: Sesión 19. Gramáticas Incontextuales (Context Free Grammars)

Lenguajes Libres del Contexto

Lenguajes, Gramáticas y Autómatas Conceptos

Teoremas de Convergencia

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Conjuntos, relaciones y funciones Susana Puddu

ESCUELA: UNIVERSIDAD DEL ISTMO

Semana 09 [1/28] Sucesiones. 29 de abril de Sucesiones

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Espacios Vectoriales

Autómatas Mínimos. Encontrar el autómata mínimo. Universidad de Cantabria. Introducción Minimización de Autómatas Deterministas Resultados Algoritmo

Teoría de Lenguajes. Clase Teórica 8 Propiedades de Lenguajes Independientes de Contexto y su Lema de Pumping Primer cuartimestre 2014

ƒ : {(1, 4), (2, 5), (3, 6), (4, 7)}.

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

RACCONTO SOBRE CONJUNTOS

Tema 2: El grupo de las permutaciones

16 Análisis sintáctico I

Conceptos básicos sobre gramáticas

b) Sea una relación de equivalencia en A y una operación en A. Decimos que y son compatibles si a b a c b c y c a c b para todo a, b, c A

Tipos de datos en S. Lógica y Computabilidad. Codificación de variables y etiquetas de S. Codificación de programas en S

1.-DEFINE EN QUE CONSISTEN LAS GRAMÁTICAS LIBRES DE CONTEXTO

1. Conjuntos y funciones

Un autómata con pila no determinista (APND) es una septupla Q A B F en la que

11 Secuencias, Series y Probabilidad

Transcripción:

Curso Básico de Computación 8.1 Indecibilidad Feliú Sagols Troncoso Matemáticas CINVESTAV-IPN <fsagols@math.cinvestav.mx> 2010 Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 1 / 96

8.5 Indecibilidad en el problema de la correspondencia de Post Los problemas indecidibles aparecen en varias áreas. En las próximas tres secciones se analizarán algunos de los problemas más interesantes en la teoría de los lenguajes y se desarrollarán técnicas para probar problemas indecidibles particulares. Se comenzará con el Problema de Correspondencia de Post, el cual constituye una valiosa herramienta para establecer la indecibilidad de otros problemas. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 2 / 96

Una instancia del Problema de la Correspondencia de Post (PCP) consiste de dos listas de cadenas, A = w 1,..., w k y B = x 1,..., x k, sobre algún alfabeto Σ. Esta instancia del PCP tiene una solución si existe una sucesión de enteros i 1, i 2,..., i m, con m 1, tal que w i1, w i2,..., w im = x i1, x i2,..., x im. La sucesión i 1, i 2,..., i m es una solución a esta instancia de PCP. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 3 / 96

Ejemplo: Sea Σ ={0, 1}. Sean A y B listas de tres cadenas cada una, tal como se definen en la siguiente figura: Lista A Lista B i w i x i 1 1 111 2 10111 10 3 10 0 En este caso, el PCP tiene una solución. Sea m = 4, i 1 = 2, i 2 = 1, i 3 = 1 e i 4 = 3. Entonces w 2 w 1 w 1 w 3 = x 2 x 1 x 1 x 3 = 101111110. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 4 / 96

Ejemplo: Sea Σ ={0, 1}. Sean A y B listas de tres cadenas cada una, tal como se muestran en la siguiente figura: Lista A Lista B i w i x i 1 10 101 2 011 11 3 101 011 Supóngase que esta instancia del PCP tiene una solución i 1, i 2,..., i m. Claramente, i 1 = 1, ya que ninguna cadena que comienza con w 2 = 011 puede ser igual a una cadena que empieza con x 2 = 11; ninguna cadena que comienza con Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 5 / 96

w 3 = 101 puede ser igual a una cadena que empieza con x 3 = 011. Se escribe la cadena de la lista A arriba de la cadena de la lista B correspondiente. Hasta ahora se tiene 10 101 La selección siguiente de A debe comenzar con un 1. Así, i 2 = 1 o i 2 = 3. Pero i 2 = 1 no servirá, porque ninguna cadena que comience con w 1 w 1 = 1010 puede ser igual a una cadena que empiece con x 1 x 1 = 101101. Con i 2 = 3, se tiene Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 6 / 96

10101 101011 Como la cadena de la lista B excede nuevamente a la cadena de la lista A por un símbolo 1, un argumento similar sirve para mostrar que i 3 = i 4 = = 3. Así, existe sólo una sucesión de elecciones que genera cadenas compatibles, y para esta sucesión B siempre es un caracter más larga. Así, esta instancia del PCP no tiene solución. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 7 / 96

Una versión modificada del PCP A continuación se probará que el PCP es indecidible, mostrando que si fuera decidible, entonces se tendría un algoritmo para L u. Primero se probará que, si el PCP fuese decidible, entonces una versión modificada del PCP sería también decidible. El Problema de Correspondencia de Post Modificado (PCPM) es el siguiente: Dadas las listas A y B, de k cadenas cada una, que están en Σ, por decir, A = w 1, w 2,..., w k y B = x 1, x 2,..., x k, existe una sucesión de enteros, i 1, i 2,..., i r, tal que w 1 w i1 w i2 w ir = x 1 x i1 x i2 x ir? Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 8 / 96

La diferencia entre el PCPM y el PCP es que en el PCPM, se requiere una solución para empezar con la primer cadena de cada lista. Lema (8.5) Si el PCP fuera indecidible, entonces el PCPM sería indecidible. Esto es, el PCPM se puede reducir al PCP. Demostración: Sean A = w 1, w 2,..., w k y B = x 1, x 2,..., x k una instancia del PCPM. Esta instancia del PCPM se puede convertir a una instancia del PCP que tenga solución si y sólo si la instancia del PCPM tiene solución. Si el PCP fuera decidible, entonces se podría resolver el PCPM, lo que probaría el lema. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 9 / 96

Sea Σ el alfabeto más pequeño que contiene todos los símbolos de las listas A y B, y sean y $ símbolos que no están en Σ. Sea y i la cadena que se obtiene a partir de w i al insertar el símbolo después de cada caracter de w i y sea z i la cadena obtenida a partir de x i al insertar el símbolo adelante de cada caracter de x i. Creándose las nuevas palabras y 0 = y 1, z 0 = z 1, y k+1 = $, z k+1 = $. Sean C = y 0, y 1,..., y k+1 y D = z 0, z 1,..., z k+1. Por ejemplo, las listas C y D construidas a partir de las listas A y B del Ejemplo 8.6 se muestran en las siguientes figuras: Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 10 / 96

PCPM Lista A Lista B i w i x i 1 1 111 2 10111 10 3 10 0 Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 11 / 96

PCP Lista C Lista D i y i z i 0 1 1 1 1 1 1 1 1 1 2 1 0 1 1 1 1 0 3 1 0 0 4 $ $ Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 12 / 96

En general, las listas C y D representan una instancia del PCP. Se afirma que esta instancia del PCP tiene una solución si y sólo si la instancia del PCPM representada por las listas A y B tiene solución. Para ver esto, nótese que si 1, i 1, i 2,..., i r es una solución al PCPM con listas A y B, entonces 0, i 1, i 2,..., i r, k + 1 es una solución al PCP con listas C y D. Asimismo, si i 1, i 2,..., i r es una solución al PCP con listas C y D, entonces i 1 = 0 y i r = k + 1 porque y 0 y z 0 son las únicas palabras con el mismo índice que comienzan con el mismo símbolo, y y k+1 y z k+1 son las únicas palabras con el mismo índice que terminan con el mismo símbolo. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 13 / 96

Sea j el entero más pequeño tal que i j = k + 1. Entonces i 1, i 2,..., i j es también una solución porque el símbolo $ aparece sólo como el último símbolo de y k+1 y z k+1, y, para ningún l, donde 1 l< j, es i l = k + 1. Claramente, 1, i 1, i 2,..., i j 1 es una solución al PCPM para las listas A y B.Si existe un algoritmo para decidir el PCP, se puede construir un algoritmo para decidir el PCPM convirtiendo cualquier instancia del PCPM a una instancia del PCP como se hizo previamente. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 14 / 96

Indecibilidad para el PCP Teorema (8.8) El PCP es indecidible. Demostración: Con el Lema 8.5, basta mostrar que si el PCPM fuera decidible, entonces se podría decidir si una MT acepta una palabra dada. Esto es, L u se reduce al PCPM, el cual por el Lema 8.5, se reduce al PCP. Para cada M y w se construye una instancia del PCPM que tiene una solución si y sólo si M acepta a w. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 15 / 96

Esto se hace construyendo una instancia del PCPM que, si tiene una solución, dicha solución comienza con #q 0 w#α 1 q 1 β 1 # #α k q k β k #, donde las cadenas entre # s consecutivos son descripciones instantáneas consecutivas en un cálculo de M con entrada w, y q k es un estado final. Formalmente, las parejas de cadenas de las listas A y B de la instancia del PCPM se dan a continuación. Como, salvo por la primera pareja, la cual debe usarse primero, el orden de las parejas es irrelevante para la existencia de una solución, las parejas se darán sin índices. Supóngase que no hay movimientos a partir del estado final. La primer pareja es: Lista A Lista B # # q 0 w# Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 16 / 96

El resto de las parejas se agrupan como sigue: Grupo I Lista A Lista B X X para cada X en Γ # # Grupo II. Para cada q en Q F, p en Q, y X, Y y Z en Γ: Lista A Lista B qx Yp siδ(q, X) = (p, Y,R) ZqX pzy siδ(q, X) = (p, Y,L) q# Yp# siδ(q, B) = (p, Y,R) Zq# pzy # siδ(q, B) = (p, Y,L) Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 17 / 96

Grupo III. Para cada q en F, y X e Y en Γ: Lista A XqY Xq qy Lista B q q q Grupo IV Lista A Lista B q## # para cada q en F. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 18 / 96

Se dice que (x, y) es una solución parcial al PCPM con listas A y B si x es un prefijo de y, y x e y son la concatenación de cadenas correspondientes de las listas A y B, respectivamente. Si xz = y, entonces z se conoce como el residuo de (x, y). Supóngase que a partir de la descripción instantánea q 0 w existe una sucesión de k DI s más. Se afirma que existe una solución parcial (x, y) = (#q 0 w#α 1 q 1 β 1 # #α k 1 q k 1 β k 1 #, #q 0 w#α 1 q 1 β 1 # #α k q k β k #). Más aún, ésta es la única solución parcial cuya cadena más larga es tan grande como y. La afirmación anterior resulta fácil de probar por inducción sobre k. Para k = 0, es trivial. ya que el par (#, #q 0 w#) debe ser elegido primero. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 19 / 96

Supóngase que la afirmación es verdadera para algún k y que q k no está en F. Se puede demostrar fácilmente que el enunciado es verdadero para k + 1. El residuo de la pareja (x, y) es z =α k q k β k #. Los siguientes pares deben escogerse de tal manera que sus cadenas a partir de la lista A formen z. No importa qué símbolos aparezcan a la derecha e izquierda de q k, existe a lo más una pareja en el Grupo II que permitirá a la solución parcial continuar después de haber pasado por q k. Esta pareja representa, de forma natural, el movimiento de M a partir de la DIα k q k β k. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 20 / 96

Los otros símbolos de z obligan a elegir elementos del Grupo I. Ninguna otra opción permitirá a z componerse de elementos en la lista A. Así, se puede obtener una nueva solución parcial, (y, yα k+1 q k+1 β k+1 #). Se ve directamente queα k+1 q k+1 β k+1 es la DI que M alcanza en un movimiento partiendo deα k q k β k. También, no existe otra solución parcial cuya longitud de la segunda cadena sea igual a yα k+1 q k+1 β k+1 #. Además, si q k está en F, es sencillo encontrar parejas de los Grupos I y III las cuales al ser precedidas por la solución parcial (x, y) y seguidas por la pareja del Grupo IV, produzcan una solución al PCPM con listas A y B. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 21 / 96

Así, si M comenzó con una DI q 0 w, alcanza un estado de aceptación, la instancia del PCPM con listas A y B tiene solución. Si M no alcanza un estado de aceptación, ninguna pareja de los Grupos III o IV podría utilizarse. Por lo tanto, podrían existir soluciones parciales, pero la cadena de B debería exceder a la cadena de A en longitud, luego, ninguna solución es posible. Se concluye que la instancia al PCPM tiene una solución si y sólo si M con entrada w termina en un estado de aceptación. Como la construcción puede llevarse a cabo para M y w arbitrarias, se sigue que si existiera un algoritmo para resolver el PCPM, entonces existiría un algoritmo para reconocer a L u, lo que contradice el Teorema 8.5. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 22 / 96

Ejemplo: Sea M = ({q 1, q 2, q 3 },{0, 1, B},{0, 1},δ, q 1, B,{q 3 }), yδ esta definida como: q i δ(q i, 0) δ(q i, 1) δ(q i, B) q 1 (q 2, 1, R) (q 2, 0, L) (q 2, 1, L) q 2 (q 3, 0, L) (q 1, 0, R) (q 2, 0, R) q 1 Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 23 / 96

Sea w = 01. Se construye una instancia del MPCP con listas A y B. EL primer par es # para lista A y #q 1 01# para la lista B. El resto de los pares son: Grupo I Lista A Lista B 0 0 1 1 # # Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 24 / 96

Grupo II Lista A Lista B q 1 0 1q 2 deδ(q 1, 0) = (q 2, 1, R) 0q 1 1 q 2 00 deδ(q 1, 1) = (q 2, 0, L) 1q 1 1 q 2 10 deδ(q 1, 1) = (q 2, 0, L) 0q 1 # q 2 01# deδ(q 1, B) = (q 2, 1, L) 1q 1 # q 2 11# deδ(q 1, B) = (q 2, 1, L) 0q 2 0 q 3 00# deδ(q 2, 0) = (q 3, 0, L) 1q 2 0 q 3 10# deδ(q 2, 0) = (q 3, 0, L) q 2 1 0q 1 deδ(q 2, 1) = (q 1, 0, R) q 2 # 0q 2 # deδ(q 2, B) = (q 2, 0, R) Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 25 / 96

Grupo III Lista A Lista B 0q 3 0 q 3 0q 3 1 q 3 1q 3 0 q 3 1q 3 1 q 3 0q 3 q 3 1q 3 q 3 q 3 0 q 3 q 3 1 q 3 Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 26 / 96

Grupo IV Lista A Lista B q 3 ## # Note que M acepta la entrada w = 01 por la secuencia de DI s: q 1 01, 1q 2 1, 10q 1, 1q 2 01, q 3 101. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 27 / 96

Veamos si existe una solución para el MPCP. El primer par da una solución parcial (#, #q 1 01#)..... El resultado de la solución parcial es (#q 1 0, #q 1 01#1q 2 ). Es resto es 1#1q 2. Los siguientes tres pares escogidos son (1, 1), (#,#) y (1,1). La solución parcial se convierte en (#q 1 01#1, #q 1 01#1q 2 1#1). El resto es q 2 1#1. Continuando con el argumento, vemos que sólo la solución parcial, la longitud de la segunda cadena es 14, es (x, x0q 1 #1), donde x = #q 1 01#1q 2 1#1. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 28 / 96

Aquí, aparentemente se tiene una elección, porque el siguiente par a usar es (0,0) o (0q 1 #, q 2 01#). En el primer caso se tiene a (x0, x0q 1 #10) como solución parcial. Pero esta solución parcial es un callejon sin salida". No hay pares que se puedan añadir para hacer otra solución parcial, así, seguramente, esto no puede llevar a una solución. De manera similar, continuamos forzando para alzanzar una solución, escogemos un par particular para continuar cada solución parcial. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 29 / 96

Finalmente, alcanzamos la solución parcial (y, y1#q 3 10), donde y = #q 1 01#1q 2 1#10q 1 #1q 2 0. Ya que q 3 es un estado final, podemos ahora usar pares en los grupos I, III y IV para encontrar una solución a la instancia del MPCP. Los pares escogidos son (1,1), (#,#), (q 3 1, q 3 ), (0,0), (1,1), (#,#), (q 3 0, q 3 ), (1, 1), (#, #), (q 3 1, q 3 ), (#, #), (q 3 ##, #). Así, la palabra más corta que se puede componer con las correspondientes cadenas de la lista A y B, comenzando con el par 1 es #q 1 01# 1q 2 1# 10q 1 # 1q 2 01# q 3 101# q 3 01# q 3 1# q 3 ##. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 30 / 96

Una aplicación del PCP El PCP se puede usar para demostrar que una gran variedad de problemas son indecidibles. A continuación, se da sólo una aplicación: la indecibilidad de la ambigüedad para gramáticas libres de contexto. Teorema (8.9) Es indecidible saber si una GLC arbitraria es ambigua. Demostración: Sean dos listas de palabras A = w 1, w 2,..., w n y B = x 1, x 2,..., x n Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 31 / 96

L A ={w i1 w i2 w im a im a im 1 a i1 m 1} sobre un alfabeto finito Σ. Sean a 1, a 2,..., a n nuevos símbolos. Sean L A ={w i1 w i2 w im a im a im 1 a i1 m 1} y L B ={x i1 x i2 x im a im a im 1 a i1 m 1}. Sea G la GLC ({S, S 1, S 2 }, Σ {a 1,..., a n }, P, S), Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 32 / 96

donde P contiene las producciones S S A, S S B y para 1 i n, S A w i S A a i, S A w i a i, S B x i S B a i, y S B x i a i. La gramática G genera L A L B. Si la instancia (A, B) del PCP tiene una solución, por decir, i 1, i 2,..., i m, entonces existe una palabra x i1 x i2 x im a im a im 1 a i1 en L A que es igual a la palabra w i1 w i2 w im a im a im 1 a i1 en L B. Esta palabra tiene una derivación más a la izquierda que comienza con S S A, y otra que comienza con S S B. Por lo tanto, en este caso G es ambigua. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 33 / 96

Recíprocamente, supóngase que G es ambigua. Como las a s imponen las producciones usadas, es fácil mostrar que cualquier palabra derivada a partir de S A tiene sólo una derivación más a la izquierda a partir de S A. De manera similar, ninguna palabra derivada a partir de S B tiene más de una derivación más a la izquierda a partir de S B. Así, debe cumplirse que alguna palabra tenga derivaciones más a la izquierda a partir de ambas, S A y S B. Si esta palabra es ya im a im 1 a i1, donde y está en Σ, entonces i 1, i 2,..., i m es una solución al PCP. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 34 / 96

Así, G es ambigua si y sólo si la instancia (A, B) del PCP tiene una solución. Luego, el PCP se ha reducido al problema de ambigüedad de las GLC. Esto es, si existiera un algoritmo para e l último problema, se podría construir un algoritmo para el PCP, lo que por el Teorema 8.8 no existe. Así, el problema de ambigüedad para las GLC s es indecidible. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 35 / 96

8.6 Cálculos válidos e inválidos de las MT: una herramienta para probar problemas de los LLC indecidibles Mientras el PCP puede reducirse fácilmente a la mayor parte de los problemas indecidibles conocidos acerca de los LLC, existe un método más directo que resulta instructivo. En esta sección, se muestran reducciones directas del problema de pertenencia para MT a varios problemas acerca de LLC. Para hacer esto, es necesario introducir los conceptos de cálculos válidos e inválidos de una MT. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 36 / 96

Un cálculo válido en una MT M = (Q, Σ, Γ,δ, q 0, B, F), es una cadena w 1 #w R 2 #w 3 #w R 4 # tal que: 1) cada w i es una DI de M, es decir, una cadena en Γ QΓ que no termina con B, 2) w 1 es una DI inicial de la forma q 0 x con x Σ, 3) w n es una DI final, es decir, una en Γ FΓ, y 4) w i M w i+1 para 1 i< n Sin pérdida de generalidad, se puede suponer que Q y Γ son disjuntos, y que # no está ni en Q ni en Γ. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 37 / 96

El conjunto de cálculos inválidos en una MT es el complemento del conjunto de cálculos válidos con respecto al alfabeto Γ Q {#}. Los conceptos de cálculos válidos e inválidos son útiles para probar muchas propiedades de los LLC candidatos a ser indecidibles. La razón es que el conjunto de cálculos inválidos es un LLC y el conjunto de cálculos válidos es la intersección de dos LLC. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 38 / 96

Lema (8.6) El conjunto de cálculos válidos en una máquina de Turing M es la intersección de dos LLC, L 1 y L 2, las gramáticas para estos LLC se pueden construir de manera efectiva a partir de M. Demostración Sea M = (Q, Σ, Γ,δ, q 0, B, F) una MT. Ambos LLC consistirán de cadenas de la forma x 1 #x 2 # #x m #. Se usa L 1 para imponer la condición de que x i (x i+1 ) R para i impar y L 2 para hacer que se cumpla la condición xi R x i+1 para i par. También, L 2 impone la condición de que x 1 es una DI inicial. El hecho de que x m sea una DI final o su inversa está determinado por L 1 o L 2 dependiendo de si m es impar o par, respectivamente. Entonces L 1 L 2 es el conjunto de cálculos válidos de M. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 39 / 96

Para empezar, sea L 3 = y#z R y M z. Es sencillo construir una AP P que acepte L 3. El autómata P lee y, la entrada hasta el símbolo #, verificando en su control finito que y sea de la forma Γ QΓ. En el proceso, P coloca en el tope de su pila la DI z de tal forma que y M z, donde y es la entrada hasta antes del símbolo #. Esto es, cuando la entrada a P es un símbolo de Γ, P coloca dicho símbolo en el tope de la pila. Si la entrada es un estado q en Q, P almacena q en el control finito y lee el símbolo siguiente de la entrada, por decir X (si el símbolo siguiente es #, P toma X como B). Siδ(q, X) = (p, Y,R), entonces P coloca Yp en el tope de la pila. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 40 / 96

Siδ(q, X) = (p, Y,L), sea Z el símbolo que está en el tope de la pila. Entonces P reemplaza Z por pzy (pero si el último símbolo de la entrada que fue leido es #, y Y = B, sólo se reemplaza Z por pz, o por p si Z es también B). Después de leer #, P compara cada símbolo de la entrada con el símbolo que esté en el tope de la pila. Si son diferentes, P no tiene movimiento siguiente y ahí queda. Si son iguales, P elimina el símbolo de la pila. Cuando la pila se ha vaciado, P acepta su entrada. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 41 / 96

Ahora, sea L 1 = (L 3 #) ({ǫ} Γ FΓ #). Por los Teoremas 5.4 y 6.1, existe un algoritmo que construye una GLC para L 1. De manera similar, un AP para L 4 = y R #z y M z. La construcción de G 2 para L 2 = q 0 Σ #(L 4 #) (ǫ Γ FΓ #) es sencilla entonces, y por el Teorema 6.1, existe un algoritmo para construir una GLC G 2 para L 2. Ahora, L 1 L 2 es el conjunto de los cálculos válidos para M. Esto es, si x 1 #x 2 # #x m # está en L 1 L 2, entonces L 1 requiere que x i M (x i+1 ) R para i impar; L 2 requiere que x 1 sea inicial, y xi R M x i+1 para i par. El que la última DI tenga un estado de aceptación está determinado por L 1 para m impar y por L 2 para m par. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 42 / 96

Teorema (8.10) Es indecidible saber si, para gramáticas arbitrarias G 1 y G 2, el conjunto L(G 1 ) L(G 2 ) es vacío. Demostración Por el Lema 8.6, se pueden construir a partir de M gramáticas G 1 y G 2 tales que L(G 1 ) L(G 2 ) es el conjunto de los cálculos válidos en M. Si existe un algoritmo A para decir si la intersección de los lenguajes de dos GLC es vacía, se puede construir un algoritmo B para decir si L(M) = para una MT M arbitraria. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 43 / 96

Sencillamente, se diseña B para construir G 1 y G 2 a partir de M, como en el Lema 8.6, luego se aplica el algoritmo A para decir si L(G 1 ) L ( G 2 ) es vacía. Si la intersección es vacía, entonces L(M) =. Si la intersección es no vacía, entonces L(M). Esto es, el problema del vacío para conjuntos r.e. se reduce al problema de la intersección para GLC. Sin embargo, el algoritmo B no puede existir, ya que L(M) = es indecidible por el Teorema 8.6. Por lo tanto, A no existe, y entonces es indecidible saber si la intersección de dos LLC es vacía. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 44 / 96

Aunque se requieren dos LLC para representar los cálculos válidos de una máquina de Turing, el conjunto de cálculos inválidos es en si un LLC. La razón es que ya no se necesita garantizar simultáneamente para cada i que w i w i+1. Sólo se requiere adivinar dónde se produce un error. Es decir, se debe verificar para una i que w i w i+1 es falsa. Lema (8.7) El conjunto de cálculos inválidos de una máquina de Turing M = (Q, Σ, Γ,δ, q 0, B, F) es un LLC. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 45 / 96

Demostración: Si una cadena w es un cálculo inválido, entonces una de las siguientes condiciones se cumple: 1) w no es de la forma x 1 #x 2 # #x m #, donde cada x i es una DI de M. 2) x 1 no es inicial; esto es, x 1 no está en q 0 Σ. 3) x m no es final; es decir, x m no está en Γ FΓ. 4) x i M (x i+1 ) R es falso para algún i impar. 5) x R i M x i+1 es falso para algún i par. El conjunto de cadenas que satisfacen (1), (2) y (3) es regular, y un AF que lo acepte es fácilmente construible. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 46 / 96

El conjunto de cadenas que satisfacen (4) y (5) son cada uno LLC. Esta contención se prueba para (4); un argumento similar se usa para probar (5). Un ADP P para (4) selecciona algún x i, no determinísticamente, que sea precedido por un número par de #, y mientras lee x i, P almacena en su pila la DI z tal que x i z, con el extremo derecho de z en el tope de la pila. Después de encontrar # sobre la entrada, P compara z con el siguiente x i+1. Si z x i+1, entonces P lee el resto de su entrada y acepta. El conjunto de cálculos inválidos es la unión de dos LLC y un conjunto regular. Por el Teorema 6.1, es un LLC, y una gramática para este lenguaje se puede construir de manera efectiva. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 47 / 96

Teorema (8.11) Es indecidible para cualquier GLC G arbitraria si L(G) = Σ. Demostración Dada una MT M arbitraria, se puede construir una GLC G de manera efectiva con alfabeto terminal Σ, tal que L(G) = Σ si y sólo si L(M) =. Es decir, por el Lema 8.7, se puede construir una GLC G que genere los cálculos inválidos de M, Así, si para G arbitraria, L(G) = Σ fuese decidible, entonces se podría decidir si para una M arbitraria, L(M) =, lo cual es una contradicción. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 48 / 96

Otras consecuencias de la caracterización de los cálculos para los LLC Teorema (8.12) Sea G 1 y G 2 GLC arbitrarias y R un conjunto regular arbitrario. Los siguientes problemas son indecidibles. 1) L(G 1 ) = L(G 2 ) 2) L(G 1 ) L(G 2 ) 3) L(G 1 ) = R 4) R L(G 1 ) Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 49 / 96

Demostración: Sea G 2 una gramática que genera Σ, donde Σ es el alfabeto terminal de G 1. Entonces (1) y (2) son equivalentes a L(G 1 ) = Σ. Fíjese R = Σ, y (3) y (4) son equivalentes a L(G 1 ) = Σ. Así, el problema indecidible de si un LLC es Σ se reduce a los problemas del (1) al (4), y cada uno de estos es indecidible a su vez. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 50 / 96

Nótese que por los Teoremas 5.3 y 5.4, se pueden convertir ADP en GLC, entonces los Teoremas 8.10, 8.11 y 8.12 siguen siendo válidos si los LLC se representan como ADP en vez de GLC. También, el conjunto regular en el Teorema 8.12 se puede representar por un AFD, AFN o una expresión regular. Debería observarse que L(G) R es decidible. La razón es que L(G) R si y sólo si L(G) R =. Pero L(G) R es un LLC, y por lo tanto, se puede decidir si es vacío o no. Existen algunas propiedades adicionales de los lenguajes libres de contexto que se pueden probar como indecidibles al observar que si una MT tiene cálculos válidos sobre un conjunto infinito de entradas, su conjunto de cálculos válidos no es, en general, un LLC. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 51 / 96

Sin embargo, primero se modifica cada máquina de Turing M, en forma trivial, añadiéndole dos estados extras cuyo propósito es asegurar que M realice por lo menos dos movimientos en cada cálculo. Esto se puede hacer sin alterar el cálculo ejecutado por M. El propósito de la modificación es obligar a que cada cálculo válido contenga por lo menos tres DI y así, asegurar que el conjunto de cálculos válidos sea un LLC si y sólo si M acepta un conjunto finito. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 52 / 96

Lema (8.8) Sea M una máquina de Turing que realiza por lo menos tres movimientos sobre cada entrada. El conjunto de cálculos válidos de M es un LLC si y sólo si el conjunto aceptado por M es un conjunto finito. Demostración: Si el conjunto aceptado por M es finito, el conjunto de cálculos válidos de M es finito y por lo tanto, un LLC. Supóngase que el conjunto aceptado por M es infinito y el conjunto L de cálculos válidos es un LLC. Como M acepta un conjunto infinito, existe un cálculo válido w 1 #w R 2 #w 3 # Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 53 / 96

donde los w i s son DI, y w 2 es más grande que la constante n en el Lema de Ogden. Si se marcan los símbolos de w 2 como distinguidos. Entonces se puede bombear w 2 sin bombear ni w 1 ni w 3, y así, obtener un cálculo inválido que debe estar en L. Se concluye entonces que el conjunto de cálculos válidos no es un LLC. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 54 / 96

Teorema (8.13) Es indecidible para GLC G 1 y G 2 arbitrarias si: 1) L(G 1 ) es un LLC; 2) L(G 1 ) L(G 2 ) es un LLC. Demostración: 1) Dada una máquina de Turing M arbitraria, se modifica M sin alterar el conjunto aceptado, para que M realice por lo menos dos movimientos en cada entrada. Después se construye la GLC G que genere los cálculos inválidos. Luego, L(G) es un LLC si y sólo si M acepta un conjunto finito. 2) Se procede de la misma manera que en (1), pero construyendo GLC G 1 y G 2 tales que L(G 1 ) L(G 2 ) sea el conjunto de cálculos válidos de M. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 55 / 96

8.7 Teorema de Greibach Existe una destacada similitud entre las pruebas de indecibilidad en la Teoría de los Lenguajes. Esto sugiere la existencia de un Teorema de Rice análogo para clases de lenguajes tales como los LLC, y en efecto, lo existe. Considérese la clase de lenguajes C, tales como los LLC, y considérese un sistema particular (tales como los LLC o los ADP) para interpretar cadenas de longitud finita como nombres de lenguajes. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 56 / 96

Considérese una clase C de lenguajes con la propiedad de que, dados los nombres (e.g., gramáticas) de lenguajes L 1 y L 2 en C y un nombre (e.g., un autómata finito) para un conjunto regular R, se pueden construir de manera efectiva nombres para RL 1, L 1 R, y L 1 L 2. Entonces se dice que la clase C es cerrrada efectivamente bajo concatenación con conjuntos regulares y unión. Más aún, supóngase que L = Σ es indecidible para la clase C, como es el caso para los LLC. El teorema siguiente muestra que una amplia variedad de problemas son indecidibles para la clase C. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 57 / 96

Teorema (8.14 Teorema de Greibach) Sea C una clase de lenguajes que es cerrada efectivamente bajo concatenación con conjuntos regulares y unión, y para la cual =Σ es indecidible para cualquier Σ fija lo suficientemente grande. Sea P cualquier propiedad no trivial que es cierta para todos los conjuntos regulares y que se preserva bajo/a, donde a es un sólo símbolo. (Esto es, si L tiene la propiedad P, entonces L/a ={w wa está en L} también la tiene.) Entonces P es indecidible para C. Demostración: Sea L 0 Σ un miembro de C para el cual P(L 0 ) es falsa donde Σ es lo suficientemente grande para que =Σ sea indecidible. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 58 / 96

Para cualquier L Σ en C, se construye L 1 = L 0 #Σ Σ #L. El conjunto L 1 está en C, pues C es cerrado efectivamente bajo concatenación con conjuntos regulares y bajo unión. Ahora, si L = Σ, entonces L 1 = Σ #Σ, el cual es un conjunto regular, y por lo tanto, P(L 1 ) es cierta. Si L Σ, entonces existe w que no está en L. Por lo tanto, L 1 /#w = L 0. Como P se preserva bajo el cociente con un solo símbolo, también se preserva bajo el cociente con la cadena #w, mediante inducción sobre w. Así, P(L 1 ) debe ser falsa, o si no, P(L 0 ) sería cierta, contrario a la suposición inicial. Por lo tanto, P(L 1 ) es cierta si y sólo si L = Σ. Así, =Σ para C se reduce a la propiedad P para C, y por lo tanto, P es indecidible para C. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 59 / 96

Aplicaciones del Teorema de Greibach El Teorema 8.14 puede ser usado, por ejemplo, para mostrar que es indecidible si el lenguaje generado por una GLC es regular. Nótese que este cuestionamiento es diferente a preguntar si el lenguaje generado por dicha GLC es igual a algún conjunto regular R particular, tal y como se hace en el Teorema 8.12. Teorema (8.15) Sea G una GLC arbitraria. Es indecidible si L(G) es regular. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 60 / 96

Demostración: Los LLC son cerrados efectivamente bajo concatenación con conjuntos regulares y bajo unión. Sea P la propiedad de que L sea regular. Por el Teorema 8.14, la propiedad de que P es no trivial para los LLC, resulta cierta para todos los conjuntos regulares y se preserva bajo el cociente con un solo símbolo. Nótese que los conjuntos regulares son cerrados efectivamente bajo el cociente con otro conjunto regular. Así, por el Teorema 8.14, P es indecidible para LLC. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 61 / 96

El Teorema 8.15 permite demostrar que una propiedad es indecidible al probar que dicha propiedad se preserva bajo el cociente con un solo símbolo. Esto último es a menudo relativamente sencillo de probar como, por ejemplo, la ambigüedad inherente. Lema (8.9) Sea P la propiedad de que un LLC no es inherentemente ambiguo. Entonces P se preserva bajo el cociente con un solo símbolo. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 62 / 96

Demostración: Sea G = (V,T, P, S) una GLC no ambigua. Sea donde P a contiene G a = (V {[A/a] A está en V}, T, P a, [S/a]), 1) todas las producciones de P, 2) [A/a] α si A αa está en P, 3) [A/a] α[b/a] si A αbβ está en P yβ ǫ. Se afirma que L(G a ) = L(G)/a y que G a no es ambigua. Para ver esto, primero se muestra con una sencilla inducción que 1) [S/a] α si y sólo si S αa y 2) [S/a] α[a/a] si y sólo si S αa. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 63 / 96

El hecho de que L(G a ) = L(G)/a se sigue inmediatamente. Supóngase que G a es ambigua. Entonces deben existir dos derivaciones más a la izquierda 1) [S/a] β α x y 2) [S/a] γ α x dondeβ γ. Pero entonces se tienen en G dos derivaciones más a la izquierda de la cadena xa, lo cual es una contradicción. Así, G a no es ambigua. Se concluye entonces que la no ambigüedad se preserva bajo el cociente con un solo símbolo. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 64 / 96

Teorema (8.16) La ambigüedad inherente para los LLC es indecidible. Demostración: Por el Teorema 4.7, P es no trivial. Por el Lema 8.9, P se preserva bajo el cociente con un sólo símbolo. Es fácil mostrar que P es cierto para todos los conjuntos regulares. Esto es, cada conjunto regular tiene una GLC no ambigua. Así, por el Teorema 8.14, la ambigüedad inherente para los LLC es indecidible. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 65 / 96

8.8 Introducción a la Teoría de las Funciones Recursivas Cada máquina de Turing puede pensarse como un medio para calcular una función de los enteros a enteros, o bien como un reconocedor de lenguajes. Para toda máquina de Turing M y toda k, existe una función f (k) M (i 1, i 2,..., i k ) que toma k enteros como argumentos y produce una salida entera o no está definida para dichos argumentos. Si M comenzó con 0 i 1 10 i 21 0 i k sobre su cinta y termina con 0 j sobre su cinta, entonces se dice que fm(i k 1,..., i k ) = j. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 66 / 96

Si M no para con una cinta que consiste de un bloque de 0 s con el resto de las celdas en blanco, entonces f (k) M (i 1,..., i k ) no está definido. Nótese que la misma máquina de Turing puede pensarse como un reconocedor de lenguajes, un calculador de una función con un argumento, un calculador de una función diferente con dos argumentos, etc. Si i es una codificación entera de una MT M, como la descrita en la sección 8.3, y k se sobreentiende, entonces se escribirá f i en lugar de f (k) M. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 67 / 96

Recuérdese que una función calculada por una máquina de Turing se llama función recursiva (parcial). Si está definida para todos los posibles valores de sus argumentos, entonces también se conoce como una función recursiva total. Las construcciones sobre máquinas de Turing dadas previamente en este capítulo y el anterior pueden expresarse como funciones recursivas totales de una sola variable. Esto es, un algoritmo A que toma como entrada la codificación binaria de una MT M y produce como salida la codificación binaria de otra MT M puede verse como una función g de una variable. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 68 / 96

En particular, sea i el entero que representa a M y j el entero que representa a M. Entonces g(i) = j. Técnicamente, la MT B que calcula g no es A, pero si en una que convierte su entrada unaria en binaria, simula A y entonces convierte su salida binaria en unaria. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 69 / 96

El Teorema Smn El Teorema S mn dice que dada una función recursiva parcial g(x, y) de dos variables, existe un algoritmo que se usa para construir, a partir de una MT para g y un valor de x, otra MT la cual, con entrada y, calcula g(x, y). Teorema (8.17) Sea g(x, y) una función recursiva parcial. Entonces existe una función recursiva totalσ de una variable, tal que f σ(x) (y) = g(x, y) para todo x e y. Esto es, siσ(x) se entiende como el entero que representa alguna MT M x, entonces f 1 M x (y) = g(x, y). Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 70 / 96

Demostración: Sea M la MT que calcula g. Sea A una MT que a partir de la entrada x, escrita en unario, construye una MT M x que al recibir como entrada a y corre ésta a la derecha y escribe 0 x 1 a la izquierda; entonces M x regresa su cabeza hacia el final izquierdo y simula M. La salida de A es la representación unaria de un entero M x que representa a M x. Entonces A calcula una función recursiva totalσ y f σ(x) (y) = g(x, y). Como prueba de esto, nótese que para cada x, σ(x) es un entero que representa a M x, y para cada x, M x se diseña para producir g(x, y) cuando se da la entrada y. Como f σ(x) es la función calculada por M x, la igualdad f σ(x) (y) = g(x, y), se sigue. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 71 / 96

El Teorema de recursión El segundo teorema, llamado el teorema de recursión, afirma que toda función recursiva total σ que mapea índices (enteros que denotan máquinas de Turing) de una función recursiva parcial en índices de funciones recursivas parciales, tiene un punto fijo x 0 tal que f x0 (y) = f σ(x0 )(y) para toda y. En otras palabras, si se modifican todas las máquinas de Turing, en cierta forma, siempre existe una máquina de Turing M x0 para la cual la máquina de Turing modificada M σ(x0 ) calcula la misma función que la no modificada. En principio, esto parece imposible, ya que se puede modificar cada máquina de Turing para sumar 1 a la función calculada originalmente, entonces se podría decir que f (y) + 1 f (y). Pero nótese que si f (y) no está definida en ninguna parte, entonces f (y) + 1 sí es igual a f (y) para toda y. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 72 / 96

Teorema (8.18) Para cualquier función recursiva totalσ existe un punto x 0 tal que f x0 (x) = f σ(x0 )(x) para toda x. Demostración: Para cualquier entero i se construye una MT que, sobre la entrada x, calcula f i (i) y entonces simula, por medio de la MT universal, la f i (i)-ésima MT sobre x. Sea g(i) el índice de la MT construida. Así, para todo i y x, f g(i) (x) = f fi (i)(x). (8,3) Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 73 / 96

Obsérvese que g(i) es una función total aún si f i (i) no está definida. Sea j un índice de la funciónσg. Esto es, j es una codificación entera para una MT que, dada la entrada i, calcula g(i) y entonces aplicaσ a g(i). Entonces para x 0 = g(j) se tiene f x0 (x) = f g(j) (x) = f fj (j)(x) por (8,3) = f σ(g(j)) (x) ya que f j es la = f σ(x0 )(x). función σg Así, x 0 es un punto fijo del mapeoσ. Esto es, la MT x 0 y la MT σ(x 0 ) calculan la misma función. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 74 / 96

Aplicaciones de los Teoremas de recursión y Smn Ejemplo 8.9 Sea M 1, M 2,... cualquier enumeración de todas las máquinas de Turing. No es necesario que sea la enumeración estándar introducida en la sección 8.3, pero sí que cualquier representación sea usada por una MT. Mediante un algoritmo se puede convertir aquella representación en la notación de 7-tupla introducida en la sección 7.2, y viceversa. Luego, se puede usar el Teorema de Recursión para mostrar que para algún i, las máquinas M i y M i+1 calculan ambas la misma función. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 75 / 96

Sea σ(i) la función recursiva total definida como sigue. Se enumeran las MT M 1, M 2,... hasta encontrar una con codificación entera como en (8.2). Nótese que los estados de la MT deben considerarse en todos los órdenes posibles para ver si i es una codificación para esta MT, ya que en la notación introducida en la sección 8.3, el orden en el cual los movimientos de los distintos estados está escrito afecta la codificación. Habiendo encontrado que M j tiene codificación i, se enumera una MT más, M j+1, y seaσ(i) la codificación para M j+1. Entonces el Teorema de Recursión aplicado a estaσ dice que existe algún x 0 para el cual M x0 y M x0 +1 definen la misma función de una variable. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 76 / 96

Ejemplo 8.10 Dado un sistema formal F, tal como la Teoría de Conjuntos, se puede exhibir una máquina de Turing M tal que no existe prueba alguna en F de que M comience con cualquier entrada en particular y pare, y ninguna prueba de que no pare. Se construye M, una máquina de Turing que calcula una función de dos entradas g(i, j), tal que g(i, j) = 1, si existe prueba en F de que f i (j) no esté definida No está definida, en otro caso. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 77 / 96

La máquina M enumera las pruebas en F en algún orden, imprimiendo 1, si una prueba de que la i-ésima MT no para con la entrada j se puede encontrar. Más aún, se puede construir M para que si g(i, j) = 1, entonces M para, y M no para, en otro caso. Por el Teorema S mn, existeσ tal que f σ(i) (j) = g(i, j). Por el Teorema de recursión, se puede encontrar de manera efectiva un entero i 0 tal que f i0 (j) = f σ(i0 )(j) = g(i 0, j). Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 78 / 96

Pero g(i 0, j) = 1, y por lo tanto, está definido, si y sólo si existe una prueba en F de que f i0 no esté definida. Así, si F es consistente (i.e., no pueden existir pruebas de una afirmación y su negación), no puede existir una prueba en F en que la i 0 -ésima MT pare o no pare con una entrada particular cualquiera j. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 79 / 96

8.9 Cálculos con Oráculos Es fácil preguntarse que pasaría si el problema del vacío, o algún otro problema indecidible, fuera decicidible? Se podría calcular todo entonces? Se debe tener cuidado al tratar de responder la primera pregunta. Si se supone que el problema del vacío es decidible, se cae en un conjunto de suposiciones contradictorio y se puede concluir cualquier cosa. Este problema se evita al definir una máquina de Turing con oráculo. Sea A un lenguaje, A Σ. Una máquina de Turing con oráculo A es una máquina de Turing con una sóla cinta y con tres estados especiales q?, q s y q n. El estado q? se usa para preguntar si una cadena está en el conjunto A. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 80 / 96

Cuando la máquina de Turing entra al estado q?, solicita una respuesta a la pregunta: Está la cadena de símbolos no blancos a la derecha de la cabeza de la cinta en A? La respuesta se da al hacer que el estado de la máquina de Turing cambie, en el siguiente movimiento, a uno de los dos estados q s o q n, dependiendo de si la respuesta es si o no. El calculo continúa de manera normal hasta la próxima vez que se entre en el estado q?, cuando el oráculo tenga que contestar otra pregunta. Obsérvese que si A es un conjunto recursivo, entonces el oráculo puede simularse por otra máquina de Turing, y el conjunto aceptado por la máquina con oráculo A es recursivamente enumerable. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 81 / 96

Por otro lado, si A no es un conjunto recursivo y un oráculo puede proporcionar la respuesta correcta, entonces la MT con oráculo A puede aceptar un conjunto que no es recursivamente enumerable. La máquina de Turing M con oráculo A se denota por M A. Un conjunto L es recursivamente enumerable con respecto a A si L = L(M A ) para alguna MT M. Un conjunto L es recursivo con respecto a A si L = (M A ) para alguna MT M A que siempre pare. Dos oráculos son equivalentes si cada uno es recursivo con respecto al otro. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 82 / 96

Una jerarquía de los problemas indecidibles Ahora se puede replantear la pregunta del inicio de la sección como Cuáles conjuntos se pueden reconocer dado un oráculo para el problema del vacío? Claramente, no todos los conjuntos pueden ser r.e. con respecto al problema del vacío porque existe un número incontable de conjuntos y sólo un número contable de MT. Considérese el oráculo S 1 ={ M L(M) = }, el cual no es un conjunto r.e. (recuérdese que M es la codificación binaria de una MT M). Ahora considérense las MT con oráculo S 1. Estas máquinas tienen un problema de paro que no es recursivo en S 1. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 83 / 96

Después de definir un oráculo para los problemas del vacío de las MT con oráculo S 1, se puede desarrollar una jerarquía infinita de problemas indecidibles. Más específicamente, defínase S i+1 ={ M L S i = }. S i+1 es un oráculo para resolver el problema del vacío para cálculos con respecto a S i. Ahora se pueden clasificar algunos problemas indecidibles (pero no todos) mostrando su equivalencia a un conjunto S i para algún i particular. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 84 / 96

Teorema (8.19) El problema de pertenencia de las MT sin oráculo es equivalente a S 1 Demostración: Se crea M S 1 tal que, dada M como su entrada, construye la codificación de una MT M que acepta si w no está en L(M) y acepta (0 + 1) en otro caso. La construcción de M se da en el Ejemplo 8.2. La máquina M S 1 entra entonces en el estado q? con la codificación de M a la derecha de su cabeza y acepta si y sólo si se entra en q n. Así, el problema de pertenencia de las MT sin oráculo es recursivo en S 1. Recíprocamente, se puede mostrar que existe una máquina de Turing con el problema de pertenencia como oráculo, que reconoce S 1. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 85 / 96

Estrictamente hablando, el oráculo es L u. Para mostrar que S 1 es recursivo en L u, se crea una MT M 2 que, dada M, construye una nueva MT M que opera como sigue: M ignora su entrada; en vez de esto, M utiliza el par generador para crear todas las parejas (i, j). Cuando se genera (i, j), M simula M para i pasos sobre la j-ésima palabra de entrada para M, con las palabras numeradas en el orden habitual. Si M acepta, M acepta su propia entrada. Si L(M) =, entonces L(M ) =. Si L(M), entonces M acepta todas sus propias entradas,ǫen particular. Así, M Lu 2 puede preguntarle a su oráculo si M aceptaǫ, es decir, si M,ǫ está en L u. Si es así, M 2 rechaza M. En otro caso, M 2 acepta M. Así, S 1 es recursivo en L u. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 86 / 96

En seguida, considérese el problema de si L(M) = Σ, donde Σ es el alfabeto de entrada de una MT M. En algún sentido, este problema es más difícil que el de pertenencia o vacío, porque, como se verá, el problema = Σ es equivalente a S 2, mientras que los problemas del vacío y el de pertenencia son equivalentes a S 1. En tanto que esta diferencia no tiene significado alguno en términos prácticos ya que todos estos problemas son indecidibles, los resultados en orden comparativo de dificultad sugieren que cuando se consideren versiones retringidas de los problemas, el problema = Σ es, en realidad, más difícil que los de pertenencia o vacío. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 87 / 96

Para GLC, los problemas de pertenencia o vacío son decidibles, mientras que, por el Teorema 8.11, el problema de si L(G) = Σ es indecidible. Como otro ejemplo, considérense las expresiones regulares. Los problemas del vacío y de pertenencia son cada uno decidibles eficientemente, en tiempo polinomial sobre la longitud de la expresión, mientras que el problema de si una expresión regular dada r es equivalente a Σ ha sido probado que, casi ciertamente, requiere tiempo exponencial sobre la longitud de r. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 88 / 96

Teorema (8.20) El problema de si L(M) = Σ es equivalente a S 2. Demostración: Se crea una MT M S 2 3 que toma una MT M arbitraria y a partir de ella construye ˆM S 1, ésta es una MT con oráculo S1 que se comporta como sigue: ˆM S 1 enumera las palabras x, para cada x usa el oráculo S 1 para decir si M acepta a x. La técnica donde S 1 puede usarse para responder la pregunta de la pertenencia fue cubierta en el Teorema 8.19. La máquina ˆM S 1 acepta su propia entrada si alguna x no es aceptada por M. Así, L( ˆM S 1 ) = { si L(M) = Σ, Σ en otro caso. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 89 / 96

La máquina M S 2 3 con entrada M construye ˆM S 1, luego le pregunta a su propio oráculo, S 2, si L( ˆM S 1 ) =. Si es así, M S 2 3 acepta M, y M S 2 3 rechaza en otro caso. Así, M S 2 3 acepta{ M L(M) = Σ }. Ahora se debe probar que S 2 es recursivo en el problema = Σ. Esto es, sea L el conjunto de codificaciones de máquinas de Turing ordinarias que aceptan todas las cadenas sobre su alfabeto de entrada. Entonces existe una MT M4 L que acepta S 2. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 90 / 96

Antes de construir M L 4, primero se definirá un cálculo válido de una MT M S 1 usando el oráculo S1. Un cálculo válido es una sucesión de DI, tal como en las máquinas de Turing ordinarias. Sin embargo, si una DI tiene el estado q?, y la siguiente DI tiene el estado q n, entonces M S 1 le ha preguntado al oráculo si alguna MT N acepta y ha recibido la respuesta no. Para demostrar que esta respuesta es correcta, se inserta un cálculo válido de la MT ordinaria N, mostrando que N acepta alguna entrada particular. Si el siguiente estado es q s, no se inserta cálculo alguno de N. Curso Básico de Computación (Matemáticas) 8.1 Indecibilidad 2010 91 / 96