# Dégénérescence (théorie des graphes)

En théorie des graphes, la dégénérescence est un paramètre associé à un graphe non orienté. Un graphe est k-dégénéré si tout sous-graphe contient un nœud de degré inférieur ou égal à k. La dégénérescence d'un graphe est le plus petit k tel qu'il soit k-dégénéré. On peut de façon équivalente définir le paramètre en utilisant un ordre sur les sommets (appelé ordre de dégénérescence) tel que, pour tout sommet, le nombre d'arêtes vers des sommets plus petits dans l'ordre est au plus k. On parle alors parfois de nombre de marquage.
Il est possible de calculer l'ordre de dégénérescence en temps linéaire. L'algorithme consiste à retirer itérativement les nœuds de plus faible degré, en maintenant à jour une file de paquets indexés par leur degré courant. Les composantes connexes obtenues lorsque tous les sommets de degré inférieur à k ont été retirés sont appelés k-cœur du graphe, et la dégénérescence k est alors donnée par la plus grande valeur k associée à un k-cœur non-vide.
La dégénérescence est une mesure de la non-densité du graphe (c'est-à-dire d'à quel point le graphe est creux). On l'utilise notamment dans les problèmes de coloration de graphes.

## Deux définitions historiques équivalentes

Historiquement, la première définition proposée (sous le nom de coloring number) est due à Paul Erdős et András Hajnal en 1966. Elle dit qu'un graphe a un coloring number de k s'il existe un ordre sur les sommets tel que, pour tout sommet, le nombre d'arêtes vers des sommets plus petits dans l'ordre est au plus k.
Don Lick et Arthur White proposent une définition équivalente (en employant le terme de k-degenerate graph) en 1970: un graphe est dit k-dégénéré si tout sous-graphe induit contient un nœud de degré inférieur ou égal à k. On appelle dégénérescence d'un graphe le plus petit entier k tel que le graphe est k-dégénéré.
En français, on emploie également le terme nombre de marquage. En anglais, les termes degeneracy et coloring number sont tous deux employés. Il ne faut pas confondre le coloring number avec le chromatic number (ou nombre chromatique).

## Notion de k-cœur d'un graphe

Le k-cœur (k-core en anglais) d'un graphe G est le sous-graphe induit maximum de G dont tous les nœuds sont de degré au moins égal k. De manière équivalente, c'est le sous-graphe induit de G obtenu lorsque l'on supprime de manière répétée tous les sommets de degré plus petit que k. La dégénérescence de G sera la plus grande valeur de k pour laquelle G admet un k-cœur non-vide.
Le concept de k-cœur a été introduit pour étudier la structure des réseaux sociaux$^,$ et pour décrire l'évolution de graphes aléatoires$^,$$^,$. On l'a aussi utilisé dans différents domaines de la science des réseaux, par exemple en bio-informatique$^,$$^,$, en visualisation de graphes$^,$, ou encore en écologie pour étudier la robustesse des réseaux.

## Aspects algorithmiques

L'algorithme de Matula et Beck calcule l'ordre de dégénérescence en temps linéaire. Le principe de l'algorithme est de retirer itérativement les nœuds de plus faible degré, en maintenant à jour une file de paquets indexés par leur degré courant. Pour un graphe $G=(V,E)$ dont l'ensemble des sommets est V et l'ensemble des liens E, la procédure de Matula et Beck a une complexité temporelle en ${\mathcal {O}}(\vert V\vert +\vert E\vert )$ et spatiale en ${\mathcal {O}}(2\vert E\vert +\vert V\vert )$.
On peut le décrire de la manière suivante :
* Initialiser la liste de sortie L à la liste vide.
* Calculer une valeur d$_v$ pour chaque sommet v de G, qui est le nombre de voisins de v qui n'est pas déjà dans L (initialement, il s'agit donc du degré des sommets dans G).
* Initialiser un tableau D tel que D[i] contienne la liste des sommets v qui ne sont pas déjà dans L pour lesquels d$_v$ = i.
* Initialiser la valeur k à 0.
* Répéter n fois:
** Parcourir les cellules du tableau D[0], D[1], ... jusqu'à trouver un i pour lequel D[i] est non-vide.
** Mettre k à max(k,i).
** Sélectionner un sommet v de D[i], ajouter v en tête de L et le retirer de D[i].
** Pour chaque voisin w de v qui n'est pas déjà dans L, retirer une unité de d$_w$ et déplacer w de la cellule de D correspondant à la nouvelle valeur de d$_w$.
À la fin de l'algorithme, tout sommet $L[i]$ aura au plus k liens vers les sommets de $L[1,\ldots ,i-1]$. Les l-cœurs de G sont les $H_{l}\subset G$, sous-graphes induits par les sommets $L[1,\ldots ,i]$, où i est le premier sommet de degré $\geq l$ au moment où il est ajouté à L.

## Propriétés

Un graphe k-dégénéré a un nombre chromatique d'au plus k+1. On peut le prouver par une récurrence simple sur le nombre de sommets du graphe. Un algorithme de coloriage glouton sur un graphe qui parcourt les nœuds dans un ordre de dégénérescence permet de colorier les sommets avec au plus k+1 couleurs. Par ailleurs, comme le nombre chromatique est une borne supérieure à la taille de la clique maximum du graphe, celle-ci est au plus la dégénérescence du graphe +1.
La dégénérescence k d'un graphe est liée à son arboricité a par l'encadrement suivant: a ≤ k < 2a. En effet, si on oriente les arêtes du graphe selon l'ordre de dégénérescence de manière que l'orientation aille des sommets d'indice les plus élevés vers ceux d'indices plus petits, on obtient un graphe orienté acyclique de degré sortant maximum k; les arêtes peuvent alors être partitionnées en k forêts en choisissant pour chaque lien sortant de chaque sommet de l'affecter à une des forêts; par définition de l'arborescence, on a alors a ≤ k.
La dégénérescence peut aussi être liée à d'autres caractéristiques du graphe telle que la largeur arborescente.
On dit qu'un graphe est k-sommet-connexe s'il ne peut être partitionné par la suppression de moins de k sommets, ou, de manière équivalente, si toute paire de sommets est connectée par k il existe est k chaînes indépendantes reliant ces sommets. Comme ces chaînes doivent relier les deux sommets de la paire par des liens distincts, un graphe k-sommet connexe doit être au moins k-dégénéré. Des concepts basés sur la sommet-connexité ont été étudié dans le domaine de l'analyse de réseaux sociaux sous le nom de cohésion structurelle.
La conjecture d'Erdős-Burr dit que pour tout entier k, il existe une constante c telle que tout graphe k-dégénéré à n sommets ait son nombre de Ramsey majoré par c.n, autrement dit, le nombre de Ramsey croît linéairement avec le nombre de sommets du graphe. Cette conjecture a été démontrée par Choongbum Lee en 2017.

## Voir également

* Théorie des graphes
* Science des réseaux