# Ensemble dominant

En théorie des graphes, un ensemble dominant (ou dominating set en anglais) d'un graphe G = ( S, A ) est un sous-ensemble D de l'ensemble S des sommets tel que tout sommet qui n'appartient pas à D possède au moins une arête d'extrémité un sommet de D. Le problème de l'ensemble dominant est de déterminer, étant donné G et un entier naturel k, si G possède un ensemble dominant d'au plus k sommets. Ce problème est NP-complet.

## Définitions

Un ensemble dominant (ou dominating set en anglais) d'un graphe G = ( S, A ) est un sous-ensemble D de l'ensemble S des sommets tel que tout sommet qui n'appartient pas à D possède au moins une arête commune avec un sommet de D.
Le problème de l'ensemble dominant est de déterminer si étant donné G et un entier naturel k, G possède un ensemble dominant d'au plus k sommets. Ce problème est NP-complet.

## Exemple, remarques et propriétés combinatoires

L'ensemble S de tous les sommets est dominant.

### Code identifiant

Un code identifiant d'un graphe est un sous-ensemble C de sommets de G qui est à la fois un code couvrant et un code séparateur. Ce sous-ensemble C est appelé un code identifiant de G. Tous les sommets du graphe G sont donc couverts et séparés. On appelle pour chaque sommet v ensemble identifiant l’ensemble $N(v)\cap C$. On notera cet ensemble $L(v,C)$ ou $L(v)$.
On a donc C qui est un code identifiant de G si et seulement si l’application : $V\rightarrow \;L(v,C)$ est une injection dont l’image ne contient pas l’ensemble vide.

## Complexité du problème

Le problème de décision de l'ensemble dominant a été prouvé NP-complet par réduction avec le problème de couverture par sommets. Les deux problèmes sont similaires, la différence étant que le premier concerne des arcs alors que le second concerne les sommets.
Le problème de l'ensemble dominant est utilisé lui-même pour montrer la difficulté d'autres problèmes, comme le problème k-centre métrique.

### Couverture par sommets vers ensemble dominant

Soit <G, k> une instance du problème de couverture de sommets. On construit (cf figure ci-contre) un nouveau graphe G' , en ajoutant à G de nouveaux sommets, pour représenter les arcs du graphe initial G. Précisément, pour tout arc <v, w> de G, ajoutons un sommet vw et les arcs <v, vw> et <w,vw>.
Montrons qu'alors, G' a un ensemble dominant D de taille k si et seulement si G a une couverture de sommets C de taille k.
($\Rightarrow$) D est un ensemble dominant de G' de taille k. On peut alors construire un ensemble D' de taille k en remplaçant tous les sommets de D qui ne figurent pas dans le graphe de départ G par l'un de leurs 2 voisins qui eux sont des sommets de G et de G' . Ainsi, tout arc de G concerne un sommet de D' . D' est donc une couverture des sommets de G de taille k.
($\Leftarrow$) C est une couverture par sommets de G de taille k, donc les nouveaux et les anciens sommets sont dominés par k sommets.

## Algorithmes
### Approximation

La version « optimisation » du problème, qui consiste à trouver un ensemble dominant D tel que $|D|$ soit minimum, est approximable. Pour être plus précis, il est approximable avec un facteur $1+\log |D|$, comme cas particulier du problème de couverture par ensembles. Cependant, il n'est pas approximable à une distance $c\log |D|$ pour un $c>0$.