¿Es posible decidir si un algoritmo dado es asintóticamente óptimo?

11

¿Existe un algoritmo para el siguiente problema:

Dada una máquina de Turing que decide un lenguaje L , ¿hay una máquina de Turing M 2 que decide L de modo que t 2 ( n ) = o ( t 1 ( n ) ) ?M1L
M2Lt2(n)=o(t1(n))

Las funciones y t 2 son los tiempos de funcionamiento más desfavorables de las máquinas Turing M 1 y M 2 respectivamente.t1t2M1M2

¿Qué pasa con la complejidad del espacio?

StaticBug
fuente
1
La respuesta definitivamente no es. Se sabe que determinar el peor tiempo de ejecución de una TM es indecidible.
chazisop 01 de

Respuestas:

9

Aquí hay un argumento simple para mostrar que son indecidibles, es decir, no hay algoritmos para verificar si un algoritmo dado es óptimo con respecto a su tiempo de ejecución o uso de memoria.

Reducimos el problema de detención en la cinta en blanco a su problema sobre la optimización del tiempo de ejecución.

Sea una máquina de Turing dada. Sea N la siguiente máquina de Turing:M

: en la entrada n 1. Ejecute M en una cinta en blanco para (como máximo) n pasos. 2. Si M no se detiene en n pasos, ejecute un bucle de tamaño 2 n , luego devuelva NO. 3. De lo contrario, devuelva SÍ.Nn
Mn
Mn2n

Hay dos casos:

  1. Si no se detiene en la cinta en blanco, la máquina N funcionará durante Θ ( 2 n ) pasos en la entrada n . Entonces su tiempo de ejecución es Θ ( 2 n ) . En este caso, N obviamente no es óptimo.MNΘ(2n)nΘ(2n)N

  2. Si detiene en una cinta en blanco, la máquina N se ejecutará durante un número constante de pasos para todos los n lo suficientemente grandes , por lo que el tiempo de ejecución es O ( 1 ) . En este caso, N es obviamente óptimo.MNnO(1)N

En breve:

M halts on blank tape N is optimial 

MNNM

Se puede usar un argumento similar para el espacio, es decir, también es indecidible verificar si una máquina de Turing dada es óptima con respecto al espacio que usa.

Incluso una afirmación más fuerte es verdadera: no podemos decidir si una función computable dada es un límite superior en la complejidad de tiempo de calcular una función computable dada. Del mismo modo para el espacio. Es decir, incluso la teoría básica de la complejidad no puede ser automatizada por algoritmos (lo que puede considerarse una buena noticia para los teóricos de la complejidad).

Kaveh
fuente
M1
nnYESNn0nn0M
Ah, la pregunta cambió desde la última vez que la leí. No importa.
Raphael
@ PålGD, creo que OP lo usó como un ejemplo (basado en la pregunta original publicada en cstheory). Puedes consultar los comentarios bajo esa pregunta.
Kaveh
-3

¡Decir ah! Si la respuesta fuera sí, estaríamos viviendo en un mundo diferente.

A0ALA0A

Desafortunadamente, esto no es posible, y de hecho, personalmente creo que probar la optimización (no trivial) es el problema más interesante (y difícil) en informática. Hasta donde sé, me alegraría que me corrigieran, no existe ningún resultado de optimización para ningún problema polinómico (excepto los resultados triviales de optimización, por supuesto, de los algoritmos que toman un tiempo proporcional al tamaño de entrada).

t a la t
fuente
1
Ω(N)
1
Ω(nlogn)
@vonbrand: eso es lo que quise decir con algoritmos que son proporcionales al tamaño de entrada.
t a t t
1
@ttothet Ok, me temo que será infructuoso, pero lo intentaré nuevamente. 1) No, para nada. Si guarda solo un paso en cada entrada, tiene un algoritmo mejor que antes, a pesar de que tiene el mismo tiempo de ejecución asintótico. 2) No, no lo hace. También puede significar "No sé, pero si es así, entonces X". Esto no es infrecuente (cf P? = NP). 3) Se afirmó que había no hay límites inferiores no triviales (en asintótica, supongo) en absoluto . Eso está mal. Haz tu tarea, por favor.
Raphael
1
@ MartinJonáš Me refiero a una máquina de Turing de 2 cintas. Kaveh tiene un punto, la prueba del teorema de la jerarquía del tiempo da problemas que se pueden resolver en el tiempo poligonal con una complejidad arbitrariamente alta, pero los ejemplos no son exactamente naturales y no se sienten muy explícitos. Además, no se conoce ninguna jerarquía para el tiempo probabilístico, por lo que realmente no tenemos nada.
Sasho Nikolov