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:METRO
: 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:
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
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).