Введение
И детерминированные, и недетерминированные машины могут решать больше задач, располагая большим объемом памяти. В теории вычислительной сложности теоремы об иерархии пространства являются результатами разделения, которые показывают, что детерминированные и недетерминированные машины могут решать больше задач в (асимптотически) большем объеме памяти при определенных условиях. Например, детерминированная машина Тьюринга может решать больше задач принятия решений, используя пространство n log n, чем используя пространство n. Аналогичные, несколько более слабые теоремы для времени известны как теоремы об иерархии времени. В основе теорем об иерархии лежит интуиция о том, что увеличение времени или объема памяти позволяет вычислять больше функций (или определять больше языков). Теоремы об иерархии используются для демонстрации того, что классы сложности по времени и пространству образуют иерархию, в которой классы с более строгими ограничениями содержат меньше языков, чем классы с более слабыми ограничениями. Здесь мы дадим определение и докажем теорему об иерархии пространства. Теоремы об иерархии пространства опираются на понятие пространственно-конструируемых функций. Детерминированная и недетерминированная теоремы об иерархии пространства утверждают, что для всех пространственно-конструируемых функций f(n) выполняется:
with either more time or more space comes the ability to compute more
functions (or decide more languages). The hierarchy theorems are used
to demonstrate that the time and space complexity classes form a
hierarchy where classes with tighter bounds contain fewer languages
than those with more relaxed bounds. Here we define and prove the
space hierarchy theorem. The space hierarchy theorems rely on the concept of space constructible functions. The deterministic and nondeterministic space hierarchy theorems state that for all space constructible functions f(n),
,
где SPACE обозначает либо DSPACE, либо NSPACE, а o относится к нотации "малое о".
where SPACE stands for either DSPACE or NSPACE, and o refers to the little o notation.
Усовершенствование иерархии пространства
Если пространство измеряется как количество используемых ячеек независимо от размера алфавита, то 1=\mathsf{SPACE}(f(n)) = \mathsf{SPACE}(O(f(n))) потому что можно достичь любого линейного сжатия, перейдя на больший алфавит. Однако, измеряя пространство в битах, гораздо более четкое разделение достижимо для детерминированного пространства. Вместо того, чтобы быть определено до множительной постоянной, пространство теперь определено до аддитивной постоянной. Однако, поскольку любое постоянное количество внешнего пространства может быть сохранено путем хранения содержимого во внутреннем состоянии, у нас все еще есть 1=\mathsf{SPACE}{f}{n}=\mathsf{SPACE}{f}{n}+O{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}{n}}{n}}{n}}{n}}{n}}{n}{n}}}{n}}}{n}}{n}}}{n}}}{n}}{n}}}{n}}{n}}{n}}}}{n}}}}}{n}}}{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} Предположим, что f - это конструктивное пространство. Пространство детерминировано. Для широкого спектра последовательных вычислительных моделей, в том числе для машин Тьюринга, SPACE ((f) n) ω (log (f) n) + n)) SPACE (f) n)). Это верно даже если SPACE{f}{n}{log}{f}{n}+n))) определяется с использованием другой вычислительной модели, чем \mathsf{SPACE}{f}{n}), потому что разные модели могут имитировать друг друга с O{\log}{f}{n}+n}) пространством над головой. Для определенных вычислительных моделей у нас даже есть SPACE (f) ω (n) 1) SPACE (f) n). В частности, это относится к машинам Тьюринга, если мы фиксируем алфавит, количество голов на входной ленте, количество голов на рабочей ленте (с использованием одной рабочей ленты) и добавляем делимитаторы для посещаемой части рабочей ленты (которые могут быть проверены без увеличения использования пространства). SPACE ((f ((n)) не зависит от того, бесконечна ли рабочая лента или полубесконечна. Мы также можем иметь фиксированное количество лент, если f (n) является либо SPACE-конструируемой тупл, дающей использование пространства на каждую ленту, либо SPACE-конструируемым числом, дающим общее использование пространства (не считая накладных расходов на хранение длины каждой ленты). Доказательство похоже на доказательство теоремы о иерархии пространства, но с двумя осложнениями: универсальная машина Тьюринга должна быть эффективной в пространстве, а обратная сторона должна быть эффективной в пространстве. В целом можно построить универсальные машины Тьюринга с O{\log{space} пространством над головой и при соответствующих предположениях только O{\displaystyle O}{\log{space}} пространством над головой (которое может зависеть от моделируемой машины). Для обращения ключевой проблемой является то, как обнаружить, если симулированная машина отклоняет, входя в бесконечную (с ограниченным пространством) петлю. Если просто подсчитать количество шагов, то расход места увеличится примерно на f (n). За счет потенциально экспоненциального увеличения времени петли могут быть обнаружены пространственно эффективно следующим образом: модифицируйте машину, чтобы стереть все и перейти к определенной конфигурации A при успехе. Используйте поиск на глубине, чтобы определить, можно ли достичь A в пространстве, ограниченном от исходной конфигурации. Поиск начинается с А и переходит через конфигурации, которые ведут к А. Благодаря детерминизму это может быть сделано на месте и без вхождения в цикл. Можно также определить, превышает ли машина пространственную границу (в отличие от цикла в пределах пространственной границы), повторяя все конфигурации, которые собираются превысить пространственную границу, и проверяя (опять же, используя поиск глубины), ведет ли начальная конфигурация к какой-либо из них.
Modify the machine to erase everything and go to a specific configuration A on success. Use depth first search to determine whether A is reachable in the space bound from the starting configuration. The search starts at A and goes over configurations that lead to A. Because of determinism, this can be done in place and without going into a loop. It can also be determined whether the machine exceeds a space bound (as opposed to looping within the space bound) by iterating over all configurations about to exceed the space bound and checking (again using depth first search) whether the initial configuration leads to any of them.