In computational complexity theory, the polynomial hierarchy (sometimes called the polynomial-time hierarchy) is a hierarchy of complexity classes that generalize the classes P, NP and co-NP to oracle machines. It is a resource-bounded counterpart to the arithmetical hierarchy and analytical hierarchy from mathematical logic.
Contents
Definitions
There are multiple equivalent definitions of the classes of the polynomial hierarchy.
Relations between classes in the polynomial hierarchy
The definitions imply the relations:
Unlike the arithmetic and analytic hierarchies, whose inclusions are known to be proper, it is an open question whether any of these inclusions are proper, though it is widely believed that they all are. If any
The union of all classes in the polynomial hierarchy is the complexity class PH.
Properties
The polynomial hierarchy is an analogue (at much lower complexity) of the exponential hierarchy and arithmetical hierarchy.
It is known that PH is contained within PSPACE, but it is not known whether the two classes are equal. One useful reformulation of this problem is that PH = PSPACE if and only if second-order logic over finite structures gains no additional power from the addition of a transitive closure operator.
If the polynomial hierarchy has any complete problems, then it has only finitely many distinct levels. Since there are PSPACE-complete problems, we know that if PSPACE = PH, then the polynomial hierarchy must collapse, since a PSPACE-complete problem would be a
Each class in the polynomial hierarchy contains
The Sipser–Lautemann theorem states that the class BPP is contained in the second level of the polynomial hierarchy.
Kannan's theorem states that for any k,
Toda's theorem states that the polynomial hierarchy is contained in P#P.