Hiérarchie booléenne — Wikipédia
En informatique théorique, plus précisément en théorie de la complexité, la hiérarchie booléenne (notée BH pour Boolean hierarchy en anglais) est une hiérarchie de classes de complexité obtenues comme combinaisons booléennes (intersections, unions, et passage au complémentaire) de problèmes de décision de NP[1]. Plus précisément, un langage/problème de décision dans la hiérarchie booléenne s'écrit comme une « formule booléenne » où les « variables » sont des langages de NP, par exemple appartient à la hiérarchie booléenne si , , sont des langages de NP.
Définition formelle
[modifier | modifier le code]On définit BHi par récurrence sur i :
- BH1 = NP ;
- BH2k est la classe des langages qui peuvent être décrits par l'intersection d'un langage de BH2k-1 et d'un langage de co-NP ;
- BH2k+1 est la classe des langages qui peuvent être décrits par l'union d'un langage de BH2k et d'un langage de NP.
BH est l'union des BHi.
BH2 est noté DP (Difference Polynomial Time)[2].
Propriétés
[modifier | modifier le code]Si la hiérarchie booléenne s'effondre, alors la hiérarchie polynomiale s'effondre à Σ3P[3],[4]. Elle est incluse dans Δ2P.
Exemples de problèmes
[modifier | modifier le code]Le problème MAX-CLIQUE, étant donné un graphe non orienté G et un entier k, savoir si une clique maximale de G est de taille k, est DP-complet[2].
Notes et références
[modifier | modifier le code]- (en) Gerd Wechsung, « On the boolean closure of NP », Fundamentals of Computation Theory, Springer, Berlin, Heidelberg, lecture Notes in Computer Science, , p. 485–493 (ISBN 9783540156895, DOI 10.1007/BFb0028832, lire en ligne, consulté le )
- (en) Sipser, Introduction to the Theory of Computation
- 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 )
- (en) « Complexity Zoo:B - Complexity Zoo », sur complexityzoo.uwaterloo.ca (consulté le )