COURS SUR LA THEORIE DES GRAPHES Hao LI Laboratoire de Recherche en Informatique UMR8623, CNRS – Université Paris-sud
1. Couplages Etant donné un graphe simple G(V, E), - Un couplage est un sous-ensemble M d’arêtes tel que deux quelconques des arêtes de M sont non-adjacentes. x y
Un sommet x est saturé par un couplage M s’il existe une arête de M attaché (incident) à x (on écrira ) Si , on dira que x est insaturé par M. x y S(M) y - Un complage qui sature tous les sommets du graphe est appel un couplage parfait.
- Considérons un couplage M dans G(V,E); on appelle chaîne alternée une chaîne simple (c’est-à-dire l’utilisant pas deux fois la même arêtes) dont les arêtes sont alternativement dans M et dans E – M. x z
La bataille d’Angleterre en 1941. Exemple: La bataille d’Angleterre en 1941. Certains pilotes ne pouvaient pas faire équipe dans le même avion biplace en raison de différences de langues ou d’habitudes. Avec ces contraintes, quel est le nombre maximum d’avions que l’on peut utiliser simultanément? Il s’agit de rechercher le couplage maximum d’un graphe dont les sommets représentent les pilotes, deux sommets étant joints si les pilotes correspondants peuvent faire équipe. Pierre Li Roland
Problème de l’affectation du personnel. Exemples: Exemple: Problème de l’affectation du personnel. Dans une organisation utilisant p ouvriers x1,x2,…,xp et q postes de travail y1,y2,…,yq, chaque ouvrier est qualifié pour un ou plusieurs de ces postes. Est-il possible d’affecter chacun à un poste pour lequel il est qualifié? Si l’on désigne par N(xi) l’ensemble des postes pour lequel l’ouvrier xi se trouve qualifié, le problème revient à considérer un graphe bibartit (X∪Y, E) et à chercher si le couplage maximum sature tous les sommets de X Roland Poste 1 Poste 2 Pierre Poste 3 Li Yannis Poste 4
Problème des collégiens et des collégiennes. Exemples: Exemple: Problème des collégiens et des collégiennes. Dans un collège mixte, toute jeune fille a k boy-friends, et tout garçon a k girl-friends; Est-il possible de faire danser simultanément chaque jeune fille avec un de ses boy-friends, et chaque garçon avec une de ses girl-friends? La réponse est OUI pour k>0! Considérons un graphe bibartit (X∪Y, E) tel que chaque sommet a exactement k voisin. Chercher un couplage qui sature tous les sommets de X et tous les sommets de Y. Roland Marie Xiaohong Pierre Evelyne Li Yannis Sylvie
Molécule Carbone hydrogène A hexagonal is a connected plane graph without cut vertices, in which each interior face is a regular hexagon of side of length one. The carbon--atom skeleton of a benzenoid hydrocarbon is a hexagonal system. Molécule Carbone hydrogène C H
Etant donné un couplage M, existe il un cycle C tel que M⊆E(C). Problèmes: Couplage maximum Couplages disjoints; décomposer les arêtes d’un graphe aux couplages disjoints. Dans un graphe coloré, cherche un couplage maximum tel que deux arêtes du couplage ait des couleurs distinctes. Etant donné un couplage M, existe il un cycle C tel que M⊆E(C).
une chaîne alternée reliant daux sommets x et y insaturés. Théorème de Berge (1957). Un couplage M est maximum si et seulement si il n’existe pas de chaîne alternée reliant deux sommets insaturés distincts.
Preuve : (La part 1 de la preuve) S’ il existe une chaîne alternée reliant deux sommets insaturés distincts, en interchangeant les arêtes dans M et les arêtes dans E-M le long de cette chaîne, on obtient un nouveau couplage M1, avec |M1|=|M|+1; donc le couplage M n’est pas maximum. x y x y
(La part 2 de la preuve) Supposons que M a la propriété de l’énoncé et M1 est un couplage maximum quelconque. Définissons un graphe partiel G[F] induit par F avec F= (M1-M) U (M-M1) . Dans le graphe partiel G[F] , le degré de chaque sommet est soit 1, soit 2, car il est adjacent au plus à une arêtes de M et au plus à une arêtes de M1. Chaque composant connexe est soit un cycle soit un chemin.
Il n’existe pas une chaîne alternée de M reliant deux sommets insaturés distincts. (par la condition de la théorème) Il n’existe pas une chaîne alternée de M1 reliant deux sommets insaturés distincts. (par la part 1 de la preuve) Chaque chemin dans le sous-graphe induit G[F] contient le même nombre d’ arêtes dans M que dans M1. Chaque cycle dans le sous-graphe induit G[F] contient le même nombre d’arêtes dans M que dans M1. Alors, |M|=|M1|. M est aussi un couplage maximum!
Couplages dans les graphes bipartis Un graphe (dénoté par G(X∪Y, E)) est biparti si l’ensemble de ses sommets peut être partitionné en deux classes X et Y de sorte que deux sommets de la même classe ne soient jamais adjacents. Théorème de Hall (1935). Un graphe biparti G(X∪Y, E)) admet un couplage M qui sature tous les sommets de X si et seulement si pour tout S ⊆ X quelconque, |N(S)|≥ |S|.
Preuve. Supposons qu’il y a un couplage M qui sature tous les sommets de X et que S est un sous ensemble de X. N(S) S Car les sommets de S sont saturés par M aux sommets distincts dans N(S), alors on a |N(S)|≥ |S|.
Soit x un sommet de X , qui est insaturé par M. Soit G(X∪Y, E) un graphe biparti tel que pour tout S ⊆ X quelconque, |N(S)|≥ |S|. A l’inverse, supposons que G n’a pas un couplage qui sature tous les sommets de X. Soit M un couplage maximum de G. Par hypothèse, M ne sature pas tous les sommets de X. Soit x un sommet de X , qui est insaturé par M. Soit Z l’ensemble de tous les sommets qui est connecté à x par une chaîne alternée de M. Comme M est un couplage maximum, par le théorème de Berge, on a que x est le seul sommet insaturé dans Z.
Nous posons que S=Z∩X et T=Z∩Y. T=N(S)
Les sommets de S-{x} sont saturés par M. Pour tout x’ ∈ S-{x} et y’ ∈Y tels que x’y’ ∈ M, y’ est le sommet juste devant x’ dans une chaîne alternée à partir de x. Alors y’ ∈ T. Pour tout y’ ∈ T, y’ saturé. Il existe x’ dans X tel que x’y’ ∈ M. Alors x’ ∈ S-{x} et T ⊆ N(S) . Il implique que |T|=|S|-1. Parce que tout sommet de N(S) est connecté à x par une chaîne alternée, on obtient N(S)⊆T. Alors, N(S)=T. Donc |N(S)|=|T|=|S|-1 <|S|. C’est une contraduction!
Corollaire. Tout graphe biparti k-régulier avec k>0 possède un couplage parfait. Preuve. - G(X∪Y, E)) est k-régulier → k|X|=|E|=k|Y| → |X|=|Y|. - Pour tout S ⊆ X quelconque, dénoté par E’ l’ensemble des arêtes incidents aux sommets de S et dénoté par E” l’ensemble des arêtes incidents aux sommets de N(S). - Alors E’ ⊆ E” et k|N(S)|=|E”|≥|E’|=k|S|. On a |N(S)|≥ |S|. D’après le théorème de Hall (1935), G(X∪Y, E)) admet un couplage M qui sature tous les sommets de X. - Car |X|=|Y|, M est un couplage parfait.
The Hungarian method (Egerváry, 1931) Algorithmes pour la recherche du couplage qui sature tous les sommets de X . The Hungarian method (Egerváry, 1931) Etant donné un graphe biparti, commençons par un couplage quelconque M. 1. Si M sature tous les sommets de X, stop. Sinon, prendre un sommet u de X insaturé par M. Poser S={u} et T= 2. Si N(S)=T, alors |N(S)|<|S| car |T|=|S|-1. Par le Théorème de Hall, il n’y a pas un couplage qui sature tous les sommets de X. Stop. Si N(S)≠T, prendre un sommet y ∈N(S)-T. 3. Si y est saturé, soit yz ∈M. Remplacer S par S∪ {z} et T par T ∪{y}. Aller à l’étape 2. ( Après ce remplacement, on garde |T|=|S|-1 !) Sinon, soit P (u,y) une chaîne alternée connectant u et y. Remplacer M par M*=M △E(P)= (M-E(P) )∪(E(P)-M) et aller à l’etape 1.
2. Car N(S)={y1,y2,y4,y5}≠T, prendre un sommet y2 ∈N(S)-T. Exemple x1 x2 x3 x4 x5 y1 y2 y3 y4 y5 1. M0= qui ne sature pas tous les sommets de X. Prendre x2∈X insaturé. Poser S={x2} et T= . 2. Car N(S)={y1,y2,y4,y5}≠T, prendre un sommet y2 ∈N(S)-T. 3. y2 n’est pas saturé. P =x2y2 est une chaîne alternée connectant x2 et y2. Remplacer M0 par M1= (M0-E(P) )∪(E(P)-M0)={x2y2} et aller à l’etape 1.
2. Car N(S)={y2,y3}≠T, prendre un sommet y3 ∈N(S)-T. x1 x2 x3 x4 x5 y1 y2 y3 y4 y5 1. M1={x2y2} qui ne sature pas tous les sommets de X. Prendre x3∈X insaturé. Poser S={x3} et T= . 2. Car N(S)={y2,y3}≠T, prendre un sommet y3 ∈N(S)-T. 3. y3 n’est pas saturé. P =x3y3 est une chaîne alternée connectant x3 et y3. Remplacer M1 par M2= (M1-E(P) )∪(E(P)-M1)={x2y2,x3y3} et aller à l’étape 1.
2. Car N(S)={y4,y5}≠T, prendre un sommet y5 ∈N(S)-T. x1 x2 x3 x4 x5 y1 y2 y3 y4 y5 1. M2={x2y2,x3y3} qui ne sature pas tous les sommets de X. Prendre x5∈X insaturé. Poser S={x5} et T= 2. Car N(S)={y4,y5}≠T, prendre un sommet y5 ∈N(S)-T. 3. y5 n’est pas saturé. P =x5y5 est une chaîne alternée connectant x5 et y5. Remplacer M2 par M3= (M2-E(P) )∪(E(P)-M2)={x2y2,x3y3,x5y5} et aller à l’étape 1.
2. Car N(S)={y2,y3}≠T, prendre un sommet y2 ∈N(S)-T. x1 x2 x3 x4 x5 y1 y2 y3 y4 y5 1. M3={x2y2,x3y3,x5y5} qui ne sature pas tous les sommets de X. Prendre x1∈X insaturé. Poser S={x1} et T= 2. Car N(S)={y2,y3}≠T, prendre un sommet y2 ∈N(S)-T. 3. y2 est saturé et x2y2∈M3. Remplacer S par S∪ {x2}={x1,x2} et T par T ∪{y2}={y2}. Aller à l’étape 2. ( Après ce remplacement, on garde |T|=|S|-1 !) 2. N(S)={y1,y2,y3,y4,y5} ≠T= {y2}. On prend un sommet y3 ∈N(S)-T. 3. y3 est saturé et x3y3∈M3. Remplacer S par S∪ {x3}={x1,x2,x3} et T par T ∪{y3}={y2,y3}. Aller à l’étape 2. 2. N(S)={y1,y2,y3,y4,y5} ≠T= {y2,y3}. On prend un sommet y1∈N(S)-T. 3. y1 n’est pas saturé. P =x1y2x2y1 est une chaîne alternée connectant x1 et y1. Remplacer M3 par M4= (M3 -E(P) )∪(E(P)-M3)={x3y3,x5y5,x1y2,x2y1} et aller à l’étape 1.
2. Car N(S)={y2,y3}≠T, prendre un sommet y2 ∈N(S)-T. x1 x2 x3 x4 x5 y1 y2 y3 y4 y5 1. M4={x3y3,x5y5,x1y2,x2y1} ne sature pas tous les sommets de X. Prendre x4∈X insaturé. Poser S={x4} et T= 2. Car N(S)={y2,y3}≠T, prendre un sommet y2 ∈N(S)-T. 3. y2 est saturé. y2 est saturé et x1y2∈M4. Remplacer S par S∪ {x1}={x1,x4} et T par T ∪{y2}={y2}. Aller à l’étape 2. ( Après ce remplacement, on garde |T|=|S|-1 !) 2. N(S)={y2,y3} ≠T= {y2}. On prend un sommet y3 ∈N(S)-T. 3. y3 est saturé et x3y3∈M3. Remplacer S par S∪ {x3}={x1,x3,x4} et T par T ∪{y3}={y2,y3}. Aller à l’étape 2. 2. N(S)={y2,y3}=T. alors |N(S)|<|S| car |T|=|S|-1. Par le Théorème de Hall, il n’y a pas un couplage qui sature tous les sommets de X. Stop.
De l’algorithme Hongrois, on obtient un algorithme pour la recherche d’un couplage maximum dans les graphes bipartis. Théorème de Berge (1957). Un couplage M est maximum si et seulement si il n’existe pas une chaîne alternée reliant deux sommets insaturés distincts. Donc, M est un couplage maximum ssi l’il n’existe pas une chaîne alternée reliant un sommet quelconque insaturé de X et l’un l’autre sommets insaturé de Y.
D’algorithme Hongrois Commencer par un couplage quelconque M. 1. Si M sature tous les sommets de X, stop. Sinon, prendre un sommet u de X insaturé par M. Poser S={u} et T= 2. Si N(S)=T, alors |N(S)|<|S| car |T|=|S|-1. Par le Théorème de Hall, il n’y a pas un couplage qui sature tous les sommets de X. Stop. Si N(S)≠T, prendre un sommet y ∈N(S)-T. 3. Si y est saturé, soit yz ∈M. Remplacer S par S∪ {z} et T par T ∪{y}. Aller à l’étape 2. Sinon, soit P (u,y) une chaîne alternée connectant u et y. Remplacer M par M*=M △E(P)= (M-E(P) )∪(E(P)-M) et aller à l’étape 1. Commencer par un couplage quelconque M. 1 Poser S= et T= Si X-S est saturé, stop. Sinon, prendre un sommet u de X-S insaturé par M. Remplacer S par S∪ {u} . 3. Si N(S)=T, aller à l’étape 5. Si N(S)≠T, prendre un sommet y ∈N(S)-T. 4. Si y est saturé, soit yz ∈M. Remplacer S par S∪ {z} et T par T ∪{y}. Aller à l’étape 3. Sinon, soit P (u,y) une chaîne alternée connectant u et y. Remplacer M par M*=M △E(P)= (M-E(P) )∪(E(P)-M) et aller à l’étape 1. 5. Si X-S= , stop; Sinon aller à l’étape 2
Un bon algorithme pour la recherche du couplage maximum dans tout graphe a été donné par Edmonds en 1965.
Quelques résultats importants Couplage parfait: Condition nécessaire et suffisante Théorème de Tutte (1947). Un graphe admet un couplage parfait si et seulement si o(G-S) ≤|S| pour tout S ⊆V. Où o(G-S) est le nombre de composantes connexes de G-S d’ordre impair. 1917-2002
o(G-v)=3>|{v}| v
Couplage maximum et recouvrement minimum Definition. Etant donné un graphe G(V,E), on appelle recouvrement une famille F des sommets telle que toute arête e∈ E soit l’extrémité d’au moins un sommet de F. 1884-1944 Théorème de Konig (1931). Pour un graphe biparti G(X∪Y , E), le nombre maximum d’ arêtes d’ un couplage est égal à le nombre de sommets dans un recouvrement minimum.
La théorie du couplage est très riche, voir par exemple le livre de Lovász & Plummer. L. Lovász, M.D. Plummer, Matching Theory, Annals of Discrete Mathematics 29, North-Holland, 1986 (ISBN 0-444-87916-1) - et aussi Akadémia Kiadó, Budapest, 1986.
TD No 1 Couplage Exercice 1 Dans le graphe ci-contre : a) trouver deux couplages b) trouver un couplage parfait c) donner un couplage à 3 arêtes et une chaîne alternée relativement à ce couplage. Exercice 2 Montrer qu’un arbre a au plus un couplage parfait. Montrer qu’un arbre T a un couplage parfait ssi o(T-v)=1 pour tout sommet v Exercice 3 Deux personnes jouent le jeu suivant sur un graphe. Elles choisissent chacune leur tour des sommets v1,v2,v3,… de manière à ce que vi soit adjacent vi-1 pour i>0. Le dernier joueur capable de choisir un sommet convenable gagne. Montrer que le premier joueur a une stratégie gagnante si et seulement si le graphe n’a pas de couplage parfait. Exercice 4 Pour tout entier k>1, chercher un graphe k-régulier qui ne possède pas un couplage parfait.
Exercice 5* Soit G un graphe k-régulier (k-1)-arête-connexe. Alors G possède un couplage parfait. o(G-S) est le nombre de composantes connexes de G-S d’ordre impair.
Exercice 1 Dans le graphe ci-contre : a) trouver deux couplages b) trouver un couplage parfait b) donner un couplage à 3 arêtes et une chaîne alternée relativement à ce couplage.
Exercice 2 Montrer qu’un arbre a au plus un couplage parfait. Si un arbre T a deux couplages parfaits distincts M’ et M”, alors le degré de tout sommet dans (M’-M”) ∪(M”-M’) est soit 0 soit 2 -et au moins un sommet de degré 2. Il implique que (M’-M”) ∪(M”-M’) admet un cycle, une contraduction.
Montrer qu’un arbre T a un couplage parfait ssi o(T-v)=1 pour tout sommet v Supposons que T est un arbre avec un couplage parfait M. Pour un sommet v, T-v a une composante connexe T1 qui n’a pas un couplage parfait et toutes les autres composantes connexes ont des couplages parfaits. Donc |T1| est impair et tous les autres composants connexes ont des ordres pairs. On obtient o(T-v)=1. Par récurrence sur |T|=2n. Le résultat est vraie pour |T|=2. Supposons maintenant le résultat est vraie pour tout |T|≤2(k-1). Démontrons le pour p. Soit v un sommet avec d(v)=1 et u est le voisin de v. Soit T1,T2,...,Tp les composantes connexes de T-u avec T1={v}. Donc |Ti| est pair pour tout i>1. Pour tout sommet x dans Ti, o(Ti-x) ≠0. Si o(Ti-x) ≥2, o(T-x) ≥2. Donc on obtient o(Ti-x) =1 et par récurrence, Ti possède un couplage parfait Mi.. C’est évidemment que ∪i=2p Mi∪{uv} est un couplage parfait de T.
Exercice 3 Deux personnes jouent le jeu suivant sur un graphe. Elles choisissent chacune leur tour des sommets v1,v2,v3,… de manière à ce que vi soit adjacent vi-1 pour i>0. Le dernier joueur capable de choisir un sommet convenable gagne. Montrer que le premier joueur a une stratégie gagnante si et seulement si le graphe n’a pas de couplage parfait. Supposons que le graphe possède un couplage parfait M. Après que le premier joueur choisit un sommet v, le second joueur à son tour prend le sommet u avec uv ∈ M. Le second joueur est toujours gagnant! Donc le premier joueur a une stratégie gagnante seulement si le graphe n’a pas de couplage parfait. Supposons que un couplage maximum M n’est pas parfait dans le graphe. Soit u0 sommet insaturé par M. Le premier joueur prend u0 à son premier tour. Le deuxième joueur doit prendre un sommet v1 ∈N(u0). v1 est un sommet saturé par M car sinon u0v1 est une chaîne alternée reliant deux sommets insaturés distincts et c’est une contradiction par le théorème de Berge. Alors le premier joueur prend u1 avec v1u1∈ M. En suite, le deuxième joueur doit prendre un sommet v2 ∈N(u1 )-{v1}. V2 est saturé car sinon u0v1u1v2 est une chaîne alternée reliant deux sommets insaturés distincts. Alors le premier joueur prend u2 avec v2u2∈ M. … Le premier joueur gagne s’il choisit ui avec viui ∈ M après le deuxième joueur prend vi pour i>0.
Exercice 4 Pour tout entier k>1, chercher un graphe k-régulier qui ne possède pas un couplage parfait. Pour K pair, on prend le graphe complexé Kk+1. Il a un nombre impair de sommets et donc il n’a pas un couplage parfait. Pour k impair, Définir un graphe G comme suit: K=5 K copies