Hiérarchie booléenne

De testwiki
Aller à la navigation Aller à la recherche

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 (L1L2)L3 appartient à la hiérarchie booléenne si L1, L2, L3 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]Modèle:,[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].

Notes et références

Modèle:Références

Modèle:Portail