Hiérarchie polynomiale
En théorie de la complexité, la hiérarchie polynomiale est une hiérarchie de classes de complexité qui étend la notion de classes P, NP, co-NP. La classe PH est l'union de toutes les classes de la hiérarchie polynomiale.
Définitions
modifierIl existe plusieurs définitions équivalentes des classes de la hiérarchie polynomiale.
Comme alternance de quantificateurs
modifierOn peut définir la hiérarchie à l'aide des quantificateurs universel ( ) et existentiel ( ). Tout d'abord, pour tout polynôme , et tout langage , on définit
- ,
c'est-à-dire que l'ensemble contient exactement l'ensemble des mots pour lesquels il existe un mot de taille polynomiale en la longueur de x tel que le mot est dans . Intuitivement, le mot joue le rôle d'un certificat pour , certificat relativement petit par rapport à . De la même façon on définit
- .
On étend ces définitions aux classes de langages
Maintenant, on peut définir les classes de la hiérarchie polynomiale par récurrence de la façon suivante :
En particulier, et .
Avec des machines à oracles
modifierLa hiérarchie polynomiale est également définissable à l'aide de machine de Turing avec oracle. dénote la classe des problèmes pouvant être décidés par des machines de complexité augmentées d'un oracle de complexité .
On pose
Puis pour tout i ≥ 0 :
Avec des machines alternantes
modifierLa hiérarchie polynomiale peut se définir à l'aide de machines de Turing alternantes. est la classe des langages décidés par une machine de Turing alternante en temps polynomial, dans laquelle toute exécution est composée de i suites de configurations de même type (existentielles ou universelles), la première suite ne contenant que des configurations existentielles. La définition de est similaire mais les configurations dans la première suite sont universelles.
Exemples de problèmes
modifierSavoir si une formule de la logique propositionnelle est minimale, c'est-à-dire s'il n'existe pas de formules plus courtes équivalentes, est un problème algorithmique dans [1].
Pour tout , le problème , défini comme le problème de satisfabilité booléenne pour les formules propositionnelles en forme prénexe avec quantificateurs alternant entre et et commençant par , est complet pour [2].
Propriétés
modifierQuestion autour de l'effondrement
modifierUne autre propriété importante, interne à la hiérarchie polynomiale, est la suivante : , ce qui signifie que si à un niveau deux classes sont égales, alors toutes les classes « au-dessus » sont égales. On parle alors d’« effondrement de la hiérarchie polynomiale au niveau »[3].
On peut par exemple montrer que la hiérarchie polynomiale s'effondre si PH admet un problème complet[4] ou si la hiérarchie booléenne, qu'elle contient, s'effondre[5]. Dans ce dernier cas, elle s'effondre au niveau 3.
Liens avec les autres classes
modifierOn a l'inclusion : [6]. L'égalité entre PH et PSPACE n'est pas connue, elle impliquerait que la hiérarchie polynomiale s'effondre. En particulier, si , alors , c’est-à-dire : la hiérarchie polynomiale s’effondre au niveau 1[3]. On ne pense donc pas que la hiérarchie polynomiale s’effondre au niveau 1 (c’est la question P = NP).
Le théorème de Sipser–Gács–Lautemann énonce que la classe probabiliste BPP est incluse dans le deuxième niveau de la hiérarchie polynomiale : . Les relations entre PH et la classe de complexité quantique BQP ont aussi été étudiées[7].
Le théorème de Toda[8] énonce que la hiérarchie polynomiale est incluse dans l'ensemble des problèmes résolubles en temps polynomial par une machine de Turing avec oracle pour la classe ♯P : . Cet énoncé signifie que la classe de comptage est au moins aussi puissante que .
Le théorème de Karp-Lipton énonce que si la classe NP est contenue dans la classe P/poly, alors la hiérarchie polynomiale s'effondre au niveau 2[9].
Bibliographie
modifier- A. R. Meyer and L. J. Stockmeyer. The Equivalence Problem for Regular Expressions with Squaring Requires Exponential Space. In Proceedings of the 13th IEEE Symposium on Switching and Automata Theory, pp. 125–129, 1972. L'article qui a introduit la hierarchie.
- L. J. Stockmeyer. The polynomial-time hierarchy. Theoretical Computer Science, vol.3, pp. 1–22, 1976.
- (en) Christos Papadimitriou, Computational Complexity, Addison-Wesley, (ISBN 978-0-201-53082-7) Chap. 17. Polynomial hierarchy, pp. 409–438.
- (en) Michael R. Garey et David S. Johnson, Computers and Intractability : A Guide to the Theory of NP-Completeness, New York, W.H. Freeman, , 338 p. (ISBN 0-7167-1045-5), « Section 7.2: The Polynomial Hierarchy », p. 161–167.
- (en) Sanjeev Arora et Boaz Barak, Computational Complexity : A Modern Approach, Cambridge University Press, (ISBN 0-521-42426-7), chap. 5 (« The polynomial hierarchy and alternation »)
- Sylvain Perifel, Complexité algorithmique, Paris, Ellipses Marketing, coll. « Références sciences », , 432 p. (ISBN 978-2-7298-8692-9, lire en ligne), chapitre 8 : la hiérarchie polynomiale.
Lien externe
modifierVoir aussi
modifierRéférences
modifier- (en) Sipser, Introduction to computation theory
- Perifel 2014, p. 200
- Perifel 2014, p. 195
- Perifel 2014, p. 199
- R. Chang et J. Kadin, « The Boolean Hierarchy and the Polynomial Hierarchy: A Closer Connection », SIAM Journal on Computing, vol. 25, , p. 340–354 (ISSN 0097-5397, DOI 10.1137/S0097539790178069, lire en ligne, consulté le )
- Perifel 2014, p. 194
- (en) Scott Aaronson, « BQP and the polynomial hierarchy », dans STOC, , p. 141-150.
- Perifel 2014, p. 226
- Perifel 2014, p. 204
- (en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Polynomial hierarchy » (voir la liste des auteurs).