Complexity classes::DSPACE


Space::''n''    ''M''::turing    Mathcal::input    ''x''::machine    DSPACE::''f''    There::classes

Complexity classes The measure DSPACE is used to define complexity classes, sets of all of the decision problems which can be solved using a certain amount of memory space. For each function f(n), there is a complexity class SPACE(f(n)), the set of decision problems which can be solved by a deterministic Turing machine using space O(f(n)). There is no restriction on the amount of computation time which can be used, though there may be restrictions on some other complexity measures (like alternation).

Several important complexity classes are defined in terms of DSPACE. These include:

  • REG = DSPACE(O(1)), where REG is the class of regular languages. In fact, REG = DSPACE(o(log log n)) (that is, Ω(log log n) space is required to recognize any non-regular language).<ref name=AS28>Szepietowski (1994) p.28</ref> <ref>{{#invoke:citation/CS1|citation

|CitationClass=citation }}</ref>

Proof: Suppose that there exists a non-regular language LDSPACE(s(n)), for s(n) = o(log log n). Let M be a Turing machine deciding L in space s(n). By our assumption MDSPACE(O(1)); thus, for any arbitrary k ∈ <math>\mathbb{N}</math>, there exists an input of M requiring more space than k.

Let x be an input of smallest size, denoted by n, that requires more space than k, and <math>\mathcal{C}</math> be the set of all configurations of M on input x. Because MDSPACE(s(n)), then <math>|\mathcal{C}| \le 2^{c.s(n)}</math> = o(log n), where c is a constant depending on M.

Let S denote the set of all possible crossing sequences of M on x. Note that the length of a crossing sequence of M on x is at most <math>|\mathcal{C}|</math>: if it is longer than that, then some configuration will repeat, and M will go into an infinite loop. There are also at most <math>|\mathcal{C}|</math> possibilities for every element of a crossing sequence, so the number of different crossing sequences of M on x is

<math>|S|\le|\mathcal{C}|^{|\mathcal{C}|} \le (2^{c.s(n)})^{2^{c.s(n)}}= 2^{c.s(n).2^{c.s(n)}}< 2^{2^{2c.s(n)}}=2^{2^{o(\log \log n)}} = o(n) </math>

According to pigeonhole principle, there exist indexes i < j such that <math>\mathcal{C}_i(x)=\mathcal{C}_j(x)</math>, where <math>\mathcal{C}_i(x)</math> and <math>\mathcal{C}_j(x)</math> are the crossing sequences at boundary i and j, respectively.

Let x' be the string obtained from x by removing all cells from i + 1 to j. The machine M still behaves exactly the same way on input x' as on input x, so it need the same space to compute x' as to compute x. However, |x' | < |x|, contradicting the definition of x. Hence, there does not exist such language L as the assumption. □

The above theorem implies the necessity of space-constructible function assumption in the space hierarchy theorem.

  • L = DSPACE(O(log n))
  • PSPACE = <math>\bigcup_{k\in\mathbb{N}} \mbox{DSPACE}(n^k)</math>
  • EXPSPACE = <math>\bigcup_{k\in\mathbb{N}} \mbox{DSPACE}(2^{n^k})</math>

DSPACE sections
Intro  Complexity classes  Machine models  Hierarchy Theorem  Relation with other complexity classes  References  External links  

Complexity classes
PREVIOUS: IntroNEXT: Machine models