El problema de detención acotada es decidible. ¿Por qué esto no entra en conflicto con el teorema de Rice?

9

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 {0,1} a {0,1} es una función que no está necesariamente definida en todas sus entradas. Decimos que una TM M calcula una función parcial f si por cada x en la que se define f , M(x)=f(x) y por cada x en la que f no está definida M entra en un bucle infinito cuando se ejecuta en la entrada x . Si Ses un conjunto de funciones parciales, definimos fS ser la función booleana que en la entrada α salidas 1 si y sólo si Mα calcula una función parcial en S . El teorema de Rice dice que para cada no trivial S, la función fS 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 {(α,x,n):Mα acepta x en menos de n pasos } . Deje que M 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 M calcula una función total.

¿Qué me estoy perdiendo acerca de la relación entre este lenguaje y el teorema de Rice?

ttbo
fuente

Respuestas:

13

El idioma

{(α,x,n):Mα accepts x in less than n steps}

no es un conjunto de índices, es decir, no tiene la forma

LP={MM is TM, fP. fM=f}

para algún conjunto de (recursivas parcial) funciones , con la función (parcial) calculada por TM . El teorema de Rice hace declaraciones solo sobre tal ; muchas reformulaciones "intuitivas" no son útiles. Ver también aquí .f M M L PPfMMLP

Tenga en cuenta que esto no es solo un detalle técnico aquí. El teorema de Rice no se aplica a

L={MM accepts M in less than M steps} ,

ya sea. ¿Puedes ver por qué?

Para cada máquina en se puede construir fácilmente muchas máquinas que aceptan el mismo idioma, pero se ejecutan durante más de pasos, y por lo tanto no están en . Por lo tanto, no es un conjunto de índices.M L LLMLL

L es decidible, usando el mismo argumento que para el lenguaje original que estamos discutiendo.

Rafael
fuente
+1. Especialmente para el hipervínculo que probablemente también se aplica aquí. Sin embargo, intenté contribuir con un análisis "intuitivo" como respuesta alternativa de todos modos.
Jirka Hanika
6

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.nnn

Jirka Hanika
fuente
5

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 , nSM,Mx,n

Ariel
fuente
El primer argumento es formalista pero correcto. El segundo argumento me confunde (no estoy seguro de poder definir rigurosamente la localidad / globalidad; y no sé lo que significa calcular una función "a partir de un conjunto de funciones").
Jirka Hanika
El primer argumento es de hecho meramente sintáctico, como lo mencionó Raphael en su respuesta. El problema local / global tenía la intención de indicar la diferencia entre razonar sobre el resultado en una sola entrada versus todas las entradas (no lo quise decir en un sentido formal, puede significar algo más en un contexto diferente). El cálculo de una función a partir de un conjunto dado simplemente significa que usted pregunta si la función calculada por está en . SMαS
Ariel
El teorema de Rice NO requiere que uno razone sobre el comportamiento de la máquina en todas las entradas. Por ejemplo, es imposible clasificar los programas en función de si finalmente aceptarán cuando se ejecuten en la entrada "5". O, más bien, puede definir una clasificación de este tipo que ignore el comportamiento en la mayoría de las entradas, pero la clasificación aún no es recursiva.
Jirka Hanika
Esto fue realmente confuso, ya que se puede definir como el conjunto de funciones que generan en alguna entrada fija. Gracias por plantear el problema. 1S1
Ariel
3

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.LLL

David Richerby
fuente