В теории вычислительной сложности теоремы об иерархии времени являются важными утверждениями об ограниченных по времени вычислениях на машинах Тьюринга . Неформально эти теоремы говорят, что при наличии большего времени машина Тьюринга может решить больше задач. Например, есть задачи, которые можно решить за время n 2 , но не за время n , где n — длина входных данных.
Теорема об иерархии времени для детерминированных многоленточных машин Тьюринга была впервые доказана Ричардом Э. Стернсом и Юрисом Хартманисом в 1965 году. [1] Она была улучшена годом позже, когда ФК Хенни и Ричард Э. Стернс улучшили эффективность универсальной машины Тьюринга . [2] Вследствие теоремы для каждого детерминированного класса сложности с ограничением по времени существует строго больший класс сложности с ограничением по времени, и поэтому иерархия классов сложности с ограничением по времени не разрушается полностью. Точнее, теорема об иерархии времени для детерминированных машин Тьюринга утверждает, что для всех конструируемых по времени функций f ( n ),
где DTIME ( f ( n )) обозначает класс сложности задач принятия решений , разрешимых за время O ( f ( n )). Левый класс включает в себя немного обозначений o, ссылаясь на множество задач принятия решений, разрешимых за асимптотически меньшее , чем f ( n ) время.
В частности, это показывает, что тогда и только тогда , когда , то мы имеем бесконечную временную иерархию.
Теорема об иерархии времени для недетерминированных машин Тьюринга была первоначально доказана Стивеном Куком в 1972 году. [3] Она была улучшена до ее нынешнего вида с помощью сложного доказательства Джоэлом Сейферасом, Майклом Фишером и Альбертом Мейером в 1978 году. [4] Наконец, в 1983 году Станислав Жак достиг того же результата с помощью простого доказательства, которому обучают сегодня. [5] Теорема об иерархии времени для недетерминированных машин Тьюринга утверждает, что если g ( n ) является функцией, конструируемой по времени, и f ( n +1) = o ( g ( n )), то
Аналогичные теоремы для пространства — это теоремы об иерархии пространства . Подобная теорема неизвестна для классов вероятностной сложности с ограничением по времени, если только класс также не имеет одного бита совета . [6]
Обе теоремы используют понятие функции, конструируемой по времени . Функция конструируема по времени, если существует детерминированная машина Тьюринга, такая, что для каждого , если машина запущена с входом из n единиц, она остановится ровно через f ( n ) шагов. Все многочлены с неотрицательными целыми коэффициентами конструируемы по времени, как и экспоненциальные функции, такие как 2 n .
Нам нужно доказать, что некоторый временной класс TIME ( g ( n )) строго больше, чем некоторый временной класс TIME ( f ( n )). Мы делаем это, конструируя машину, которая не может быть в TIME ( f ( n )), с помощью диагонализации . Затем мы показываем, что машина находится в TIME ( g ( n )), используя симулятор машины .
Теорема иерархии времени. Если f ( n ) является функцией, конструируемой по времени, то существует задача принятия решения , которая не может быть решена за наихудшее детерминированное время o ( f ( n )), но может быть решена за наихудшее детерминированное время O ( f ( n )log f ( n )). Таким образом
Примечание 1. f ( n ) не меньше n , поскольку меньшие функции никогда не поддаются построению по времени.
Пример. Существуют задачи, решаемые за время n log 2 n , но не за время n . Это следует из установки , поскольку n находится в
Мы включаем сюда доказательство более слабого результата, а именно, что DTIME ( f ( n )) является строгим подмножеством DTIME ( f (2 n + 1) 3 ), поскольку оно проще, но иллюстрирует идею доказательства. См. нижнюю часть этого раздела для получения информации о том, как расширить доказательство до f ( n )log f ( n ).
Чтобы доказать это, мы сначала определим язык кодирования машин и их входные данные, которые заставляют их останавливаться в пределах f
Обратите внимание, что это класс времени. Это набор пар машин и входов для этих машин ( M , x ), так что машина M принимает в течение f (| x |) шагов.
Здесь M — детерминированная машина Тьюринга, а x — ее вход (начальное содержимое ее ленты). [ M ] обозначает вход, который кодирует машину Тьюринга M . Пусть m — размер кортежа ([ M ], x ).
Мы знаем, что можем определить принадлежность H f с помощью детерминированной машины Тьюринга R , которая моделирует M для f ( x ) шагов, сначала вычисляя f (| x |), а затем записывая строку нулей этой длины, а затем используя эту строку нулей в качестве «часов» или «счетчика» для моделирования M максимум на столько же шагов. На каждом шаге моделирующая машина должна просматривать определение M , чтобы решить, каким будет следующее действие. Можно с уверенностью сказать, что это займет максимум f ( m ) 3 операций (поскольку известно, что моделирование машины временной сложности T ( n ) для может быть достигнуто за время на многоленточной машине, где | M | — длина кодирования M ), мы имеем, что:
Остальная часть доказательства покажет, что
так что если мы заменим 2 n + 1 на m , то получим желаемый результат. Предположим, что H f находится в этом классе временной сложности, и мы придем к противоречию.
Если H f находится в этом классе временной сложности, то существует машина K , которая, учитывая некоторое описание машины [ M ] и входные данные x , решает, находится ли кортеж ([ M ], x ) в H f в пределах
Мы используем этот K для построения другой машины, N , которая берет описание машины [ M ] и запускает K на кортеже ([ M ], [ M ]), т. е. M моделируется на своем собственном коде K , а затем N принимает, если K отклоняет, и отклоняет, если K принимает. Если n — длина ввода в N , то m (длина ввода в K ) равна удвоенному n плюс некоторый символ-разделитель, так что m = 2 n + 1. Таким образом, время работы N равно
Теперь, если мы подадим [ N ] в качестве входных данных в сам N (что сделает n длиной [ N ]) и зададим вопрос, принимает ли N свое собственное описание в качестве входных данных, мы получим:
Таким образом, мы приходим к выводу, что машина K не существует, и поэтому
Читатель, возможно, понял, что доказательство дает более слабый результат, поскольку мы выбрали простую симуляцию машины Тьюринга, для которой мы знаем, что
Известно [7] , что существует более эффективное моделирование, которое устанавливает, что
Если g ( n ) является функцией, конструируемой по времени, и f ( n +1) = o ( g ( n )), то существует задача принятия решения, которая не может быть решена за недетерминированное время f ( n ), но может быть решена за недетерминированное время g ( n ). Другими словами, класс сложности NTIME ( f ( n )) является строгим подмножеством NTIME ( g ( n )).
Теоремы об иерархии времени гарантируют, что детерминированные и недетерминированные версии экспоненциальной иерархии являются подлинными иерархиями: другими словами, P ⊊ EXPTIME ⊊ 2-EXP ⊊ ... и NP ⊊ NEXPTIME ⊊ 2-NEXP ⊊ ....
Например, так как . Действительно, из теоремы об иерархии времени.
Теорема также гарантирует, что существуют проблемы в P , требующие для решения произвольно больших показателей; другими словами, P не схлопывается до DTIME ( n k ) для любого фиксированного k . Например, существуют проблемы, решаемые за время n 5000 , но не за время n 4999. Это один из аргументов против тезиса Кобэма , соглашения о том, что P является практическим классом алгоритмов. Если бы такой коллапс действительно произошел, мы могли бы вывести, что P ≠ PSPACE , поскольку общеизвестна теорема, что DTIME ( f ( n )) строго содержится в DSPACE ( f ( n )).
Однако теоремы об иерархии времени не предоставляют никаких средств для связи детерминированной и недетерминированной сложности или временной и пространственной сложности, поэтому они не проливают света на великие нерешенные вопросы теории вычислительной сложности : равны ли P и NP , NP и PSPACE , PSPACE и EXPTIME или EXPTIME и NEXPTIME или нет.
Разрыв приблизительно между нижней и верхней границей времени в теореме об иерархии можно проследить до эффективности устройства, использованного в доказательстве, а именно универсальной программы, которая поддерживает подсчет шагов. Это можно сделать более эффективно на определенных вычислительных моделях. Самые точные результаты, представленные ниже, были доказаны для:
Для этих моделей теорема имеет следующий вид:
Если f ( n ) является функцией, конструируемой по времени, то существует задача принятия решения, которая не может быть решена за наихудшее детерминированное время f ( n ), но может быть решена за наихудшее время af ( n ) для некоторой константы a (зависящей от f ).
Таким образом, постоянное увеличение временного ограничения позволяет решать больше задач, в отличие от ситуации для машин Тьюринга (см. Теорема о линейном ускорении ). Более того, Бен-Амрам доказал [10] , что в приведенных выше моделях для f полиномиальной скорости роста (но более чем линейной) имеет место тот случай , когда для всех существует проблема принятия решения, которая не может быть решена за наихудшее детерминированное время f ( n ), но может быть решена за наихудшее время .