Hiérarchie booléenne
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
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
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
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].