Пространственная сложность алгоритма или структуры данных — это объем памяти, необходимый для решения экземпляра вычислительной задачи в зависимости от характеристик входных данных. Это память, необходимая алгоритму до тех пор, пока он не выполнится полностью. [1] Сюда входит пространство памяти, используемое его входными данными, называемое входным пространством , и любая другая (вспомогательная) память, используемая им во время выполнения, называемая вспомогательным пространством .
Подобно временной сложности , пространственная сложность часто выражается асимптотически в нотации «О большое» , например, и т. д., где n — характеристика входных данных, влияющая на пространственную сложность.
Аналогично классам временной сложности DTIME(f(n)) и NTIME(f(n)) , классы сложности DSPACE(f(n)) и NSPACE(f(n)) являются наборами языков, которые разрешимы детерминированными (соответственно, недетерминированными) машинами Тьюринга , использующими пространство. Классы сложности PSPACE и NPSPACE позволяют быть любым полиномом, аналогично P и NP . То есть, и
Теорема об иерархии пространства утверждает, что для всех функций, конструируемых в пространстве, существует задача, которая может быть решена машиной с объемом памяти, но не может быть решена машиной с асимптотически меньшим, чем объем памяти.
Имеют место следующие ограничения между классами сложности. [2]
Более того, теорема Сэвича дает обратное утверждение, что если
Как прямое следствие, этот результат удивителен, поскольку он предполагает, что недетерминизм может уменьшить пространство, необходимое для решения проблемы, лишь на небольшую величину. Напротив, гипотеза экспоненциального времени предполагает, что для временной сложности может быть экспоненциальный разрыв между детерминированной и недетерминированной сложностью.
Теорема Иммермана –Селепчени утверждает, что, снова, для замкнуто относительно дополнения. Это показывает еще одно качественное различие между классами сложности времени и пространства, поскольку недетерминированные классы сложности времени не считаются замкнутыми относительно дополнения; например, предполагается, что NP ≠ co-NP . [3] [4]
L или LOGSPACE — это набор задач, которые может решить детерминированная машина Тьюринга, используя только пространство памяти относительно размера входных данных. Даже один счетчик, который может индексировать весь -битный вход, требует пространства, поэтому алгоритмы LOGSPACE могут поддерживать только постоянное число счетчиков или других переменных аналогичной битовой сложности.
LOGSPACE и другие сублинейные пространственные сложности полезны при обработке больших данных, которые не помещаются в оперативную память компьютера . Они связаны с потоковыми алгоритмами , но ограничивают только объем используемой памяти, в то время как потоковые алгоритмы имеют дополнительные ограничения на то, как входные данные подаются в алгоритм. Этот класс также находит применение в области псевдослучайности и дерандомизации , где исследователи рассматривают открытую проблему того, L = RL . [5] [6]
Соответствующий класс недетерминированной пространственной сложности — NL .
ТерминВспомогательное пространство относится к пространству, отличному от того, которое потребляется входом. Сложность вспомогательного пространства может быть формально определена в терминахмашины Тьюрингас отдельнойвходной лентой, на которую нельзя записывать, только читать, и обычной рабочей лентой, на которую можно записывать. Сложность вспомогательного пространства затем определяется (и анализируется) через рабочую ленту. Например, рассмотримвглубинусбалансированного бинарного деревасузлами: его сложность вспомогательного пространства равна
{{citation}}
: CS1 maint: отсутствует местоположение издателя ( ссылка ).