Polynomial hierarchy
From Free net encyclopedia
In computational complexity theory, the polynomial hierarchy is a hierarchy of complexity classes that generalize the classes P, NP and co-NP to oracle machines.
Contents |
Definitions
There are multiple equivalent definitions of the classes of the polynomial hierarchy.
-
For the oracle definition of the polynomial hierarchy, define
- <math>\Delta_0^{\rm P} := \Sigma_0^{\rm P} := \Pi_0^{\rm P} := \mbox{P},</math>
- <math>\Delta_{i+1}^{\rm P} := \mbox{P}^{\Sigma_i^{\rm P}}</math>
- <math>\Sigma_{i+1}^{\rm P} := \mbox{NP}^{\Sigma_i^{\rm P}}</math>
- <math>\Pi_{i+1}^{\rm P} := \mbox{coNP}^{\Sigma_i^{\rm P}}</math>
-
For the existential/universal definition of the polynomial hierarchy, let <math>L</math> be a language (i.e. a decision problem, a subset of {0,1}*), let <math>p</math> be a polynomial, and define
- <math> \exists^p L := \left\{ x \in \{0,1\}^* \ \left| \ \left( \exists w \in \{0,1\}^{\leq p(|x|)} \right) \langle x,w \rangle \in L \right. \right\}, </math>
- <math> \forall^p L := \left\{ x \in \{0,1\}^* \ \left| \ \left( \forall w \in \{0,1\}^{\leq p(|x|)} \right) \langle x,w \rangle \in L \right. \right\} </math>
- <math>\exists^{\rm P} \mathcal{C} := \left\{\exists^p L \ | \ p \mbox{ is a polynomial and } L \in \mathcal{C} \right\}</math>
- <math>\forall^{\rm P} \mathcal{C} := \left\{\forall^p L \ | \ p \mbox{ is a polynomial and } L \in \mathcal{C} \right\}</math>
- <math> \Sigma_0^{\rm P} := \Pi_0^{\rm P} := {\rm P} </math>
- <math> \Sigma_{k+1}^{\rm P} := \exists^{\rm P} \Pi_k^{\rm P} </math>
- <math> \Pi_{k+1}^{\rm P} := \forall^{\rm P} \Sigma_k^{\rm P} </math>
- An equivalent definition in terms of alternating Turing machines defines <math>\Sigma_k^{\rm P}</math> (respectively, <math>\Pi_k^{\rm P}</math>) as the set of decision problems solvable in polynomial time on an alternating Turing machine with <math>k</math> alternations starting in an existential (respectively, universal) state.
Relations between complexity classes
The definitions imply the relations:
- <math>\Sigma_i^{\rm P} \subseteq \Delta_{i+1}^{\rm P} \subseteq \Sigma_{i+1}^{\rm P}</math>
- <math>\Pi_i^{\rm P} \subseteq \Delta_{i+1}^{\rm P} \subseteq \Pi_{i+1}^{\rm P}</math>
- <math>\Sigma_i^{\rm P} = {\rm co}\Pi_{i}^{\rm P}</math>
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 <math>\Sigma_k^{\rm P} = \Sigma_{k+1}^{\rm P}</math>, or if any <math>\Sigma_k^{\rm P} = \Pi_{k}^{\rm P}</math>, then the hierarchy collapses to level k: for all <math>i > k</math>, <math>\Sigma_i^{\rm P} = \Sigma_k^{\rm P}</math>. In particular, if P = NP, then the hierarchy collapses completely.
The union of all classes in the polynomial hierarchy is the complexity class PH.
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 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 PSPACE is known to contain PSPACE-complete problems, we know that if PSPACE = PH, then the polynomial hierarchy must collapse.
Each class in the polynomial hierarchy contains <math>\leq_{\rm m}^{\rm P}</math>-complete problems. Therefore if <math>K_i</math> is a complete problem for <math>\Sigma_{i}^{\rm P}</math>, then <math>\Sigma_{i+1}^{\rm P} = \left( \Sigma_{i}^{\rm P} \right)^{K_i}</math>, and <math>\Pi_{i+1}^{\rm P} = \left( \Pi_{i}^{\rm P} \right)^{K_i^{\rm c}}</math>. For instance, <math>\Sigma_{2}^{\rm P} = {\rm NP}^{\rm SAT}</math>.
Problems in polynomial hierarchy
-
An example of a natural problem in <math>\Sigma_2^P</math> is circuit minimization: given a number k and a circuit A computing a Boolean function f, determine if there is a circuit with at most k gates that computes the same function f. Let <math> \mathcal{C} </math> be the set of all boolean circuits. The language
- <math> L = \left\{ \langle A,k,B,x \rangle \in \mathcal{C} \times \mathbb{N} \times \mathcal{C} \times \{0,1\}^*
- <math> CM = \left\{ \langle A,k \rangle \in \mathcal{C} \times \mathbb{N}
-
A complete problem for <math>\Sigma_k^{\rm P}</math> is satisfiability for quantified Boolean formulas with k alternations of quantifiers (abbreviated QBFk or QSATk). In this problem, we are given a Boolean formula f with variables partitioned into k sets X1, ..., Xk. We have to determine if it is true that
- <math> \exists X_1 \forall X_2 \exists X_3 \ldots f</math>
[edit]References
- L. Stockmeyer. The polynomial hierarchy. Theoretical Computer Science, vol.3, pp.1-22, 1976. The paper which introduced the polynomial hierarchy.
- C. Papadimitriou. Computational Complexity. Addison-Wesley, 1994. Chapter 17. Polynomial hierarchy. Chapter 17: The polynomial hierarchy, pp. 409–438.
- Template:Cite book Section 7.2: The Polynomial Hierarchy, pp.161–167.de:Polynomialzeithierarchie