PH (complexity)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

In computational complexity theory, the complexity class PH is the union of all complexity classes in the polynomial hierarchy:

PH was first defined by Larry Stockmeyer.[1] It is a special case of hierarchy of bounded alternating Turing machine. It is contained in P#P = PPP (by Toda's theorem; the class of problems that are decidable by a polynomial time Turing machine with access to a #P or equivalently PP oracle), and also in PSPACE.

PH has a simple logical characterization: it is the set of languages expressible by second-order logic.

PH contains almost all well-known complexity classes inside PSPACE; in particular, it contains P, NP, and co-NP. It even contains probabilistic classes such as BPP and RP. However, there is some evidence that BQP, the class of problems solvable in polynomial time by a quantum computer, is not contained in PH.[2][3]

P = NP if and only if P = PH.[citation needed] This may simplify a potential proof of PNP, since it is only necessary to separate P from the more general class PH.


  1. ^ Stockmeyer, Larry J. (1977). "The polynomial-time hierarchy". Theor. Comput. Sci. 3: 1–22. doi:10.1016/0304-3975(76)90061-X. Zbl 0353.02024.
  2. ^ Aaronson, Scott (2009). "BQP and the Polynomial Hierarchy". Proc. 42nd Symposium on Theory of Computing (STOC 2009). Association for Computing Machinery. pp. 141–150. arXiv:0910.4698. doi:10.1145/1806689.1806711. ECCC TR09-104.
  3. ^

General references[edit]