NP-intermediate


In computational complexity, problems that are in the complexity class NP but are neither in the class P nor NP-complete are called NP-intermediate, and the class of such problems is called NPI. Ladner's theorem, shown in 1975 by Richard E. Ladner, is a result asserting that, if NP problem|P ≠ NP], then NPI is not empty; that is, NP contains problems that are neither in P nor NP-complete. Since it is also true that if NPI problems exist, then P ≠ NP, it follows that P = NP if and only if NPI is empty.
Under the assumption that P ≠ NP, Ladner explicitly constructs a problem in NPI, although this problem is artificial and otherwise uninteresting. It is an open question whether any "natural" problem has the same property: Schaefer's dichotomy theorem provides conditions under which classes of constrained Boolean satisfiability problems cannot be in NPI. Some problems that are considered good candidates for being NP-intermediate are the graph isomorphism problem, and decision versions of factoring and the discrete logarithm.
Under the exponential time hypothesis, there exist natural problems that require quasi-polynomial time, and can be solved in that time, including finding a large disjoint set of unit disks from a given set of disks in the hyperbolic plane, and finding a graph with few vertices that is not an induced subgraph of a given graph. The exponential time hypothesis also implies that no quasi-polynomial-time problem can be NP-complete, so under this assumption these problems must be NP-intermediate.

List of problems that might be NP-intermediate

Algebra and number theory

  • A decision version of factoring integers: for input and, does have a factor in the interval ?
  • Decision versions of the discrete logarithm problem and others related to cryptographic assumptions
  • Linear divisibility: given integers and, does have a divisor congruent to 1 modulo ?

Boolean logic

Computational geometry and computational topology

Game theory

  • Determining the winner in parity games, in which graph vertices are labeled by which player chooses the next step, and the winner is determined by the parity of the highest-priority vertex reached
  • Determining the winner for stochastic graph games, in which graph vertices are labeled by which player chooses the next step, or whether it is chosen randomly, and the winner is determined by reaching a designated sink vertex.

Graph algorithms

Miscellaneous