Dans un graphe non orienté sans boucle ni arête multiple (cf. définitions dans théorie des graphes), noté G = (X, V), on recherche un ensemble stable de poids maximal (noté ESPM).
Un ensembleS inclus dans X est dit stable si et seulement si deux sommets distincts de S ne sont pas adjacents, c’est-à-dire, Γ(G) étant l'ensemble des sommets adjacents aux éléments de S, si et seulement si Γ(G) ∩ S = ∅.
Un ensemble stable de G est maximal si et seulement s'il n'est contenu dans aucun autre ensemble stable de G.
On associe à chaque sommet x de X un poids positif ou nul noté p(x) et on définit alors le poids P(S) d'un ensemble stable S par :
.
Le problème de l'ESPM consiste à déterminer dans G un ensemble stable S0 tel que
.
On notera qu'il existe un problème voisin qui est celui de l'ensemble stable de cardinal maximal (ESCM), qui se définit par :
Soit SG la famille des ensembles stables de G, le nombre de stabilité est : .
Le problème de l'ESCM consiste à déterminer dans G un ensemble stable de cardinal α(G). Il s'agit d'un cas particulier d'ESPM où les poids sont égaux à 1.
Une clique de G est un ensemble de sommets
, deux à deux adjacents, le graphe complémentaire de G est le graphe G' = (X,V') dont l'ensemble V' vérifie:
.
Un support de G est un ensemble de sommets
contenant au moins une extrémité de chaque arête de G.
Un ESPM de G est une clique de poids maximal de G', T est un support de poids minimal si et seulement si X − T est un ESPM.
Autres problèmes équivalents
La recherche d'un ESPM dans un graphe permet la résolution des problèmes de maximisation de fonction pseudo-booléennes et de partitionnement.
Étant donné une fonction pseudo booléenne f, on va construire un graphe en associant à chaque monôme un sommet du graphe en construction, de poids valant le coefficient dudit monôme. Une arête est générée entre deux sommets lorsque le produit booléen des monômes est nul. Ainsi le maximum de la fonction est égal au poids de l'ESPM du graphe.
Exemple :
Soit
Le graphe généré est le suivant :
L'ESPM (3,4) a pour poids 13, le maximum de la fonction vaut 13.
Problème de partitionnement.
Exemple :
Chercher le minimum de 2x1 + 3x2 + 7x3 + 4x4 + 8x5 avec les contraintes :