Couplage (théorie des graphes)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Couplage et Appariement.

En théorie des graphes, un couplage ou appariement (en anglais matching) d'un graphe est un ensemble d'arêtes de ce graphe qui n'ont pas de sommets en commun.

Définitions[modifier | modifier le code]

Soit un graphe simple non orienté G = ( S, A ) (où S est l'ensemble des sommets et A l'ensemble des arêtes, qui sont certaines paires de sommets), un couplage M est un ensemble d'arêtes deux à deux non adjacentes. C'est-à-dire que M est une partie de l'ensemble A des arêtes telle que \forall (a,a') \in M^2,\qquad a\ne a'\Rightarrow a\cap a'=\varnothing~.

Un couplage maximum est un couplage contenant le plus grand nombre possible d'arêtes. Un graphe peut posséder plusieurs couplages maximum.

Un couplage maximal est un couplage M du graphe tel que toute arête du graphe possède au moins une extrémité commune avec une arête de M. Ceci équivaut à dire dans l'ensemble des couplages du graphe, M est maximal au sens de l'inclusion, i.e. que pour toute arête a de A qui n'est pas dans M, M\cup\{a\} n'est plus un couplage de G.

Un couplage parfait ou couplage complet est un couplage M du graphe tel que tout sommet du graphe est incident à exactement une arête de M.

Propriétés[modifier | modifier le code]

Un graphe, même fini, ne possède pas toujours de couplage parfait (en particulier, un graphe ayant un nombre impair de sommets ne peut avoir un couplage parfait).

Aspects algorithmiques[modifier | modifier le code]

Tout couplage parfait est maximum et tout couplage maximum est maximal (mais les réciproques sont fausses). Il est possible de trouver un couplage maximum en temps polynomial dans un graphe fini quelconque grâce à l'algorithme d'Edmonds (en).

Applications[modifier | modifier le code]

Le couplage (matching) peut être utilisé dans les problèmes d'affectation des taches et ce pour avoir une efficacité maximale, par exemple, chaque tache est attribué à un seul travailleur ou vis versa. Aussi, Ce couplage peut représenter les liaisons permanentes entre chaque client et son serveur dans les systèmes distribués.

Aussi, un couplage peut-être utilisé pour résoudre ou approcher des problèmes plus complexe comme celui du voyageur de commerce (voir l'algorithme de Christofides).

Articles connexes[modifier | modifier le code]