📅  最后修改于: 2023-12-03 15:33:07.625000             🧑  作者: Mango
As a programmer, you may have heard of the terms "NL-Completeness" and "PSPACE-Completeness". These terms refer to the complexity of decision problems and are important in the field of computational complexity theory.
A decision problem is a problem that requires a yes or no answer. For example, "is this number prime?" is a decision problem, because the answer is either "yes" or "no".
A decision problem is said to be NL-Complete if it can be solved by a nondeterministic Turing machine using space logarithmic in the size of the input. This means that the problem can be solved in polynomial time by a deterministic Turing machine if we allow it access to a nondeterministic oracle that can answer yes or no questions in constant time.
One famous NL-Complete problem is the reachability problem for directed graphs. In this problem, we are given a directed graph and two vertices s and t, and we want to know if there is a path from s to t in the graph.
A decision problem is said to be PSPACE-Complete if it can be solved by a deterministic Turing machine using polynomial space. This means that the problem is at least as hard as any problem that can be solved by a deterministic Turing machine in polynomial space.
One famous PSPACE-Complete problem is the satisfiability problem for propositional logic formulas. In this problem, we are given a formula in propositional logic and we want to know if there is an assignment of truth values to the variables that makes the formula true.
NL-Completeness and PSPACE-Completeness are both important concepts in computational complexity theory. Being able to classify decision problems according to their complexity helps us understand the limits of computation and the boundaries of efficient algorithms.