1 / 65

Cours de graphes

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

mattox
Download Presentation

Cours de graphes

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Cours de graphes • Chemins d’Euler. • Chemins de Hamilton. • Couplages. 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 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 ! ! ! 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 ? 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 ? 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 ! 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 ! 2 3 6 A et D sont les seuls sommets de degré impair ! 5 7 1 4 D A 8 Le point de départ est l’un de ceux-ci et le point d’arrivée l’autre. 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 ! ! ! 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 ! 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é ! . . . . . . w u v 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é ! 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 ) Cours de graphes 6 - Intranet

  13. Preuve du théorème d’Euler----------------------------------------------------------------- u et v sont au départ de degrés impairs ! u v La suppression de l’arête ( u , v ) les rend de degrés pairs ! Par hypothèse sur le nombre d’arêtes, et vu que tous les sommets sont de degrés pairs, il existe un cycle d’Euler avec v comme point de départ et d’arrivée ! 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 ) / Cours de graphes 6 - Intranet

  15. Preuve du théorème d’Euler----------------------------------------------------------------- u et v sont au départ de degrés impairs et w de degré pair ! u v w La 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 w sont les seuls sommets de degrés impairs, il existe un chemin d’Euler avec w comme départ et v comme arrivée ! 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 ) / 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 ) Pourquoi ? CC( u ) CC( w ) u w v On l’appelle un « isthme » ! 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 ) 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 ) ! ( Cas B ) CC( u ) CC( w ) u w Tous pairs ! Deux impairs ou tous pairs ! v On l’appelle un « isthme » ! 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 ) / 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 ! ! ! 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 ! 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 ). Cours de graphes 6 - Intranet

  24. Construction d’un chemin d’Euler----------------------------------------------------------------- U N E X E M P L E Cours de graphes 6 - Intranet

  25. Construction d’un chemin d’Euler----------------------------------------------------------------- • Exemple : Nous évitons l’isthme et nous continuons avec l’une des deux autres arêtes ! Isthme ! D Cours de graphes 6 - Intranet

  26. Construction d’un chemin d’Euler----------------------------------------------------------------- • Exemple : Isthme ! D A prendre l’isthme, nous perdons toute possibilité de visiter les sommets à droite ! Cours de graphes 6 - Intranet

  27. Construction d’un chemin d’Euler----------------------------------------------------------------- • Exemple : L’isthme est le seul choix possible ! Isthme ! D 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 ! ! ! 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 C’est le casse-tête inventé par Lord Hamilton en 1856. Cycle de Hamilton 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 Le greedy ne marche pas car il faut considérer tout le graphe pour construire la solution ! Cycle de Hamilton 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 graphe complet K ! Le graphe de Peterson ! 5 Ce graphe admet des chemins de Hamilton ! Il est sans chemin de Hamilton ! 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 ! ! ! 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 ? A a Le graphe bi-parti complet K ! 4,4 B b Nous cherchons un cycle de Hamilton ! On peut former une deuxième ronde ! C c D d 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 ! ! ! 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 ? ? ? 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 ). 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 ! Cours de graphes 6 - Intranet

  38. Couplages-----------------------------------------------------------------Couplages----------------------------------------------------------------- C O U P L A G E S ! ! ! Cours de graphes 6 - Intranet

  39. Couplages-----------------------------------------------------------------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 ! Souvent, on souhaite maximiser le nombre de couples ! Un couplage est parfait s’il sature tous les sommets du graphe ! Un couplage Les arêtes retenues et les sommets atteints sont dits saturés par le couplage. Cours de graphes 6 - Intranet

  40. Couplages-----------------------------------------------------------------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 ! Souvent, on souhaite maximiser le nombre de couples ! Un couplage est parfait s’il sature tous les sommets du graphe ! Un couplage parfait ! Les arêtes retenues et les sommets atteints sont dits saturés par le couplage. Un couplage maximal, non parfait ! Cours de graphes 6 - Intranet

  41. Deux exemples----------------------------------------------------------------- D E U X E X E M P L E S 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 ? Nous cherchons un couplage maximal ! Nous aimerions qu'il soit parfait ! Cours de graphes 6 - Intranet

  43. Deux exemples----------------------------------------------------------------- • 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. Cours de graphes 6 - Intranet

  44. Deux exemples----------------------------------------------------------------- Lycées Elèves Y a-t-il un couplage qui sature les élèves ? OUI ! ! ! 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 ! Cours de graphes 6 - Intranet

  46. Deux exemples----------------------------------------------------------------- Lycées Elèves 3 1 Trivaux ! 1 2 1 1 2 Cours de graphes 6 - Intranet

  47. Deux exemples----------------------------------------------------------------- Lycées Elèves 3 1 Y a-t-il un c-couplage qui sature les élèves ? 1 2 1 1 2 Cours de graphes 6 - Intranet

  48. Couplages-----------------------------------------------------------------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 ? ? ? Cours de graphes 6 - Intranet

  49. Couplages-----------------------------------------------------------------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êtessaturées et non-saturées. • Un chemin améliorant est un chemin alterné qui se termine en un sommet non saturé ! Saturé : Chemin alterné ! Non-saturé : Chemin améliorant ! Cours de graphes 6 - Intranet

  50. Couplages-----------------------------------------------------------------Couplages----------------------------------------------------------------- Le chemin améliorant ! • 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. Cours de graphes 6 - Intranet

More Related