Cours de graphes

65
9 mars 2007 Cours de graphes 6 - Intranet 1 Cours de graphes Chemins d’Euler. Chemins de Hamilton. Couplages.

description

Cours de graphes. Chemins d’Euler. Chemins de Hamilton. Couplages. 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 - PowerPoint PPT Presentation

Transcript of Cours de graphes

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.