Pregunta. Dado un programa de máquina de Turing $e$ que se garantiza que se ejecuta en tiempo polinómico, ¿podemos encontrar computacionalmente encontrar tal polinomio?
En otras palabras, ¿hay una función computable $e\mapsto p_e$ , de tal manera que siempre que $e$ es un programa de máquina de Turing que se ejecuta en tiempo polinómico, entonces $p_e$ ¿es un límite de tiempo polinómico? Es decir, $p_e$ es un polinomio sobre los enteros en una variable y programa $e$ en cada entrada $n$ se ejecuta en un tiempo máximo de $p_e(|n|)$ , donde $|n|$ es la longitud de la entrada $n$ .
(Tenga en cuenta que no impongo ningún requisito a $p_e$ cuando $e$ no es un programa de tiempo polinómico, y no estoy preguntando si la función $e\mapsto p_e$ es computable en tiempo polinómico, pero sino más bien, si es computable en absoluto).
En el campo de la teoría de la complejidad, es común tratar algoritmos de tiempo polinómico como si vinieran equipados con un reloj polinómico explícito, que cuenta los pasos durante el computación y que obliga a detenerse cuando se vence. Esta convención permite ciertas comodidades en la teoría. Sin embargo, en el campo de la teoría de la computabilidad, sin embargo, no se suele que un algoritmo de tiempo polinómico venga equipado con tal contador. Mi pregunta es si podemos producir computablemente producir tal contador sólo a partir del programa de la máquina de Turing de Turing.
Espero una respuesta negativa. Creo que no existe tal función computable $e\mapsto p_e$ y la pregunta es realmente sobre cómo vamos a probar esto. Pero no sé...
Por supuesto, dado un programa $e$ podemos obtener un número finito de puntos de muestra para un límite inferior en el polinomio, pero esto no parece útil. Además, parece que la lección de Teorema de Rice es que no podemos esperar calcular información no trivial mediante el programa en sí, y esto lo considero una prueba en contra de la evidencia contra una respuesta afirmativa. Al mismo tiempo, el teorema de Rice no se aplica directamente, ya que el polinomio $p_e$ no depende del conjunto o función que $e$ sino en la forma en que computa en la forma en que lo computa. Así que no estoy seguro.
Por último, permítanme mencionar que esta pregunta está relacionada con y inspirada en esta reciente e interesante pregunta de MO sobre el imposibilidad de convertir algoritmos NP en algoritmos P algoritmos . Varias de las respuestas propuestas allí dependían críticamente de si el contador de tiempo polinómico formaba parte de la entrada o no. En particular, una respuesta afirmativa a la presente pregunta lleva a una solución de esa pregunta por esas respuestas. Mi expectativa, sin embargo, es que una respuesta negativa aquí y una respuesta allí que descarte una transformación computable.