Time hierarchy theorem: Difference between revisions

Content deleted Content added
Dcoetzee (talk | contribs)
Add a bit of explanation
Dcoetzee (talk | contribs)
Stronger statement, consequence for exponents of problems in P
Line 1:
In [[computational complexity theory]], the '''time hierarchy theorems''' are important statements that ensure the existence of certain "hard" problems which cannot be solved in a given amount of time. As a consequence, for every time-bounded [[complexity class]], there is a strictly larger time-bounded complexity class, and so the run-time hierarchy of problems does not completely collapse. One theorem deals with deterministic computations and the other with non-deterministic ones. The equivalent theorem for space is the [[space hierarchy theorem]].
 
Both theorems use the notion of a [[constructible function|time-constructible function]]. A [[function (mathematics)|function]] ''f'' : '''N''' &rarr; '''N''' is time-constructible if there exists a deterministic [[Turing machine]] such that for every ''n'' in '''N''', if the machine is started with an input of ''n'' ones, it will halt after precisely ''f''(''n'') steps. All [[polynomial]]s with non-negative integral coefficients are time-constructible, as are exponential functions such as 2<sup>''n''</sup>.
Line 7:
===Statement===
 
If ''f''(''n'') is a time-constructible function, then there exists a [[decision problem]] which cannot be solved in worst-case deterministic time ''f''(''n'') but can be solved in worst-case deterministic time ''f''(''n'')<sup>2</sup>. In other words, the complexity class [[DTIME|TIME]](''f''(''n'')) is a strict subset of TIMEDTIME(''f''(''n'')<sup>2</sup>).
 
Even more generally, it can be shown that if ''f''(''n'')log ''f''(''n'') grows slower asymptotically than ''g''(''n''), then more problems can be solved in deterministic time ''g''(''n'') than in time ''f''(''n'').[http://www.cs.ubc.ca/~condon/cpsc506/lectures/lec2.pdf] For example, there are problems solvable in time ''n''<sup>2</sup> but not time ''n'', since ''n'' log ''n'' grows slower asymptotically than ''n''<sup>2</sup>.
 
===Proof===
 
We include here a proof that TIMEDTIME(''f''(''n'')) is a strict subset of TIMEDTIME(''f''(2''n'' + 1)<sup>3</sup>) as it is simpler. See the bottom of this section for information on how to extend the proof to ''f''(''n'')<sup>2</sup>.
 
To prove this, we first define a language as follows:
Line 55 ⟶ 57:
 
==Consequences==
The time hierarchy theorems guarantee that the deterministic and non-deterministic version of the [[exponential hierarchy]] are genuine hierarchies: in other words [[Complexity classes P and NP(complexity)|P]] &sub; [[EXPTIME]] &sub; 2-EXP &sub; ..., and [[NP (complexity)|NP]] &sub; [[NEXPTIME]] &sub; 2-NEXP &sub; ...
 
The theorem also guarantees that there are problems in the '''P''' requiring arbitrarily large exponents to solve. For example, there are problems solvable in O(''n''<sup>5000</sup>) time but not O(''n''<sup>4999</sup>) time. This is one argument against considering '''P''' to be a practical class of algorithms.
 
However, the time hierarchy theorems provide no means to relate deterministic and non-deterministic complexity, or time and space complexity, so they cast no light on the great unsolved questions of [[complexity theory]]: whether [[Complexity classes P and NP|P and NP]], NP and [[PSPACE]], PSPACE and EXPTIME, or EXPTIME and NEXPTIME are equal or not.