Вот простой аргумент, чтобы показать, что они неразрешимы, то есть нет алгоритмов, чтобы проверить, является ли данный алгоритм оптимальным с точки зрения времени выполнения или использования памяти.
Мы сводим проблему остановки на пустой ленте к вашей проблеме оптимальности времени выполнения.
Пусть - заданная машина Тьюринга. Пусть N будет следующей машиной Тьюринга:M
: на входе n
1. Запустите M на чистой ленте для (не более) n шагов.
2. Если M не останавливается за n шагов, запустите цикл размером 2 n , затем верните NO.
3. В противном случае верните ДА.Nn
Mn
Mn2n
Есть два случая:
Если не останавливается на пустой ленте, машина N будет работать на Θ ( 2 n ) шагов на входе n . Таким образом, его время работы составляет Θ ( 2 н ) . В этом случае N , очевидно, не является оптимальным.MNΘ(2n)nΘ(2n)N
Если останавливается на пустой ленте, то машина N будет работать с постоянным числом шагов для всех достаточно больших n , поэтому время работы O ( 1 ) . В этом случае N , очевидно, оптимально.MNnO(1)N
Короче говоря:
M halts on blank tape ⇔N is optimial
MNNM
Аналогичный аргумент можно использовать для пространства, т. Е. Также неразрешимо проверить, является ли данная машина Тьюринга оптимальной с точки зрения пространства, которое она использует.
Даже более сильное утверждение верно: мы не можем решить, является ли данная вычислимая функция верхней границей временной сложности вычисления данной вычислимой функции. Аналогично для космоса. Т.е. даже базовая теория сложности не может быть автоматизирована алгоритмами (что можно считать хорошей новостью для теоретиков сложности;).