Una declaración del teorema de Rice se da en la página 35 de "Complejidad computacional: un enfoque moderno" (Arora-Barak):
Una función parcial de a es una función que no está necesariamente definida en todas sus entradas. Decimos que una TM calcula una función parcial si por cada en la que se define , y por cada en la que no está definida entra en un bucle infinito cuando se ejecuta en la entrada . Si es un conjunto de funciones parciales, definimos ser la función booleana que en la entrada salidas 1 si y sólo si calcula una función parcial en . El teorema de Rice dice que para cada no trivial , la función no es computable.
Wikipedia afirma que los idiomas de las máquinas de tiempo limitado están COMPLETAMENTE completos. Supongo que este lenguaje se parece a acepta en menos de pasos . Deje que sea un DTM que decida este lenguaje limitado en tiempo exponencial. Parece que este DTM está decidiendo algunas propiedades para TODAS las máquinas de turing, por lo que mi intuición me dice que el teorema de Rice impide esa decisión. Pero obviamente calcula una función total.
¿Qué me estoy perdiendo acerca de la relación entre este lenguaje y el teorema de Rice?
El teorema de Rice dice que no se puede decir nada sobre el comportamiento final de un programa cuando se deja ejecutar hasta el infinito; no importa cómo clasifique los programas, habrá dos programas que convergerán en el mismo comportamiento final (función calculada ) aunque los haya clasificado de manera diferente.
Pero dejar que los programas se ejecuten hasta el infinito es esencial. Para saber qué hacen en los primeros pasos, puede simularlos para los primeros pasos y luego terminar dando su veredicto sobre cómo se comportó el programa. Una simulación similar hasta el infinito no funciona porque si el programa simulado nunca termina en una entrada simulada, su clasificador también divergerá, en lugar de proporcionar una clasificación.nn n
fuente
Primero, las palabras en su idioma no son codificaciones de máquinas, contienen más información, por lo que no puede aplicar directamente el teorema de Rice. Dicho esto, el teorema de Rice habla de la imposibilidad de razonar sobre la función calculada por una máquina de Turing (es decir, si se encuentra en algún conjunto ). Este no es el caso aquí, ya que como mencionó Raphael, existen dos máquinas que calculan la misma función, pero una se encuentra en su idioma y la otra no (aquí estoy ignorando el problema sintáctico, y me olvido de el hecho de que son parte de la entrada). El punto es que la propiedad que está viendo aquí es mecánica y no semántica (las máquinas pueden calcular la misma función, pero de una manera diferente).M , M ′ x , nS M,M′ x,n
fuente
El teorema de Rice dice que, para cualquier conjunto no trivial de idiomas, el conjunto de máquinas de Turing que reconocen un idioma en es indecidible. Wikipedia dice que un lenguaje específico es decidible. Entonces no hay contradicción.LL L
fuente