Space hierarchy theorem

Revision as of 01:28, 10 March 2025 by imported>Cosmia Nebula (→‎Refinement of space hierarchy: nspace)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

Template:Short descriptionIn computational complexity theory, the space hierarchy theorems are separation results that show that both deterministic and nondeterministic machines can solve more problems in (asymptotically) more space, subject to certain conditions. For example, a deterministic Turing machine can solve more decision problems in space n log n than in space n. The somewhat weaker analogous theorems for time are the time hierarchy theorems.

The foundation for the hierarchy theorems lies in the intuition that 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 <math>f(n)</math> and all <math>g(n) \in o(f(n))</math>,

<math>\mathsf{SPACE}(g(n)) \subsetneq \mathsf{SPACE}(f(n))</math>,

where SPACE stands for either DSPACE or NSPACE, and Template:Mvar refers to the little o notation.

StatementEdit

Formally, a function <math>f:\mathbb{N} \longrightarrow \mathbb{N}</math> is space-constructible if <math>f(n) \ge \log~n</math> and there exists a Turing machine which computes the function <math>f(n)</math> in space <math>O(f(n))</math> when starting with an input <math>1^n</math>, where <math>1^n</math> represents a string of n consecutive 1s. Most of the common functions that we work with are space-constructible, including polynomials, exponents, and logarithms.

For every space-constructible function <math>f:\mathbb{N} \longrightarrow \mathbb{N}</math>, there exists a language Template:Mvar that is decidable in space <math>O(f(n))</math> but not in space <math>o(f(n))</math>.

ProofEdit

The goal is to define a language that can be decided in space <math>O(f(n))</math> but not space <math>o(f(n))</math>. The language is defined as Template:Mvar:

<math>L = \{~ (\langle M \rangle, 10^k): M \mbox{ uses space } \le f(|\langle M \rangle, 10^k|) \mbox{ and time } \le 2^{f(|\langle M \rangle, 10^k|)} \mbox{ and } M \mbox{ does not accept } (\langle M \rangle, 10^k) ~ \}</math>

For any machine Template:Mvar that decides a language in space <math>o(f(n))</math>, Template:Mvar will differ in at least one spot from the language of Template:Mvar. Namely, for some large enough Template:Mvar, Template:Mvar will use space <math>\le f(|\langle M \rangle, 10^k|)</Math> on <math>(\langle M \rangle, 10^k)</Math> and will therefore differ at its value.

On the other hand, Template:Mvar is in <math>\mathsf{SPACE}(f(n))</math>. The algorithm for deciding the language Template:Mvar is as follows:

  1. On an input Template:Mvar, compute <math>f(|x|)</math> using space-constructibility, and mark off <math>f(|x|)</math> cells of tape. Whenever an attempt is made to use more than <math>f(|x|)</math> cells, reject.
  2. If Template:Mvar is not of the form <math>\langle M \rangle, 10^k</math> for some TM Template:Mvar, reject.
  3. Simulate Template:Mvar on input Template:Mvar for at most <math>2^{f(|x|)}</math> steps (using <math>f(|x|)</math> space). If the simulation tries to use more than <math>f(|x|)</math> space or more than <math>2^{f(|x|)}</math> operations, then reject.
  4. If Template:Mvar accepted Template:Mvar during this simulation, then reject; otherwise, accept.

Note on step 3: Execution is limited to <math>2^{f(|x|)}</math> steps in order to avoid the case where Template:Mvar does not halt on the input Template:Mvar. That is, the case where Template:Mvar consumes space of only <math>O(f(x))</math> as required, but runs for infinite time.

The above proof holds for the case of PSPACE, but some changes need to be made for the case of NPSPACE. The crucial point is that while on a deterministic TM, acceptance and rejection can be inverted (crucial for step 4), this is not possible on a non-deterministic machine.

For the case of NPSPACE, Template:Mvar needs to be redefined first:

<math>L = \{~ (\langle M \rangle, 10^k): M \mbox{ uses space } \le f(|\langle M \rangle, 10^k|) \mbox{ and } M \mbox{ accepts } (\langle M \rangle, 10^k) ~ \}</math>

Now, the algorithm needs to be changed to accept Template:Mvar by modifying step 4 to:

Template:Mvar can not be decided by a TM using <math>o(f(n))</math> cells. Assuming Template:Mvar can be decided by some TM Template:Mvar using <math>o(f(n))</math> cells, and following from the Immerman–Szelepcsényi theorem, <math>\overline L</math> can also be determined by a TM (called <math>\overline M</math>) using <math>o(f(n))</math> cells. Here lies the contradiction, therefore the assumption must be false:

  1. If <math>w = (\langle \overline M \rangle, 10^k)</math> (for some large enough Template:Mvar) is not in <math>\overline L</math> then Template:Mvar will accept it, therefore <math>\overline M</math> rejects Template:Mvar, therefore Template:Mvar is in <math>\overline L</math> (contradiction).
  2. If <math>w = (\langle \overline M \rangle, 10^k)</math> (for some large enough Template:Mvar) is in <math>\overline L</math> then Template:Mvar will reject it, therefore <math>\overline M</math> accepts Template:Mvar, therefore Template:Mvar is not in <math>\overline L</math> (contradiction).

Comparison and improvementsEdit

The space hierarchy theorem is stronger than the analogous time hierarchy theorems in several ways:

  • It only requires s(n) to be at least log n instead of at least n.
  • It can separate classes with any asymptotic difference, whereas the time hierarchy theorem requires them to be separated by a logarithmic factor.
  • It only requires the function to be space-constructible, not time-constructible.
  • It only requires <math>f(n)</math> to be space-constructible, with no constraint on the constructability of <math>g(n)</math>.
  • However, it is known from results in axiomatic complexity theory that the theorem is false if <math>f(n)</math> is not required to be space-constructible.<ref name=":1">Template:Cite book</ref>Template:Pg

It seems to be easier to separate classes in space than in time. Indeed, whereas the time hierarchy theorem has seen little remarkable improvement since its inception, the nondeterministic space hierarchy theorem has seen at least one important improvement by Viliam Geffert in his 2003 paper "Space hierarchy theorem revised". This paper made several generalizations of the theorem:

  • It relaxes the space-constructibility requirement. Let <math>s</math> be a nondeterministically fully space-constructible function. Let Template:Tmath be an arbitrary Template:Tmath function, and <math>g(n)</math> be a computable Template:Tmath function. These functions need not be space-constructible or even monotone increasing. Then Template:Tmath and Template:Tmath.
  • It identifies a unary language, or tally language, which is in one class but not the other. In the original theorem, the separating language was arbitrary.
  • It does not require Template:Tmath to be at least log n; it can be any nondeterministically fully space-constructible function.

Refinement of space hierarchyEdit

If space is measured as the number of cells used regardless of alphabet size, then Template:Tmath because one can achieve any linear compression by switching to a larger alphabet. However, by measuring space in bits, a much sharper separation is achievable for deterministic space. Instead of being defined up to a multiplicative constant, space is now defined up to an additive constant. However, because any constant amount of external space can be saved by storing the contents into the internal state, we still have Template:Tmath.

Assume that f is space-constructible. SPACE is deterministic.

  • For a wide variety of sequential computational models, including for Turing machines, SPACE(f(n)-ω(log(f(n)+n))) ⊊ SPACE(f(n)). This holds even if SPACE(f(n)-ω(log(f(n)+n))) is defined using a different computational model than Template:Tmath because the different models can simulate each other with Template:Tmath space overhead.
  • For certain computational models, we even have SPACE(f(n)-ω(1)) ⊊ SPACE(f(n)). In particular, this holds for Turing machines if we fix the alphabet, the number of heads on the input tape, the number of heads on the worktape (using a single worktape), and add delimiters for the visited portion of the worktape (that can be checked without increasing space usage). SPACE(f(n)) does not depend on whether the worktape is infinite or semi-infinite. We can also have a fixed number of worktapes if f(n) is either a SPACE constructible tuple giving the per-tape space usage, or a SPACE(f(n)-ω(log(f(n)))-constructible number giving the total space usage (not counting the overhead for storing the length of each tape).

The proof is similar to the proof of the space hierarchy theorem, but with two complications: The universal Turing machine has to be space-efficient, and the reversal has to be space-efficient. One can generally construct universal Turing machines with Template:Tmath space overhead, and under appropriate assumptions, just Template:Tmath space overhead (which may depend on the machine being simulated). For the reversal, the key issue is how to detect if the simulated machine rejects by entering an infinite (space-constrained) loop. Simply counting the number of steps taken would increase space consumption by about Template:Tmath. At the cost of a potentially exponential time increase, loops can be detected space-efficiently as follows:<ref>Template:Cite conference</ref>

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.

CorollariesEdit

Corollary 1Edit

For any two functions <math>f_1</math>, <math>f_2: \mathbb{N} \longrightarrow \mathbb{N}</math>, where <math>f_1(n)</math> is <math>o(f_2(n))</math> and <math>f_2</math> is space-constructible, <math>\mathsf{SPACE}(f_1(n)) \subsetneq \mathsf{SPACE}(f_2(n))</math>.

This corollary lets us separate various space complexity classes. For any natural number k, the function <math>n^k</math> is space-constructible. Therefore for any two natural numbers <math>k_1 < k_2</math> we can prove <math>\mathsf{SPACE}(n^{k_1}) \subsetneq \mathsf{SPACE}(n^{k_2})</math>.

Corollary 2Edit

NLPSPACE.

ProofEdit

Savitch's theorem shows that <math>\mathsf{NL} \subseteq \mathsf{SPACE}(\log^2n)</math>, while the space hierarchy theorem shows that <math>\mathsf{SPACE}(\log^2n) \subsetneq \mathsf{SPACE}(n)</math>. The result is this corollary along with the fact that TQBF ∉ NL since TQBF is PSPACE-complete.

This could also be proven using the non-deterministic space hierarchy theorem to show that NL ⊊ NPSPACE, and using Savitch's theorem to show that PSPACE = NPSPACE.

Corollary 3Edit

PSPACEEXPSPACE.

This last corollary shows the existence of decidable problems that are intractable. In other words, their decision procedures must use more than polynomial space.

Corollary 4Edit

There are problems in Template:Sans-serif requiring an arbitrarily large exponent to solve; therefore Template:Sans-serif does not collapse to Template:Sans-serif(nk) for some constant k.

Corollary 5Edit

SPACE(n) ≠ PTIME.

To see it, assume the contrary, thus any problem decided in space <math>O(n)</math> is decided in time <math>O(n^c)</math>, and any problem <math>L</math> decided in space <math>O(n^b)</math> is decided in time <math>O((n^b)^c)=O(n^{bc})</math>. Now <math>\mathsf{P}:=\bigcup_{k\in\mathbb N}\mathsf{DTIME}(n^k)</math>, thus P is closed under such a change of bound, that is <math>\bigcup_{k\in\mathbb N}\mathsf{DTIME}(n^{bk})\subseteq\mathsf{P}</math>, so <math>L\in\mathsf{P}</math>. This implies that for all <math>b, \mathsf{SPACE}(n^b)\subseteq\mathsf{P}\subseteq\mathsf{SPACE}(n)</math>, but the space hierarchy theorem implies that <math>\mathsf{SPACE}(n^2)\not\subseteq\mathsf{SPACE}(n)</math>, and Corollary 6 follows. Note that this argument neither proves that <math>\mathsf{P}\not\subseteq\mathsf{SPACE}(n)</math> nor that <math>\mathsf{SPACE}(n)\not\subseteq\mathsf{P}</math>, as to reach a contradiction we used the negation of both sentences, that is we used both inclusions, and can only deduce that at least one fails. It is currently unknown which fail(s) but conjectured that both do, that is that <math>\mathsf{SPACE}(n)</math> and <math>\mathsf{P}</math> are incomparable -at least for deterministic space.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> This question is related to that of the time complexity of (nondeterministic) linear bounded automata which accept the complexity class <math>\mathsf{NSPACE}(n)</math> (aka as context-sensitive languages, CSL); so by the above CSL is not known to be decidable in polynomial time -see also Kuroda's two problems on LBA.

See alsoEdit

ReferencesEdit

Template:Reflist