Download - Cours de graphes

Transcript
Page 1: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 1

Cours de graphesChemins d’Euler.

Chemins de Hamilton.

Couplages.

Page 2: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 2

Les grandes lignes du cours• Définitions de base• Connexité• Les plus courts chemins• Dijkstra et Bellmann-Ford• Arbres• Arbres de recouvrement minimaux • Problèmes de flots• Coloriage de graphes, graphes

planaires• Couplage• Chemins d’Euler et de Hamilton• Problèmes NP-complets

Page 3: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 3

Chemins d’Euler-----------------------------------------------------------------

C H E M I N S

E T

C Y C L E S

D’ E U L E R ! ! !

Page 4: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 4

Chemins d’Euler-----------------------------------------------------------------

• L’origine historique :– La Pregel et les ponts à Königsberg ( Kaliningrad ) !

– Pouvons-nous trouver un chemin qui traverse chaque pont une et une seule fois ?

– Si oui, les points de départ et d’arrivée coïncident-ils ?

Page 5: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 5

Chemins d’Euler-----------------------------------------------------------------

• En termes de graphes :– Nous avons un multi-graphe !

– Pouvons-nous trouver un chemin qui passe une et une seule fois par chaque arête ? ( couverture des arêtes )

– Si oui, le chemin est-il un cycle ?

Page 6: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 6

Chemins d’Euler-----------------------------------------------------------------

• Nous pouvons passer d’un multi-graphe à un graphe simple :– Il suffit de matérialiser un pont par un sommet !

– Nous conservons le même problème en termes de couverture des arêtes !

Page 7: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 7

Chemins d’Euler-----------------------------------------------------------------

• La « maison de Nicolas » :– Pouvons-nous dessiner la figure suivante d’un seule trait

et sans lever le crayon ?

– La réponse est OUI !

1

2 3

45

6

7

8D A

A et D sont lesseuls sommets

de degré impair !

Le point de départest l’un de ceux-ci et

le point d’arrivée l’autre.

Page 8: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 8

Chemins d’Euler-----------------------------------------------------------------

L E T H E O R E M E

D’ E U L E R

S U R L E S

C H E M I N S ! ! !

Page 9: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 9

Chemins d’Euler-----------------------------------------------------------------

• Le théorème d’Euler (1736) :

– Un multi-graphe possède un chemin d’Euler si et seulement si tous ses sommets, sauf peut-être deux, sont de degré pair !

– Les sommets de degré impair, s’ils existent, sont les points de départ et d’arrivée !

– Si tous les sommets sont de degré pair, et seulement dans ce cas, le chemin d’Euler est un cycle d’Euler !

• Remarque :

– Nous conservons le même résultat si nous transformons un multi-graphe en un graphe simple, car les sommets auxiliaires ( les ponts ) sont de degré 2 !

Page 10: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 10

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons l’existence d’un chemin ou d’un cycle d’Euler et déduisons-en les propriétés sur les degrés !

– Soit le chemin d’Euler suivant :

– Si « u » est différent de « v », le sommet « u » intervient avec un degré impair dans le chemin !

– Si « u » est différent de « v », le sommet « v » intervient avec un degré impair dans le chemin !

– Si « u » et « v » sont identiques, c’est-à-dire en présence d’un cycle, le sommet « u » intervient avec un degré pair !

– Tout autre sommet « w » intervient avec un degré pair dans le chemin d’Euler !

– Le chemin ou cycle d’Euler contient toutes les arêtes du graphe, d’où le résultat annoncé !

u v. . . . . .w

Page 11: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 11

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler !

• Si tous les sommets du graphe G sont de degré pair :

– En enlevant une arête ( u , v ) nous obtenons un graphe G’ dont exactement deux arêtes sont de degré impair !

– Par application de la seconde partie du théorème ( celle qui est à venir ), nous déduisons que G’ admet un chemin d’Euler qui commence en « u » et se termine en « v » !

– En insérant à nouveau l’arête ( u , v ) nous obtenons le cycle d’Euler annoncé !

Page 12: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 12

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler !

• Si « u » et « v » sont les seuls sommets de degré impair :– Nous choisissons une arête ( u , w ) et nous la

supprimons pour obtenir un graphe G’ !– Admettons d’abord que G’ est connexe !– Si v  = w , tous les sommets de G’ sont pairs et il existe

un cycle d’Euler ( v ; v ) ! Et donc un chemin d’Euler ( u , v ;

v ) !

( Cas A )

Page 13: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 13

Preuve du théorème d’Euler-----------------------------------------------------------------

u v

u et v sont au départde degrés impairs !

La suppression del’arête ( u , v ) les

rend de degrés pairs !

Par hypothèse sur le nombre d’arêtes, et vu que tousles sommets sont de degrés pairs, il existe un cycle

d’Euler avec v comme point de départ et d’arrivée !

Page 14: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 14

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler !

• Si « u » et « v » sont les seuls sommets de degré impair :– Nous choisissons une arête ( u , w ) et nous la

supprimons pour obtenir un graphe G’ !– Admettons d’abord que G’ est connexe !– Si v  = w , tous les sommets de G’ sont pairs et il existe

un cycle d’Euler ( v ; v ) ! Et donc un chemin d’Euler ( u , v ;

v ) ! – Si v  = w , v et w sont les seuls sommets dans G’ de

degré impair ! Il existe donc dans G’ un chemin d’Euler ( w ;

v ) ! Et du coup un chemin d’Euler ( u , w ; v ) dans G !

/

( Cas A )

Page 15: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 15

Preuve du théorème d’Euler-----------------------------------------------------------------

u v

u et v sont au départde degrés impairs

et w de degré pair !

wLa suppression de l’arête ( u , w )donne à u de degré pair et à v et w des degrés impairs !

Par hypothèse sur le nombre d’arêtes, et vu que v et wsont les seuls sommets de degrés impairs, il existe un

chemin d’Euler avec w comme départ et v comme arrivée !

Page 16: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 16

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler !

• Si « u » et « v » sont les seuls sommets de degré impair :– Nous choisissons une arête ( u , w ) et nous la

supprimons pour obtenir un graphe G’ !– Admettons d’abord que G’ est connexe !– Si v  = w , tous les sommets de G’ sont pairs et il existe

un cycle d’Euler ( v ; v ) ! Et donc un chemin d’Euler ( u , v ;

v ) ! – Si v  = w , v et w sont les seuls sommets dans G’ de

degré impair ! Il existe donc dans G’ un chemin d’Euler ( w ;

v ) ! Et du coup un chemin d’Euler ( u , w ; v ) dans G !

/

( Cas A )

Page 17: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 17

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler !

• Si « u » et « v » sont les seuls sommets de degré impair :– Nous choisissons une arête ( u , w ) et nous la

supprimons pour obtenir un graphe G’ !– Admettons maintenant que G’ n’est plus connexe !– Nous avons les composantes connexes CC( u ) et CC( w )

!

( Cas B )

CC( u ) CC( w )u w

On l’appelleun « isthme » !

v

Page 18: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 18

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler !

• Si « u » et « v » sont les seuls sommets de degré impair :– Nous choisissons une arête ( u , w ) et nous la

supprimons pour obtenir un graphe G’ !– Admettons maintenant que G’ n’est plus connexe !– Nous avons les composantes connexes CC( u ) et CC( w )

!

– Lemme : La somme des degrés des sommets d’un graphe (connexe) est paire ! Donc, le nombre de sommets de degrés impairs est paire ! ! !

( Cas B )

Page 19: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 19

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler !

• Si « u » et « v » sont les seuls sommets de degré impair :– Nous choisissons une arête ( u , w ) et nous la

supprimons pour obtenir un graphe G’ !– Admettons maintenant que G’ n’est plus connexe !– Nous avons les composantes connexes CC( u ) et CC( w )

!CC( u ) CC( w )

u wOn l’appelle

un « isthme » !

( Cas B )

vTouspairs !

Deuximpairs

ou tous pairs !

Page 20: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 20

Preuve du théorème d’Euler-----------------------------------------------------------------

• Admettons les conditions de parité sur les degrés et déduisons-en l’existence d’un chemin ou cycle d’Euler !

• Si « u » et « v » sont les seuls sommets de degré impair :– Nous choisissons une arête ( u , w ) et nous la

supprimons pour obtenir un graphe G’ !– Admettons maintenant que G’ n’est plus connexe !– Nous avons les composantes connexes CC( u ) et CC( w )

!– Les sommets de CC( u ) sont pairs, d’où le circuit d’Euler (

u ; u ).– CC( w ) possède 0 ( v = w ) ou 2 ( v = w ) sommets de

degrés impairs et il existe un chemin d’Euler ( w ; v ) !– On a donc le chemin d’Euler ( u ; u , w ; v ) , comme

annoncé !

/

( Cas B )

Page 21: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 21

Construction d’un chemin d’Euler-----------------------------------------------------------------

L A C O N S T R U C T I O N

D ‘ U N

C H E M I N

D’ E U L E R ! ! !

Page 22: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 22

Construction d’un chemin d’Euler-----------------------------------------------------------------

• Supposons données les conditions de parité sur les degrés !

• Si tous les sommets sont de degré pair, nous enlevons une arête ( u , v ) et nous construisons le chemin d’Euler ( u ; v ) !

• Nous considérons un sommet courant « s » à partir duquel nous continuons le chemin ! Au début, nous choisissons pour « s » un des deux sommets impairs du graphe !

• Si « s » est identique à « v » et qu’il est isolé, nous avons fini !

• Si « s » n’a que le seul voisin « u », nous empruntons l’arête en question avant de la supprimer ! Nous continuons en « u ».

• Si « s » a plusieurs voisins, dont l’isthme ( s , u ) , nous empruntons n’importe quelle arête, sauf l’isthme !

Remarque : l’isthme est unique ( pourquoi ? ) !• Sinon, nous choisissons une arête ( s , u )

quelconque !

Page 23: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 23

Construction d’un chemin d’Euler-----------------------------------------------------------------

• Complexité :• A chaque étape, nous choisissons une des O( | E | )

arêtes !• A chaque étape, nous sélectionnons une arête et

testons, à moins que l’arête ne soit unique, si elle est un isthme en lançant une « vague » qui est de complexité O( | E | ) !

• Si elle n’est pas un isthme, l’arête est parcourue !• Sinon, nous parcourons une quelconque autre arête !• Globalement, nous obtenons une complexité en O( | E

|^2 ) = O( | V |^4 ).

Page 24: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 24

Construction d’un chemin d’Euler-----------------------------------------------------------------

U N

E X E M P L E

Page 25: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 25

Construction d’un chemin d’Euler-----------------------------------------------------------------

• Exemple :

D

Isthme ! Nous évitonsl’isthme et nouscontinuons avec

l’une des deuxautres arêtes !

Page 26: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 26

Construction d’un chemin d’Euler-----------------------------------------------------------------

• Exemple :

D

Isthme !

A prendre l’isthme,nous perdons toute

possibilité de visiterles sommets à droite !

Page 27: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 27

Construction d’un chemin d’Euler-----------------------------------------------------------------

• Exemple :

D

Isthme ! L’isthme estle seul choix

possible !

Page 28: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 28

Chemins et cycles de Hamilton-----------------------------------------------------------------

C H E M I N S

E T

C Y C L E S

D E H A M I L T O N ! ! !

Page 29: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 29

Chemins et cycles de Hamilton-----------------------------------------------------------------

• Pouvons-nous trouver un chemin qui passe une et une seule fois dans chaque sommet ?

• Si oui, les points de départ et d’arrivée sont-ils voisins ?

Dodéca-èdre

Cycle deHamilton

C’est le casse-têteinventé par Lord

Hamilton en 1856.

Page 30: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 30

Chemins et cycles de Hamilton-----------------------------------------------------------------

• Pouvons-nous trouver un chemin qui passe une et une seule fois dans chaque sommet ?

• Si oui, les points de départ et d’arrivée sont-ils voisins ?

Dodéca-èdre

Cycle deHamilton

Le greedy nemarche pas car

il faut considérertout le graphe

pour construirela solution !

Page 31: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 31

Chemins et cycles de Hamilton-----------------------------------------------------------------

• Pouvons-nous trouver un chemin qui passe une et une seule fois dans chaque sommet ?

• Si oui, les points de départ et d’arrivée sont-ils voisins ?

Le graphecompletK !

5

Ce graphe admet deschemins de Hamilton !

Le graphe dePeterson !

Il est sans chemin de Hamilton !

Page 32: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 32

Chemins et cycles de Hamilton-----------------------------------------------------------------

U N E

A P P L I C A T I O N ! ! !

Page 33: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 33

Chemins et cycles de Hamilton-----------------------------------------------------------------

• Nous avons 4 jeunes filles A, B, C, D et 4 jeunes gens a, b, c, d .

• Ils dansent des rondes formées de files et garçons en alternance.

• Combien de rondes peuvent-ils danser si chaque jeune fille ne danse qu’une seule fois à côté du même jeune homme ?

Le graphe bi-particomplet K !4,4

Nous cherchonsun cycle deHamilton !

On peut former unedeuxième ronde !

A

B

C

D

a

b

c

d

Page 34: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 34

Chemins et cycles de Hamilton-----------------------------------------------------------------

Q U E L Q U E S

A F F I R M A T I O N S ! ! !

Page 35: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 35

Chemins et cycles de Hamilton-----------------------------------------------------------------

• Savoir si un graphe admet un chemin ou un cycle de Hamilton est NP-complet en général !

• Il s’agit de savoir s’il existe un chemin simple qui couvre les sommets ! Or, le nombre de chemins simples est en général exponentiel par rapport au nombre de sommets !

• Le chemin de Hamilton comporte | V | - 1 arêtes sur les | E | arêtes qu’il y a dans le graphe !

• Lesquelles faut-il prendre, lesquelles faut-il laisser ? ? ?

Page 36: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 36

Chemins et cycles de Hamilton-----------------------------------------------------------------

• Il y a des cas particuliers :

– Un graphe bi-parti avec un nombre impair de sommets n’est jamais hamiltonien !

– Un graphe avec n sommets ayant un degré d’au moins n/2 pour chaque sommet est hamiltonien ( Dirac ).

– Un graphe avec n sommets tel que pour toute paire de sommets u et v qui ne sont pas voisins on ait la propriété D( u ) + D( v ) >= n est hamiltonien ( Ore ).

Page 37: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 37

Chemins et cycles de Hamilton-----------------------------------------------------------------

• Une problématique particulière :

– Le problème du voyageur de commerce consiste à considérer un graphe pondéré complet et à trouver le cycle de Hamilton le moins cher parmi un nombre exponentiel de cycles de Hamilton !

– Si le graphe est incomplet, la simple question de savoir s’il existe un cycle de Hamilton est NP-complète ( sans vouloir trouver le meilleur de ces cycles ) !

– Soit c’est difficile d’en trouver un seul cycle, soit c’est difficile à cause du trop grand nombre de cycles !

Page 38: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 38

Couplages-----------------------------------------------------------------

C O U P L A G E S ! ! !

Page 39: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 39

Couplages-----------------------------------------------------------------

• Un couplage d’un graphe G = ( V , E ) consiste à trouver un sous-ensemble C des arêtes tel que chaque sommet fasse partie d’au plus un couple !

Un couplage

Les arêtes retenues et lessommets atteints sontdits saturés par le couplage.

Souvent, on souhaitemaximiser le nombre

de couples !

Un couplage est parfaits’il sature tous les

sommets du graphe !

Page 40: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 40

Les arêtes retenues et lessommets atteints sontdits saturés par le couplage.

Couplages-----------------------------------------------------------------

• Un couplage d’un graphe G = ( V , E ) consiste à trouver un sous-ensemble C des arêtes tel que chaque sommet fasse partie d’au plus un couple !

Un couplageparfait !

Souvent, on souhaitemaximiser le nombre

de couples !

Un couplage est parfaits’il sature tous les

sommets du graphe !

Un couplagemaximal,non parfait !

Page 41: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 41

Deux exemples-----------------------------------------------------------------

D E U X

E X E M P L E S

Page 42: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 42

Deux exemples-----------------------------------------------------------------

• Exemple :– Une promotion d’élèves qui doivent réaliser leur

projet d’algorithmique en binômes,– des affinités, qui sont toujours réciproques, entre

certains élèves.

– Quel est le maximum de binômes que nous pouvons former en respectant les affinités ? Y a-t-il une solution qui permette à tout élève de trouver un binôme ?

Page 43: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 43

• Exemple :– des lycées représentés par autant de sommets

qu’il y a de places,– des élèves qui ont émis des choix ( arêtes entre

des élèves et des places dans les lycées ).

– Y a-t-il un couplage qui sature les sommets-élèves ?

– Un problème plus général : Nous pouvons pondérer les arêtes par des

préférences et choisir le couplage qui maximise la somme des satisfactions.

Deux exemples-----------------------------------------------------------------

Page 44: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 44

LycéesElèves

Y a-t-il uncouplage

qui satureles élèves ?

OUI ! ! !

Deux exemples-----------------------------------------------------------------

Page 45: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 45

Deux exemples-----------------------------------------------------------------

• Les c-couplages :– Un lycée offrant p places est représenté par p

sommets non reliés entre eux.

– Nous pourrions fusionner ces sommets en un unique sommet qui peut faire partie d’au plus p couples.

– Un c-couplage associe à chaque sommet u un nombre maximum de couples dans lequel ce sommet peut apparaître.

– Ce nombre doit être inférieur au degré du sommet pour que le problème soit intéressant !

Page 46: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 46

LycéesElèves

Deux exemples-----------------------------------------------------------------

3

2

2

1

1

1

1

Trivaux !

Page 47: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 47

LycéesElèves

Y a-t-il unc-couplagequi sature

les élèves ?

Deux exemples-----------------------------------------------------------------

3

2

2

1

1

1

1

Page 48: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 48

Couplages-----------------------------------------------------------------

C O M M E N T

T R O U V E R L E S

1 - C O U P L A G E S

M A X I M A U X ? ? ?

Page 49: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 49

Couplages-----------------------------------------------------------------

• Maximisation des 1-couplages !• Un chemin alterné est un chemin simple qui

– commence en un sommet non saturé et– qui comporte une alternance d’arêtes saturées et non-

saturées.

• Un chemin améliorant est un chemin alterné qui se termine en un sommet non saturé !

Saturé :

Non-saturé :Chemin alterné !

Chemin améliorant !

Page 50: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 50

Couplages-----------------------------------------------------------------

• Nous avons toujours :– Les extrémités d’un chemin améliorant sont non-saturées !– Les sommets intermédiaires sont saturés !– Il y a une arête non-saturée de plus que d’arêtes saturées !

• Nous améliorons le couplage en– saturant les arêtes du chemin améliorant qui ne l’étaient

pas– et en dé-saturant celles qui l’étaient.

Le chemin améliorant !

Page 51: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 51

Couplages-----------------------------------------------------------------

• Nous avons toujours :– Les extrémités d’un chemin améliorant sont non-saturées !– Les sommets intermédiaires sont saturés !– Il y a une arête non-saturée de plus que d’arêtes saturées !

• Nous améliorons le couplage en– saturant les arêtes du chemin améliorant qui ne l’étaient

pas– et en dé-saturant celles qui l’étaient.

• Complexité en O( | V |^2 * | E | ) , car :– Nous avons au plus O( | V | ) itérations !– A chaque itération, nous balayons au plus les O( | V | )

sommets non saturés à la recherche d’un chemin améliorant !

– La recherche d’un chemin améliorant est en O( | E | ) !

Le nouveau couplage !

Page 52: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 52

C O R R E C T I O N

D E

L ‘ A L G O R I T H M E

Correction du couplage-----------------------------------------------------------------

Page 53: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 53

Correction du couplage-----------------------------------------------------------------

• Théorème ( Berge, 1957 ) :

– Un couplage C est maximal si et seulement s’il ne comporte pas de chemin améliorant.

• Preuve :– Il est trivial que, s’il y a encore des chemins

améliorants, alors le couplage C ne peut pas être maximal !

– Il est moins évident de voir que, en l’absence de chemins améliorants, le couplage C soit maximal sur tous les couplages !

– Nous pourrions avoir un maximum local ! ! !

Page 54: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 54

Correction du couplage-----------------------------------------------------------------

• Un lemme :

– Soit un graphe G avec deux couplages C et C’ qui sont donnés par leurs arêtes !

– Considérons l’ensemble d’arêtes ( C \ C’ ) v ( C’ \ C ).

– C’est l’ensemble des arêtes qui sont soit dans C , soit dans C’.

– Nous ignorons les arêtes de G qui ne sont dans les deux couplages ou dans aucun des deux !

Page 55: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 55

Correction du couplage-----------------------------------------------------------------

Le couplage C !

Le couplage C’ !

Nous enlevonsces arêtes !

Page 56: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 56

D’aprèsle lemmeil nous reste :- soit des sommets isolés,- soit des cycles de longueur paire qui alternent les arêtes,- soit des chemins qui alternent les arêtes et dont chaque extrémité est non saturée pour l’un des couplages.

Correction du couplage-----------------------------------------------------------------

Le couplage C !

Le couplage C’ !

Nous enlevonsces arêtes !

Page 57: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 57

Correction du couplage-----------------------------------------------------------------

• En effet, pour chaque sommet u du graphe G :– Soit, u n’est pas touché par un couplage et

deviendra un sommet isolé !– Soit, u est touché par un seul couplage et

deviendra un sommet de degré 1 !– Soit, u est touché par les deux couplages; alors :

• Si c’est par le biais de la même arête, u sera isolé !

• Si c’est par le biais de deux arêtes différentes, u sera de degré 2 avec une arête dans chaque couplage !

– Comme les degrés sont limités à 2 et qu’il y a alternance entre les couplages, on ne peut avoir que les solutions annoncées !

Page 58: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 58

Correction du couplage-----------------------------------------------------------------

• Preuve du théorème !– Soit C un couplage qui n’accepte plus de chemin

améliorant. Montrons que C est maximal ! – Soit, C’ un couplage maximal. Construisons le

graphe comme énoncé dans le lemme !– Nous pouvons obtenir :

• soit, des points isolés,• soit, des cycles avec autant d’arêtes dans C

que dans C’,• soit des chemins avec une extrémité dans

chaque couplage – et donc le même nombre d’arêtes dans chaque couplage.

– Clairement, | C | = | C’ | !

Page 59: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 59

Correction du couplage-----------------------------------------------------------------

• Il est impossible d’avoir un chemin de la forme :

• En effet, si les arêtes vertes appartenaient au couplage maximal C’ , celui-ci ne serait pas maximal car C aurait plus d’arêtes !

• Si les arêtes vertes appartenaient au couplage C , celui-ci accepterait un chemin améliorant sous la forme des arêtes rouges !

. . .

Page 60: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 60

C O U P L A G E S

A V E C

P O I D S

Couplages pondérés-----------------------------------------------------------------

Page 61: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 61

Couplages pondérés-----------------------------------------------------------------

• Chaque arête porte un poids non négatif et nous essayons de maximiser la somme « S » des satisfactions !

5

48

7

3

2

9

Un couplage de poids 13.

Page 62: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 62

Couplages pondérés-----------------------------------------------------------------

• Chaque arête porte un poids non négatif et nous essayons de maximiser la somme « S » des satisfactions !

5

48

7

3

2

9

Le couplage parfait aun poids de 9.

Page 63: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 63

Couplages pondérés-----------------------------------------------------------------

• Chaque arête porte un poids non négatif et nous essayons de maximiser la somme « S » des satisfactions !

5

48

7

3

2

9

Le couplage maximal aun poids de 14.

Page 64: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 64

1

Couplages pondérés-----------------------------------------------------------------

• Chaque arête porte un poids non négatif et nous essayons de maximiser la somme « S » des satisfactions !

• Le couplage maximal n’est pas nécessairement optimal :

• Les couplages qui saturent les mêmes sommets ne donnent pas tous la même satisfaction :

1 13Le couplage

maximal estde poids 2 !

1 13 Il existe un couplage

non maximal quiest de poids 3 !

13

11

31

31

3

Page 65: Cours de graphes

9 mars 2007 Cours de graphes 6 - Intranet 65

Synthèse-----------------------------------------------------------------

• Chemins d’Euler.

• Chemins de Hamilton.

• Couplages.