Skip to main content

Graphe - Couplage

Cours inspiré des cours intégrés dispensés par Nicolas Hanusse et du polycopié de Denis Lapoire

Le problème posé à l'aviation anglaise durant la bataille d'angleterre état de pouvoir former un nombre maximum de couples de pilotes parmi un ensemble de pilotes venant des quatre coins du monde. On confiait à deux pilotes les commandes d'un avion à l'unique condition qu'ils partageaint une même langue. Un grand nombre de pilotes parlaient plusieurs langues.

Ce problème se formalise aisément en un problème de graphes, qui a pour nom le problème du couplage maximum.

Définition

Les graphes que nous considérerons dans ce chaptire sont non orientés. Afin de simplifier l'étuder, nous pourrons supposer qu'ils sont dépourvus de boucle

Un couplage d'un graphe non orienté est un ensemble d'arêtes 2 à 2 non adjacentes et qui ne soient pas des boucles. Un sommet est saturé dans un couplage DD si il est incident à l'une des arêtes de DD. Un couplage est

  • maximum si il est de cardinalité maximale parmi tous les couplages
  • parfait si tout sommet est saturé

Le problème du couplage maximum peut ainsi être formalisé.

Première caractérisation d'un couplage maximum

Une condition suffisante pour qu'un couplage ne soit pas maximum est l'existence de deux sommets insaturés adjacents, voir l'existence de deux sommets insaturés reliés par un chemin alternant des arcs du couplage et des arcs n'appartenant pas à ce couplage. Une propriété remarquable des couplages est que cette condition est non seulement suffisante mais aussi nécessaire. Cette section est consacrée à cette caractérisation.

Un chemin alterné ww relativement à un couplage KK d'un graphe GG est un chemin élémentaire à extrémités distinctes telle que pour toute arête ee de ww et pour toute arête ff succédant immédiatement ee sur ww on ait eKfKe \in K \Leftrightarrow f \notin K. Un chemin alterné est augmentant relativement à KK si ses deux extrémités sont insaturés par KK.

La différence symétrique (AB)(BA)(A-B) \cup (B-A) de deux ensembles AA est BB est notée AΔBA \Delta B

Soit ww un chemin alterné relativement à un couplage KK d'un graphe GG. Si chaque extrémité de ww est soit insaturé soit incidente à une arête de KK appartenant à ww, alors KΔE(w)K \Delta E(w) est un couplage de GG

Si KK et KK' sont deux couplages d'un graphe GG, alors chaque composante connexe KΔKK \Delta K' est de l'un des trois types suivant

  1. un sommet isolé
  2. un cycle élémentaire paire à arêtes alternativement dans KK et KK'
  3. un chemin élémentaire à arêtes alternativement dans KK et KK'

Pour tout couplage KK d'un graphe GG, les deux assertions suivantes sont équivalentes

  1. KK est maximum
  2. il n'existe aucun chemin alterné augmentant

Caractérisation algorithmique

La solution algorithmique requiert la définition de ce qu'est un arbre alterné, extension aux arbres de la notion d'alternance définie sur les chemmins.

Un arbre alterné selon un graphe G=(V,E)G=(V,E) et un couplage KK de GG est un triplet (U,D,r)(U,D,r) tel que

  • (U,D)(U,D) est un arbre qui est sous-graphe de GG
  • rr est un sommet de UU appelé sa racine et est insaturé selon KK
  • toute feuille de TT est paire c'est à dire est à distance paire de rr
  • tout sommet pair de TT autre que la racine est adjacent à son père (impair) selon une arête de DKD \cap K

Afin de simplifier les énoncés, un graphe (G,K)(G,K) muni d'un de ses couplages sera appelé un graphe couplé, un graphe (G,K,T)(G,K,T) muni d'un de ses couplages et d'un arbre alterné sera appelé un arbre couplé arboré

Pour résoudre le problème Couplage maximum, on utilise deux fonctions auxiliaires CMC et CMCA résolvant les deux problèmes suivants

Couplage Maximum d'un graphe couplé
Entrée : un graphe couplé (G,J)
Sortie : un couplage maximum K de G tel que K != J => |K| > |J|

Couplage Maximum d'un graphe couplé arboré
Entrée : un graphe couplé arboré (G,J,T)
Sortie : un couplage maximum K de G tel que K != J => |K| > |J|

Le lien entre ces problèmes est immédiat :

  • une définition de CM résolvant Couplage Maximum est simplement
fonction CM(G:graphe):couplage
retourner CMC(G,0)
  • une définition de CMC résolvant Couplage Maximum2 est simplement
fonction CMC((G,K):graphe couplé):couplage
si il existe au plus un sommet instaturé selon K
retourner K
sinon
r=instaturé(G,K)
T=arbreAlterné1Sommet(r)
retourner CMCA(G,K,T)

L'écrirture de CMCA nécessite quelques notations et définitions préalables

Le graphe obtenu à partir d'un graphe GG en fusionnant une partie de sommets YVGY \subseteq V_G est noté dans cette section GY˙G \dot Y. On suppose en outre que les boucles sont supprimées.

LE sous graphe d'un graphe GG induit par un ensemble de sommets UVGU \subseteq V_G est noté GUG|U. L'expression GUG-U dénote le sous-graphe G(VU)G|(V-U)

Une orbite d'un graphe couplé arboré (G,K,T)(G,K,T) est une arête ee incidente à deux sommets pairs de TT. Nous noterons

  • GeG^e le graphe obtenu à partir de GG en fusionnant tous les sommets de CC (c'est à dire GC˙G \dot C)
  • KeK^e le couplage obtneu à partir de KK en supprimant toutes les arêtes dont les deux extrémités appartiennent à CC. Clairement KeK^e est un couplage de GeG^e
  • TeT^e l'arbre obtenu à partir de TT en fusionnant tous les sommets de CC (c'est à dire TC˙T \dot C). Clairement TeT^e est un arbre alterné de (Ge,Ke)(G^e,K^e)CC désigne l'ensemble des sommets de l'unique circuit élementaire du graphe TT augmenté de l'arête ee.