List of complexity classes
View on Wikipediafrom Wikipedia
This article needs additional citations for verification. (April 2010) |

This is a list of complexity classes in computational complexity theory. For other computational and complexity subjects, see list of computability and complexity topics.
Many of these classes have a 'co' partner which consists of the complements of all languages in the original class. For example, if a language L is in NP then the complement of L is in co-NP. (This does not mean that the complement of NP is co-NP—there are languages which are known to be in both, and other languages which are known to be in neither.)
"The hardest problems" of a class refer to problems which belong to the class such that every other problem of that class can be reduced to it.
| #P | Count solutions to an NP problem |
| #P-complete | The hardest problems in #P |
| 2-EXPTIME | Solvable in doubly exponential time |
| AC0 | A circuit complexity class of bounded depth |
| ACC0 | A circuit complexity class of bounded depth and counting gates |
| AC | A circuit complexity class |
| AH | The arithmetic hierarchy |
| AP | The class of problems alternating Turing machines can solve in polynomial time.[1] |
| APX | Optimization problems that have approximation algorithms with constant approximation ratio[1] |
| AM | Solvable in polynomial time by an Arthur–Merlin protocol[1] |
| BPP | Solvable in polynomial time by randomized algorithms (answer is probably right) |
| BPL | problems solvable in logarithmic space and polynomial time with probabilistic Turing machines with two-sided error |
| BQP | Solvable in polynomial time on a quantum computer (answer is probably right) |
| co-NP | "NO" answers checkable in polynomial time by a non-deterministic machine |
| co-NP-complete | The hardest problems in co-NP |
| DLIN | Solvable by a deterministic multitape Turing machine in time O(n). |
| DSPACE(f(n)) | Solvable by a deterministic machine with space O(f(n)). |
| DTIME(f(n)) | Solvable by a deterministic machine in time O(f(n)). |
| E | Solvable in exponential time with linear exponent |
| ELEMENTARY | The union of the classes in the exponential hierarchy |
| ESPACE | Solvable with exponential space with linear exponent |
| EXP | Same as EXPTIME |
| EXPSPACE | Solvable with exponential space |
| EXPTIME | Solvable in exponential time |
| FNP | The analogue of NP for function problems |
| FP | The analogue of P for function problems |
| FPNP | The analogue of PNP for function problems; the home of the traveling salesman problem |
| FPT | Fixed-parameter tractable |
| GapL | Logspace-reducible to computing the integer determinant of a matrix |
| IP | Solvable in polynomial time by an interactive proof system |
| L | Solvable with logarithmic (small) space |
| LOGCFL | Logspace-reducible to a context-free language |
| MA | Solvable in polynomial time by a Merlin–Arthur protocol |
| NC | Solvable efficiently (in polylogarithmic time) on parallel computers |
| NE | Solvable by a non-deterministic machine in exponential time with linear exponent |
| NESPACE | Solvable by a non-deterministic machine with exponential space with linear exponent |
| NEXP | Same as NEXPTIME |
| NEXPSPACE | Solvable by a non-deterministic machine with exponential space |
| NEXPTIME | Solvable by a non-deterministic machine in exponential time |
| NL | "YES" answers checkable with logarithmic space |
| NLIN | Solvable by a nondeterministic multitape Turing machine in time O(n). |
| NONELEMENTARY | Complement of ELEMENTARY. |
| NP | "YES" answers checkable in polynomial time (see complexity classes P and NP) |
| NP-complete | The hardest or most expressive problems in NP |
| NP-easy | Analogue to PNP for function problems; another name for FPNP |
| NP-equivalent | The hardest problems in FPNP |
| NP-hard | At least as hard as every problem in NP but not known to be in the same complexity class |
| NSPACE(f(n)) | Solvable by a non-deterministic machine with space O(f(n)). |
| NTIME(f(n)) | Solvable by a non-deterministic machine in time O(f(n)). |
| P | Solvable in polynomial time |
| P-complete | The hardest problems in P to solve on parallel computers |
| P/poly | Solvable in polynomial time given an "advice string" depending only on the input size |
| PCP | Probabilistically Checkable Proof |
| PH | The union of the classes in the polynomial hierarchy |
| PL | solvable in polynomial time with a logarithmic space randomized machine with probability > 1⁄2 |
| PNP | Solvable in polynomial time with an oracle for a problem in NP; also known as Δ2P |
| PP | Probabilistically Polynomial (answer is right with probability slightly more than 1/2) |
| PPAD | Polynomial Parity Arguments on Directed graphs |
| PR | Solvable by recursively building up arithmetic functions. |
| PSPACE | Solvable with polynomial space. |
| PSPACE-complete | The hardest problems in PSPACE. |
| PTAS | Polynomial-time approximation scheme (a subclass of APX). |
| QIP | Solvable in polynomial time by a quantum interactive proof system. |
| QMA | Quantum analog of NP. |
| R | Solvable in a finite amount of time. |
| RE | Problems to which we can answer "YES" in a finite amount of time, but a "NO" answer might never come. |
| RL | Solvable with logarithmic space by randomized algorithms (NO answer is probably right, YES is certainly right) |
| RP | Solvable in polynomial time by randomized algorithms (NO answer is probably right, YES is certainly right) |
| SL | Problems log-space reducible to determining if a path exist between given vertices in an undirected graph. In October 2004 it was discovered that this class is in fact equal to L. |
| S2P | one round games with simultaneous moves refereed deterministically in polynomial time[2] |
| TFNP | Total function problems solvable in non-deterministic polynomial time. A problem in this class has the property that every input has an output whose validity may be checked efficiently, and the computational challenge is to find a valid output. |
| UP | Unambiguous Non-Deterministic Polytime functions. |
| ZPL | Solvable by randomized algorithms (answer is always right, average space usage is logarithmic) |
| ZPP | Solvable by randomized algorithms (answer is always right, average running time is polynomial) |
References
[edit]- ^ a b c Sanjeev Arora, Boaz Barak (2009), Computational Complexity: A Modern Approach, Cambridge University Press; 1 edition, ISBN 978-0-521-42426-4
- ^ "S2P: Second Level of the Symmetric Hierarchy". Stanford University Complexity Zoo. Archived from the original on 2012-10-14. Retrieved 2011-10-27.
External links
[edit]- Complexity Zoo - list of over 500 complexity classes and their properties
List of complexity classes
View on Grokipediafrom Grokipedia
Foundational Concepts
Definition and Formalization
Complexity classes in computational complexity theory are defined as collections of decision problems, represented as formal languages over a finite alphabet (typically {0,1}^*), that can be solved by abstract models of computation under specified resource constraints, such as limits on computation time or space usage.[3] These classes categorize problems based on the minimal resources required for their solution, providing a framework to compare the inherent difficulty of different computational tasks.[4] Formally, for a resource bound given by a function , a complexity class (such as DTIME() for deterministic time) consists of all languages for which there exists a Turing machine in the appropriate computational model (e.g., deterministic multitape Turing machine) such that decides : for every input string , accepts if and rejects if , with the resource usage of on bounded by .[3] This definition ensures that membership in can be determined correctly within the prescribed limits, distinguishing complexity classes from broader computability classes like RE (recursively enumerable languages), which impose no resource bounds.[3] While complexity theory primarily focuses on decision problems—yes/no questions encoded as language membership—the framework extends to function problems, where the task is to compute an output string for each input rather than merely accept or reject. However, the standard list of complexity classes centers on decision problems, as their resource requirements provide a clean foundation for hierarchies and completeness notions.[3] Basic examples illustrate these concepts: the class TIME(), consisting of languages decidable in constant time, corresponds to the regular languages, as such machines can only perform bounded computations independent of input length, effectively mimicking finite automata.[5] In contrast, the class DTIME(), for linear time, includes all regular languages and additional ones requiring scans of the entire input, such as certain context-free languages recognized via efficient parsing.[5] The notion of complexity classes originated in the 1960s with foundational work by Juris Hartmanis and Richard E. Stearns, who introduced measures of computational complexity for algorithms using Turing machine models to classify problem difficulty based on time and tape resources.[4] This was further developed in the 1970s by Stephen Cook, who formalized key classes like NP to address theorem-proving and optimization challenges, establishing the modern hierarchy of complexity.Standard Notations and Conventions
Complexity classes are formally defined using notations that capture resource bounds on Turing machines, distinguishing between deterministic and nondeterministic models for time and space. The class DTIME(f(n)) denotes the set of languages accepted by a deterministic Turing machine in time O(f(n)), where f(n) is a function from natural numbers to natural numbers. Similarly, NTIME(f(n)) encompasses languages accepted by a nondeterministic Turing machine in time O(f(n)). For space bounds, DSPACE(f(n)) and NSPACE(f(n)) are defined analogously, restricting the machine's work tape to O(f(n)) cells. These notations assume multi-tape Turing machines with a read-only input tape, and the bounds are typically for sufficiently large inputs, with f(n) ≥ n to ensure readability of the input.[6] Asymptotic notations such as O(f(n)), Θ(f(n)), and o(f(n)) are integrated into these definitions to describe upper and lower bounds on computational resources, allowing for flexible characterization of class hierarchies. For instance, the polynomial-time class P is defined as , capturing all problems solvable deterministically in polynomial time. This union over constants k reflects the scaling invariance of polynomial growth. Exponential classes extend this further; the class EXP is given by $ \mathrm{EXP} = \bigcup_{k=1}^\infty \mathrm{DTIME}(2^{n^k}) $, while the slightly tighter E is , where the O-notation accounts for linear factors within the exponent. These infinite unions formalize the aggregation of bounded resources into broader classes.[6][7] Sublinear space classes employ logarithmic bounds to denote efficient, memory-limited computation. The class L, or deterministic logarithmic space, is L = DSPACE(log n), consisting of languages decided using O(log n) space. Its nondeterministic counterpart, NL, is NL = NSPACE(log n), which includes problems where a nondeterministic machine verifies acceptance paths within logarithmic space. These notations highlight the distinction between time and space hierarchies, as space bounds do not permit reuse of tape cells in the same way time does.[8][9] Co-classes provide a way to describe the complements of languages within a given class, essential for studying decision problem symmetries. For any complexity class C, the co-class co-C is defined as co-C = { \overline{L} \mid L \in C }, where \overline{L} is the complement of language L (i.e., the set of strings not in L). A prominent example is co-NP, the class of languages whose complements are in NP, which includes problems where "no" instances have short verifiable proofs. This notation underscores open questions like whether NP = co-NP.[6][10] Extensions to promise problems and function classes build on these notations for more general computational tasks. Promise classes restrict inputs to subsets where the machine is only required to behave correctly on promised instances, while function classes like FP denote the set of functions computable in polynomial time by a deterministic Turing machine, serving as a natural extension for search problems beyond decision languages.[8]Deterministic Time Classes
Polynomial Time (P)
The class P (polynomial time) is the complexity class consisting of all decision problems that can be solved by a deterministic Turing machine in time bounded by a polynomial in the input size . Formally, it is defined as
where denotes the set of languages decided by deterministic Turing machines running in at most time.[11] Problems in P are those for which solutions can be verified or computed efficiently without nondeterminism, capturing the notion of "tractable" or feasible computation in theoretical models.[11]
P exhibits several key closure properties that underscore its robustness as a computational class. It is closed under complementation, meaning if a language , then its complement , achieved by swapping accepting and rejecting states in the deciding machine while preserving polynomial time bounds.[11] Similarly, P is closed under union and intersection: given two languages decided in times and , their union can be decided by nondeterministically branching to one machine (simulatable deterministically in time) and intersection by running both sequentially in time.[11] Moreover, P contains all regular languages, as deterministic finite automata can be simulated on Turing machines in linear time , and all context-free languages, which are recognizable in polynomial time using algorithms like Cocke-Younger-Kasami (CYK) parsing on grammars in Chomsky normal form.[12][13]
Regarding completeness, no problems are P-complete under polynomial-time reductions, as P is closed under such reductions, rendering every problem in P trivially reducible to any other. However, under log-space reductions (which preserve polynomial-time decidability while using only space for the reduction), the Circuit Value Problem (CVP) is P-complete. CVP takes as input a Boolean circuit, specified input values for its gates, and a target gate, asking whether the target gate evaluates to true; it is in P via topological evaluation in linear time and hard for P via simulations of general Turing machine computations.[14]
In practice, P models computations considered efficient for real-world applications, encompassing fundamental algorithms like comparison-based sorting (e.g., mergesort or heapsort in time) and shortest-path finding in graphs with nonnegative weights via Dijkstra's algorithm, which runs in time using a simple array for priority selection. Historically, P was formally introduced by Stephen Cook in his 1971 paper "The Complexity of Theorem-Proving Procedures," denoted there as for languages recognizable in polynomial time, and it forms the foundational verification class in the Cook-Levin theorem, which proves the satisfiability problem NP-complete by reducing it to polynomial-time verifiable proofs.[15]
Exponential Time (EXP)
The exponential time complexity class, denoted EXP, consists of all decision problems that can be solved by a deterministic Turing machine in time bounded by for some constant , where is the input size. Formally, . This class encompasses all problems in P, as polynomial-time computations are a subset of exponential-time ones. EXP exhibits several key properties that distinguish it within the hierarchy of time complexity classes. It is closed under complement, meaning if a language is in EXP, so is its complement, due to the deterministic nature of the computations. By the time hierarchy theorem, there exist problems in EXP that require more than polynomial time, establishing the strict inclusion . This separation highlights that EXP captures problems inherently harder than those solvable efficiently in polynomial time. Complete problems for EXP provide benchmarks for its hardness. Under polynomial-time reductions, succinct versions of problems like the Closest Vector Problem (CVP)—where the lattice is specified by a polynomial-sized circuit—are EXP-complete. However, under exponential-time reductions, natural problems such as the evaluation of succinct circuits are EXP-complete. These completeness results underscore the class's robustness, as reductions preserve the exponential-time solvability.[16] Representative examples illustrate problems naturally fitting in EXP but not known to be in P. The generalized chess problem, which asks whether the first player has a winning strategy on an chessboard with standard rules generalized to the larger size, is solvable in exponential time via exhaustive search of game trees but is EXP-complete. Similarly, deciding the validity of quantified Boolean formulas with an exponential number of variables falls into EXP. These examples emphasize EXP's relevance to combinatorial search and game theory. EXP relates to space complexity classes through known inclusions and tradeoffs. Specifically, , arising from the fact that polynomial-space computations can be simulated in exponential time by enumerating the exponential number of possible configurations of the space-bounded machine. Time-space tradeoffs further reveal that solving EXP problems often requires balancing exponential time with sub-exponential space, preventing collapse to lower classes without significant efficiency gains.Deterministic Space Classes
Logarithmic Space (L)
Logarithmic space, denoted as L, is the complexity class consisting of decision problems that can be solved by a deterministic Turing machine using O(log n) space on its work tape, where n is the input length, in addition to a read-only input tape and a write-only output tape for function computation variants.[3] This model ensures that the machine's memory is severely limited, allowing only a polynomial number of possible configurations (specifically, at most n^{O(1)} configurations), which bounds the computation time to polynomial in n.[17] Key properties of L include its closure under complementation, achieved simply by swapping the accepting and rejecting states of the Turing machine, a feature inherent to all deterministic complexity classes.[18] L is contained within nondeterministic logarithmic space (NL) because any deterministic computation is a special case of nondeterministic computation, and NL is contained within polynomial time (P) since the limited space implies bounded time.[17] Thus, L ⊆ NL ⊆ P holds as a fundamental inclusion in space-bounded complexity.[19] A canonical complete problem for L under log-space many-one reductions is undirected s-t connectivity (USTCON), which asks whether there is a path from vertex s to vertex t in an undirected graph; this problem is complete for the symmetric log-space class SL, and Reingold's 2005 result establishing SL = L elevates USTCON to L-completeness.[20] Representative examples of problems in L include recognizing palindromes over a binary alphabet, which can be verified by using log-space counters to compare symbols from the start and end of the input string, moving inward.[19] The significance of L lies in modeling computations that require minimal auxiliary memory, such as pointer-based algorithms that traverse data structures without storing large portions of the input. While Savitch's theorem demonstrates that NL ⊆ DSPACE(log² n), highlighting the power of nondeterminism within quadratic space overhead, L remains strictly deterministic and captures the essence of efficient, memory-constrained decision processes.[21]Polynomial Space (PSPACE)
Polynomial space, denoted PSPACE, is the complexity class consisting of all decision problems that can be solved by a deterministic Turing machine using an amount of space that is polynomial in the input size . Formally, it is defined as
where DSPACE denotes the class of languages accepted by deterministic Turing machines using at most space on inputs of length . This class captures computational tasks where memory usage grows as for some constant , but the running time may be exponential.[22]
A key result establishing the robustness of PSPACE is Savitch's theorem, which shows that nondeterminism provides no additional power in the polynomial space regime. Specifically, the theorem proves that for any function , , implying . In brief, the proof constructs a deterministic simulator that recursively checks the existence of accepting paths in the nondeterministic computation graph by verifying reachability between configurations, using quadratic space to store pairs of configurations and iteration levels. This 1970 result, published by Walter J. Savitch, demonstrated that unlike time classes where is suspected, space-bounded nondeterminism collapses to determinism at polynomial levels.[22]
PSPACE exhibits several important properties. It is closed under complementation, as swapping the accepting and rejecting states of a deterministic polynomial-space Turing machine yields a machine deciding the complement language, still within polynomial space. The class properly contains smaller space and time classes, including logarithmic space , nondeterministic logarithmic space , and polynomial time , due to the monotonicity of space and time resources. Additionally, , as any polynomial-space computation has at most exponentially many configurations (in the input size), bounding the runtime by an exponential function before repeating states. These inclusions highlight PSPACE's position in the broader complexity hierarchy, separating it from stricter resource bounds like while remaining below full exponential resources.
A canonical complete problem for PSPACE under polynomial-time reductions is the quantified Boolean formulas problem (QBF), which asks whether a fully quantified Boolean formula with alternating universal () and existential () quantifiers over propositional variables evaluates to true. Formally, for a formula , where each and is quantifier-free in conjunctive normal form, membership in QBF requires evaluating to true. This problem is PSPACE-complete, as shown by Larry Stockmeyer and Albert Meyer in 1973, because it naturally models the alternating existential and universal choices in polynomial-space computations, and reductions from other PSPACE problems preserve polynomial space.
Representative examples of PSPACE-complete problems include solvability in generalized N-puzzle variants, such as sliding-block puzzles on an grid with multiple tiles and obstacles, where determining if a configuration can reach a goal state requires exploring an exponential number of positions within polynomial space via nondeterministic path simulation. Similarly, classical AI planning problems, like deciding reachability in propositional STRIPS domains (where actions have polynomial-sized descriptions and the state space is exponentially large), are PSPACE-complete, as they encode sequences of precondition-effect transformations that mirror space-bounded search. These examples illustrate PSPACE's relevance to practical puzzles and automated reasoning tasks.[23][24]
PSPACE is also characterized by alternating Turing machines running in polynomial time, where computation alternates between existential (nondeterministic) and universal (all branches must accept) choices. This alternation model, formalized by Chandra, Kozen, and Stockmeyer in 1981, equates the power of polynomial-time alternating computation to polynomial-space deterministic computation, providing an intuitive game-theoretic view of PSPACE problems as two-player games on graphs with perfect information and polynomial-sized boards. Historically, Savitch's 1970 theorem laid the foundation by collapsing nondeterministic space, paving the way for these equivalences and establishing PSPACE as a central class in structural complexity theory.
Nondeterministic Time Classes
Nondeterministic Polynomial Time (NP)
Nondeterministic polynomial time (NP) is the complexity class consisting of decision problems solvable in polynomial time by a nondeterministic Turing machine. Formally, , where denotes the set of languages accepted by a nondeterministic Turing machine running in time .[25] Equivalently, a language is in NP if there exists a deterministic verifier running in polynomial time that accepts yes-instances paired with a polynomial-length certificate, while rejecting all no-instances regardless of the certificate.[25] This verifier model captures the intuition that solutions to NP problems can be efficiently checked, even if finding them may be hard. NP exhibits several closure properties: it is closed under union and intersection, meaning if , then and , as nondeterministic machines can branch to simulate verifiers for each language.[26] However, NP is not known to be closed under complementation; the class co-NP contains the complements of NP languages, and NP = co-NP would imply significant collapses in complexity hierarchies, though this remains unresolved.[25] Additionally, , since a polynomial-space machine can enumerate all possible certificates (of polynomial length) and verify each using polynomial time and space.[27] A canonical NP-complete problem is Boolean satisfiability (SAT), which asks whether a given Boolean formula in conjunctive normal form has a satisfying assignment; SAT is NP-complete by the Cook-Levin theorem, which reduces arbitrary NP verifications to SAT via a polynomial-time construction simulating the verifier's computation.[28] Other NP-complete examples include the decision version of the traveling salesman problem (TSP), which determines if there exists a tour visiting all cities with total cost at most a given bound, and graph coloring, which checks if a graph's vertices can be colored with at most colors such that no adjacent vertices share the same color (for fixed ).[29] NP contains the class P, as any deterministic polynomial-time machine can be viewed as a nondeterministic one without branching choices.[25] The significance of NP lies in the P vs. NP question, which asks whether ; resolving this affirmatively would imply polynomial-time algorithms exist for all NP problems, revolutionizing fields like optimization and cryptography, while a negative resolution would confirm inherent computational hardness for many practical tasks.[27] This is one of the seven Millennium Prize Problems posed by the Clay Mathematics Institute, carrying a $1,000,000 award for a correct solution.[30]Nondeterministic Exponential Time (NEXP)
Nondeterministic exponential time, denoted NEXP, is the complexity class consisting of all decision problems that can be solved by a nondeterministic Turing machine in time bounded by for some constant , where is the input length. Formally, . This class extends the nondeterministic polynomial-time class NP, as any problem solvable in polynomial nondeterministic time can be solved in exponential nondeterministic time by simply ignoring the extra time allowance.[31] NEXP exhibits several key properties analogous to those of NP but scaled to exponential bounds. It is closed under union and intersection: given two languages , a nondeterministic machine can nondeterministically choose to simulate the acceptor for or for the union, or run both in parallel (sharing the exponential time budget) for the intersection. By the nondeterministic time hierarchy theorem, which states that if for time-constructible , then , it follows that . Additionally, , since any nondeterministic computation in time uses at most space, placing it in ; Savitch's theorem then implies .[32] Complete problems for NEXP under polynomial-time many-one reductions include succinct variants of NP-complete problems, where the input is encoded exponentially more compactly using a polynomial-size circuit describing an exponential-size instance. A canonical example is Succinct 3-SAT: given a Boolean circuit succinctly encoding a 3-CNF formula of exponential size (via outputting the -th clause), decide if is satisfiable; this is in NEXP by nondeterministically guessing and verifying an assignment in exponential time, and NEXP-hard by reduction from arbitrary NEXP languages.[33] Representative applications include succinct planning problems, such as determining if there exists a plan in a succinct transition system (e.g., a polynomial-size circuit describing an exponential-state Markov decision process), which is NEXP-complete.[33] The relationship between NEXP and probabilistic classes remains a significant open area; for instance, assuming (which implies ) would yield strong derandomization results, potentially placing NEXP in or collapsing hierarchies, but no such collapse is known and the precise implications are unresolved.Nondeterministic Space Classes
Nondeterministic Logarithmic Space (NL)
Nondeterministic logarithmic space, denoted NL, is the complexity class of decision problems solvable by a nondeterministic Turing machine using space on its work tapes, where is the input length.[34] This class includes the deterministic counterpart L, since any deterministic computation can be viewed as a nondeterministic one with no branching choices.[34] A key property of NL is that it is closed under complementation, meaning if a language is in NL, then its complement is also in NL; this was established by the Immerman–Szelepcsényi theorem in 1987.[35] Furthermore, Savitch's theorem from 1970 shows that NL DSPACE(), where DSPACE denotes deterministic space complexity. NL P because the configuration graph of an NL machine has only polynomially many vertices and edges, allowing reachability from the initial configuration to an accepting configuration to be checked deterministically in polynomial time.[34] The st-connectivity problem (STCON), which determines whether there exists a directed path from a source vertex to a target vertex in a given directed graph, is NL-complete under logarithmic-space reductions. STCON itself belongs to NL, as a nondeterministic machine can guess a path step by step while using only logarithmic space to track the current vertex. Examples of problems in NL include directed graph connectivity, directly captured by STCON, and 2-satisfiability (2SAT), where satisfiability reduces to checking reachability in an implication graph constructed from the clauses, which is an instance of STCON solvable in NL.[36] Savitch's theorem provides a deterministic simulation of nondeterministic logarithmic space in quadratic logarithmic space, highlighting the power of nondeterminism in space-bounded computation, yet the question of whether L = NL remains unresolved, representing a fundamental open problem in complexity theory.[37]Nondeterministic Polynomial Space (NPSPACE)
Nondeterministic Polynomial Space (NPSPACE) is the complexity class of decision problems solvable by a nondeterministic Turing machine that uses at most a polynomial amount of space on its work tapes, regardless of the number of computation steps taken. Formally, it is defined as
where denotes the input size and is the class of languages accepted by nondeterministic Turing machines using space.[37]
A fundamental result establishing the relationship between nondeterministic and deterministic space complexity is Savitch's theorem, which proves that . This theorem, established by Walter Savitch in 1970, demonstrates that any nondeterministic polynomial-space computation can be simulated deterministically using only a quadratic increase in space, specifically for space bounds , thereby collapsing the two classes for polynomial bounds.[37] As a consequence, nondeterminism provides no additional power in the polynomial space regime, unlike in polynomial time where the separation between and remains unresolved.
Due to this equivalence, NPSPACE shares all structural properties with PSPACE, including closure under complementation and the existence of complete problems under log-space reductions.[37] Complete problems for NPSPACE are thus identical to those for PSPACE, highlighting that the class does not introduce novel computational capabilities beyond deterministic polynomial space. This collapse underscores a key distinction in complexity theory: while nondeterminism can exponentially amplify power in time-bounded settings, it is fully harnessed by deterministic methods within polynomial space limits.[37]
Canonical examples of problems in NPSPACE mirror those in PSPACE. The Quantified Boolean Formulas (QBF) problem, which requires evaluating the truth value of a Boolean formula with alternating existential and universal quantifiers over its variables, is complete for NPSPACE. A nondeterministic polynomial-space algorithm for QBF proceeds by recursively guessing assignments for existentially quantified variables and deterministically checking universal ones, using space proportional to the formula's size. This completeness was established by Stockmeyer and Meyer in 1973, confirming QBF's role as a benchmark for the class.[38]