HOME

TheInfoList



OR:

In
computational complexity theory In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and relating these classes to each other. A computational problem is a task solved by ...
, DTIME (or TIME) is the
computational resource In computational complexity theory, a computational resource is a resource used by some computational models in the solution of computational problems. The simplest computational resources are computation time, the number of steps necessary t ...
of
computation time In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by t ...
for a deterministic Turing machine. It represents the amount of time (or number of computation steps) that a "normal" physical computer would take to solve a certain
computational problem In theoretical computer science, a computational problem is a problem that may be solved by an algorithm. For example, the problem of factoring :"Given a positive integer ''n'', find a nontrivial prime factor of ''n''." is a computational probl ...
using a certain
algorithm In mathematics and computer science, an algorithm () is a finite sequence of rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algorithms are used as specificat ...
. It is one of the most well-studied complexity resources, because it corresponds so closely to an important real-world resource (the amount of time it takes a computer to solve a problem). The resource DTIME is used to define
complexity class In computational complexity theory, a complexity class is a set of computational problems of related resource-based complexity. The two most commonly analyzed resources are time and memory. In general, a complexity class is defined in terms of ...
es, sets of all of the
decision problem In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question of the input values. An example of a decision problem is deciding by means of an algorithm whethe ...
s which can be solved using a certain amount of computation time. If a problem of input size ''n'' can be solved in , we have a complexity class (or ). There is no restriction on the amount of memory space used, but there may be restrictions on some other complexity resources (like alternation).


Complexity classes in DTIME

Many important complexity classes are defined in terms of DTIME, containing all of the problems that can be solved in a certain amount of deterministic time. Any proper complexity function can be used to define a complexity class, but only certain classes are useful to study. In general, we desire our complexity classes to be robust against changes in the computational model, and to be closed under composition of subroutines. DTIME satisfies the
time hierarchy theorem In computational complexity theory, the time hierarchy theorems are important statements about time-bounded computation on Turing machines. Informally, these theorems say that given more time, a Turing machine can solve more problems. For example, ...
, meaning that
asymptotically In analytic geometry, an asymptote () of a curve is a line such that the distance between the curve and the line approaches zero as one or both of the ''x'' or ''y'' coordinates tends to infinity. In projective geometry and related contexts, ...
larger amounts of time always create strictly larger sets of problems. The well-known complexity class P comprises all of the problems which can be solved in a polynomial amount of DTIME. It can be defined formally as: :\mathsf = \bigcup_ \mathsf(n^k) P is the smallest robust class which includes linear-time problems \mathsf\left(n\right) (AMS 2004, Lecture 2.2, pg. 20). P is one of the largest complexity classes considered "computationally feasible". A much larger class using deterministic time is EXPTIME, which contains all of the problems solvable using a deterministic machine in
exponential time In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
. Formally, we have : \mathsf = \bigcup_ \mathsf \left( 2^ \right) . Larger complexity classes can be defined similarly. Because of the time hierarchy theorem, these classes form a strict hierarchy; we know that \mathsf \subsetneq \mathsf , and on up.


Machine model

The exact machine model used to define DTIME can vary without affecting the power of the resource. Results in the literature often use
multitape Turing machine A multi-tape Turing machine is a variant of the Turing machine that utilizes several tapes. Each tape has its own head for reading and writing. Initially, the input appears on tape 1, and the others start out blank. This model intuitively seems m ...
s, particularly when discussing very small time classes. In particular, a multitape deterministic Turing machine can never provide more than a quadratic time speedup over a singletape machine. Multiplicative constants in the amount of time used do not change the power of DTIME classes; a constant multiplicative speedup can always be obtained by increasing the number of states in the finite state control. In the statement of Papadimitriou, for a language , :Let L \in \mathsf(f(n)). Then, for any \epsilon > 0, L \in \mathsf(f'(n)), where f'(n) = \epsilon f(n) + n + 2.


Generalizations

Using a model other than a deterministic Turing machine, there are various generalizations and restrictions of DTIME. For example, if we use a
nondeterministic Turing machine In theoretical computer science, a nondeterministic Turing machine (NTM) is a theoretical model of computation whose governing rules specify more than one possible action when in some given situations. That is, an NTM's next state is ''not'' comp ...
, we have the resource
NTIME In computational complexity theory, the complexity class NTIME(''f''(''n'')) is the set of decision problems that can be solved by a non-deterministic Turing machine which runs in time ''O''(''f''(''n'')). Here ''O'' is the big O notation, ''f'' is ...
. The relationship between the expressive powers of DTIME and other computational resources are very poorly understood. One of the few known results is :\mathsf(O(n)) \neq \mathsf(O(n)) for multitape machines. This was extended to :\mathsf(O(n\sqrt)) \neq \mathsf(O(n\sqrt)) by Santhanam.Rahul Santhanam
On separators, segregators and time versus space
16th Annual IEEE Conference on Computational Complexity, 2001.
If we use an
alternating Turing machine In computational complexity theory, an alternating Turing machine (ATM) is a non-deterministic Turing machine (NTM) with a rule for accepting computations that generalizes the rules used in the definition of the complexity classes NP and co-NP. ...
, we have the resource ATIME.


References

* * {{DEFAULTSORT:Dtime Computational resources Complexity classes