1 / 60

Cours de Graphes

Cours de Graphes. Alexandra Bac - Marc Gengler Azeddine Zidouni. Marc Gengler Marc.Gengler@esil.univmed.fr. 18h de cours 24h de TD … et un examen. Les grandes lignes du cours. Définitions de base Connexité Les plus courts chemins Floyd-Warshall, Dijkstra et Bellmann-Ford Arbres

maine
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 Alexandra Bac - Marc Gengler Azeddine Zidouni Marc Gengler Marc.Gengler@esil.univmed.fr 18h de cours 24h de TD … et un examen Cours de graphes 1 - Intranet

  2. Les grandes lignes du cours • Définitions de base • Connexité • Les plus courts chemins • Floyd-Warshall, Dijkstra et Bellmann-Ford • Arbres • Arbres de recouvrement minimaux • Problèmes de flots, Ford & Fulkerson • Coloriage de graphes • Couplage • Chemins d’Euler et de Hamilton • Problèmes NP-complets Cours de graphes 1 - Intranet

  3. Bibliographie • Tout ce qui contient • graphes, graphs. • Internet • souvent, c’est très simplifié ou très dense, • et pas toujours correct. • Mes choix • Introduction to Algorithms, Leiserson et al. • Algorithms, Sedgewick. • Fundamental Algorithms, Knuth. • Graphes, Berge. • Wikipedia. Cours de graphes 1 - Intranet

  4. L E S D E F I N I T I O N S D E B A S E Cours de graphes 1 - Intranet

  5. Définitions de base----------------------------------------------------------------- • Il y a des sommets ! (vertex, vertices) • Il y a des arêtes ( bi-directionelles ) ! (edge) • Il y a des arcs ( mono-directionnels ) ! (arc) Cours de graphes 1 - Intranet

  6. Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble V des sommets. • Il y en a | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble E des arcs et arêtes. • C’est une partie du produit cartésien V x V . ( a , b ) e E signifie que l’arc du sommet a vers le sommet b existe. Cours de graphes 1 - Intranet

  7. Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble V des sommets. • Il y en a | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble E des arcs et arêtes. • C’est une partie du produit cartésien V x V . • E peut être réflexif , irréflexif ou ni l’un, ni l’autre. • E peut être symétrique , anti-symétrique ou ni - ni. Graphe non orienté ! Graphe orienté ! Cours de graphes 1 - Intranet

  8. Définitions de base----------------------------------------------------------------- • Formellement : • Il y a l’ensemble V des sommets. • Il y en a | V | . • La complexité est fonction du nombre de sommets. • Il y a l’ensemble E des arcs et arêtes. • C’est une partie du produit cartésien V x V . • E peut être réflexif , irréflexif ou ni l’un, ni l’autre. • E peut êtresymétrique , anti-symétrique ou ni - ni. • E peut être transitif , ou non-transitif . Cours de graphes 1 - Intranet

  9. Définitions de base----------------------------------------------------------------- • Un graphe G est défini comme • G = ( V , E ) • où  V est un ensemble de sommets et  E  un ensemble d’arcs entre ces sommets. • Il y a des multi-graphes qui sont correspondent au cas où E est un multi-ensemble (plusieurs arêtes et/ou arcs entre deux sommets). • Il y a des graphes pondérés qui correspondent au fait l’on attache des poids aux arcs ou arêtes (entiers par exemple). 12 25 15 Cours de graphes 1 - Intranet

  10. Définitions de base----------------------------------------------------------------- • Sous-graphe G’ d’un graphe G : • Le graphe G’ = ( V’ , E’ ) est un sous-graphe du graphe G = ( V , E ) , si : • V’ V • E’ E V’ x V’ U Les sommets de G’ sont parmi ceux de G . U v • Les arcs et arêtes de G’ sont • parmi ceux et celles de G et • se limitent aux sommets de G’ . Cours de graphes 1 - Intranet

  11. Définitions de base----------------------------------------------------------------- Cours de graphes 1 - Intranet

  12. R E P R E S E N T A T I O N D E S G R A P H E S Cours de graphes 1 - Intranet

  13. Représentation des graphes----------------------------------------------------------------- • Représentation des données : • Nous indexons (numérotons) les sommets. • Nous représentons les arcs et les arêtes. • Nous obtenons une matrice M de taille n x n qui comporte des valeurs binaires. • M ( a , b ) est vrai si et seulement si l’arc ( a , b ) existe ! Cours de graphes 1 - Intranet

  14. Représentation des graphes----------------------------------------------------------------- VERS 1 2 3 4 5 6 1 L’existence ou non de l’arc ( 2 , 5 ) ! ! ! 2 3 4 5 4 6 1 DEPUIS 6 2 3 5 Cours de graphes 1 - Intranet

  15. 1 2 3 4 5 6 Représentation des graphes----------------------------------------------------------------- 1 2 3 4 5 6 4 Un tableau de listes ! F F F V F F 4 F F F V F F F F F F V F 5 V V V F F F 1 2 3 F F V F F F 3 F F V F F V 3 6 Parfois, le graphe est peu dense ! Nous mémorisons juste les indices des colonnes différentes de Faux ! Il faut ( | V | + | E | ) * log( | V | ) bits ! Cours de graphes 1 - Intranet

  16. 1 2 3 4 5 6 Représentation des graphes----------------------------------------------------------------- 1 2 3 4 5 6 Les voisins d’un sommet « u » : Les voisins sortants : V+ ( u ) Les voisins entrants : V- ( u ) F F F V F F F F F V F F F F F F V F V V V F F F V+ ( 4 ) = { 1 , 2 , 3 } F F V F F F F F V F F V V- ( 3 ) = { 4 , 5 , 6 } V+ ( u ) = { v e V | ( u , v ) e E } V- ( u ) = { v e V | ( v , u ) e E } Si le graphe est symétrique : V ( u ) = V+ ( u ) = V- ( u ) Cours de graphes 1 - Intranet

  17. 1 2 3 4 5 6 Représentation des graphes----------------------------------------------------------------- 1 2 3 4 5 6 Le degré d’un sommet « u » : Le degré sortant : D+ ( u ) Le degré entrant : D- ( u ) F F F V F F F F F V F F F F F F V F V V V F F F F F V F F F Le degré d’un graphe G = ( V , E ) : D( G ) = max { D ( u ) } F F V F F V u e V Si le graphe est symétrique : D ( u ) = D+ ( u ) = D- ( u ) D+ ( u ) = | V+ ( u ) | D- ( u ) = | V- ( u ) | Cours de graphes 1 - Intranet

  18. L E S C H E M I N S Cours de graphes 1 - Intranet

  19. Les chemins----------------------------------------------------------------- • Les chemins : • Un chemin de longueur n , de u vers v est : • telle que • u = w et v = w • ( w , w ) est une arête ou un arc, pour tout i . • Le chemin est orienté s’il comporte des arcs, non orienté s’il est fait d’arêtes uniquement. • Le chemin ( u ; u ) , de u à lui-même, existe toujours ! ( w , . . . , w ) n+1 1 n+1 1 i i+1 Cours de graphes 1 - Intranet

  20. Les chemins----------------------------------------------------------------- • Notations et propriétés sur les chemins : • Nous noterons ( c’est non standard ) : • ( u , v ) l’arête ou l’arc, i.e. le chemin de longueur 1 . • ( u ; v ) le chemin de longueur quelconque. • Pour tout chemin non orienté ( u ; v ) du graphe G , nous pouvons construire le chemin ( v ; u ) dans G . Cours de graphes 1 - Intranet

  21. Les chemins----------------------------------------------------------------- • Preuve ( induction sur la longueur du chemin ) : • Si u et v sont voisins, • le chemin ( u ; v ) est en fait l’arête ( u , v ) • et le chemin ( v ; u ) sera l’arête ( v , u ) . • Si u et v ne sont pas voisins, • le chemin ( u ; v ) est une arête ( u , t ) suivie de ( t ; v ) • par induction sur la longueur, le chemin ( v ; t ) existe, • ( v ; u ) est la concaténation de ( v ; t ) et l’arête ( t , u ) . Cours de graphes 1 - Intranet

  22. Les chemins----------------------------------------------------------------- • Notations et propriétés sur les chemins : • Nous noterons ( c’est non standard ) : • ( u , v ) l’arête ou l’arc, i.e. le chemin de longueur 1 . • ( u ; v ) le chemin de longueur quelconque. • Pour tout chemin non orienté ( u ; v ) du graphe G , nous pouvons construire le chemin ( v ; u ) dans G . • Dans un graphe G , l’existence du chemin orienté ( u ; v ) n’implique pas l’existence d’un chemin de retour ( v ; u ) . u v Cours de graphes 1 - Intranet

  23. Les chemins----------------------------------------------------------------- • Cycles et circuits : • Un cycle est un chemin non orienté ( u ; v ) pour lequel u coïncide avec v . • Un circuit est un chemin orienté ( w ; t ) pour lequel w coïncide avec t . u = v w = t Cours de graphes 1 - Intranet

  24. Les chemins----------------------------------------------------------------- • Chemins simples : • Un chemin ( u ; v ) , avec u différent de v , est simple si et seulement si aucun sommet n’est répété dans la séquence : ( u , . . . , v ) Chemin simple ( u ; v ) u w v Chemin non simple ( w ; t ) Cours de graphes 1 - Intranet t

  25. L E M M E D E K Ö N I G Cours de graphes 1 - Intranet

  26. Lemme de König----------------------------------------------------------------- • Lemme de König : • De tout chemin non simple ( u ; v ) , nous pouvons extraire un chemin de u vers v qui est simple et plus court que le chemin initial. ( u , . . . , w , . . . , w , t , . . . , v ) t u w v Cours de graphes 1 - Intranet

  27. Lemme de König----------------------------------------------------------------- • Lemme de König : • De tout chemin non simple ( u ; v ) , nous pouvons extraire un chemin de u vers v qui est simple et plus court que le chemin initial. ( u , . . . ,w , . . . , w , t , . . . , v ) t u w v Cours de graphes 1 - Intranet

  28. Lemme de König----------------------------------------------------------------- • Tout cycle ou circuit est • soit, un cycle ou circuit élémentaire, c’est-à-dire devient un chemin simple si l’on en enlève une arête ou un arc, • soit, une réunion de cycles et/ou circuits élémentaires. Réunion de cycles élémentaires : Cycle élémentaire : Cours de graphes 1 - Intranet

  29. L E S C O M P O S A N T E S C O N N E X E S Cours de graphes 1 - Intranet

  30. 1 2 3 4 5 6 Les composantes connexes----------------------------------------------------------------- 1 2 3 4 5 6 La composante connexe de u : La composante sortante : C+ ( u ) La composante entrante : C- ( u ) F F F V F F F F F V F F F F F F V F V V V F F F C+ ( 4 ) = { 1 , 2 , 3 , 4 , 5 } F F V F F F C- ( 4 ) = { 1 , 2 , 4 } 4 F F V F F V 1 C+ ( u ) = { v e V | ( u ; v ) existe } C- ( u ) = { v e V | ( v ; u ) existe } 6 2 Si G est symétrique : C ( u ) = C+ ( u ) = C- ( u ) 3 5 Cours de graphes 1 - Intranet

  31. Les composantes connexes----------------------------------------------------------------- • Pour un graphe non orienté : • La composante connexe de u est : • réflexive, vous pouvez rester où vous êtes ! • symétrique, les chemins de retour existent ! • transitive, vous pouvez concaténer des chemins ! • Une composante connexe est une classe d’équivalence ! • Un graphe non orienté est partitionné en ses classes d’équivalence ! Cours de graphes 1 - Intranet

  32. 1 2 3 4 5 6 Les composantes connexes----------------------------------------------------------------- 1 Nous partons d’une relation symétrique ! 2 3 4 5 6 V F F V F F Nous fermons réflexivement ! F V F V F F F F V F V F V V F V F F F F V F V F 4 F F F F F V 1 6 La fermeture réflexive d’une relation R est la plus petite relation réflexive qui contienne R . 2 3 5 Cours de graphes 1 - Intranet

  33. 1 2 3 4 5 6 Les composantes connexes----------------------------------------------------------------- 1 Nous partons d’une relation symétrique ! 2 3 4 5 6 V V F V F F Nous fermons réflexivement ! V V F V F F F F V F V F Nous fermons transitivement ! V V F V F F F F V F V F 4 F F F F F V 1 6 La fermeture transitive d’une relation R est la plus petite relation transitive qui contienne R . 2 3 5 Cours de graphes 1 - Intranet

  34. 1 2 3 4 5 6 Les composantes connexes----------------------------------------------------------------- 1 Nous partons d’une relation symétrique ! 2 3 4 5 6 V V V F F F Nous fermons réflexivement ! V V V F F F V V V F F F Nous fermons transitivement ! F F F V V F F F F V V F 3 F F F F F V 1 6 Si nous renumérotons ! 2 4 5 Cours de graphes 1 - Intranet

  35. Les composantes connexes----------------------------------------------------------------- • Un principe de décomposition : • Souvent, le traitement appliqué à un graphe non connexe consiste à appliquer ce même traitement indépendamment sur chacune des composantes connexes ! Dans ce cas, on ne perd rien en supposant G connexe ! Cours de graphes 1 - Intranet

  36. P O U R U N G R A P H E O R I E N T E . . . Cours de graphes 1 - Intranet

  37. Les composantes connexes----------------------------------------------------------------- • Pour un graphe orienté : • Un sous-ensemble X des sommets d’un graphe orienté est fortement connexe si nous pouvons aller de n’importe quel sommet vers n’importe quel autre sommet. • Proposition : • Une composante est fortement connexe si et seulement si chaque sommet se trouve sur un circuit. • Preuve : • => : Si ( u ; v ) existe, alors ( v ; u ) existe et ( u ; v ; u ) . • <= : Soit ( u ; v ) de la forme ( u ; w ; v ). Pour w bien choisi, le circuit ( w ; v ; w ) existe ! Nous recommençons le raisonnement pour ( u ; w ). u w v Cours de graphes 1 - Intranet

  38. Les composantes connexes----------------------------------------------------------------- • Pour un graphe orienté : • Un graphe orienté est quasi-fortement connexe s’il existe un sommet depuis lequel nous pouvons atteindre tous les autres sommets. Un tel sommet sera appelé racine. Composante fortement connexe ! Cours de graphes 1 - Intranet

  39. D I S T A N C E S , D I A M E T R E , . . . Cours de graphes 1 - Intranet

  40. Distances, diamètre, . . .----------------------------------------------------------------- • Distances et diamètre : • La distance d ( u , v )  entre un sommet u et un sommet v est : • la longueur du plus court chemin (forcément simple) de u vers v , si celui-ci existe, • infini, sinon. • Le diamètre d’un graphe connexe est la distance entre ses sommets les plus éloignés : D ( G ) = max { d ( u , v ) } u , v e V Cours de graphes 1 - Intranet

  41. Distances, diamètre, . . .----------------------------------------------------------------- • Ecarts, centre et diamètre : • L’écart e ( u ) d’un sommet u d’un graphe connexe est : • la distance vers le sommet v le plus loin de u : e ( u ) =max { d ( u , v ) } • Un sommet u est au centre de G si e ( u ) =min { e ( v ) } • D ( G ) = max { e ( v ) } v e V v e V v e V Cours de graphes 1 - Intranet

  42. Distances, diamètre, . . .----------------------------------------------------------------- • Lemme des plus courts chemins : • Si le plus court chemin de u vers v passe par w , alors sa partie préfixe de u vers w est aussi le plus court chemin de u vers w . Le plus court chemin de u à v ! u w v Le plus court chemin de u à w ! Le raisonnement est par l’absurde : S’il y avait plus court pour aller de u à w , il y aurait aussi plus court pour aller de u à v ! Cours de graphes 1 - Intranet

  43. Distances, diamètre, . . .----------------------------------------------------------------- Parfois, on parle du plus court chemin et on pense au chemin le plus léger ! • Poids d’un chemin : • Dans un graphe pondéré, le poids d’un chemin est la somme des poids de ses arcs et arêtes. • Nous pouvons alors, de manière évidente, définir le chemin le plus léger de u vers v . • Le chemin le plus léger (poids) ne coïncide pas forcément avec le chemin le plus court (nombre d’arcs et arêtes). • Le plus court chemin correspond au chemin le plus léger avec des poids qui valent tous unité. • Les poids ne vérifient pas forcément l’inégalité triangulaire ! 25 12 10 Cours de graphes 1 - Intranet

  44. N O S P R E M I E R S A L G O R I T H M E S Cours de graphes 1 - Intranet

  45. Connexité & plus courts chemins----------------------------------------------------------------- • Sur un graphe non orienté, nous allons calculer : • les composantes connexes ! • Sur une composante connexe, nous allons calculer : • les plus courts chemins ! • Nous rajoutons une pondération strictement positive et nous allons calculer : • les chemins les plus légers ! Cours de graphes 1 - Intranet

  46. Connexité & plus courts chemins----------------------------------------------------------------- • Nous utilisons trois algorithmes : • un algorithme par vague, c’est un parcours en largeur, • un algorithme par multiplication de matrices, • l’algorithme de programmation dynamique Floyd-Warshall. • Pour chacun d’entre eux, il s’agit de savoir • s’il arrive à résoudre le problème en question • et quelle est la complexité du calcul ? Cours de graphes 1 - Intranet

  47. L A V A G U E Cours de graphes 1 - Intranet

  48. Connexité & plus courts chemins----------------------------------------------------------------- • L’algorithme par vague : • Nous choisissons un sommet sec et le mouillons, • nous mouillons ses voisins, • nous mouillons les voisins des voisins , . . . • Attention, dans un graphe il peut y avoir des cycles ! ! ! • Il faut éviter de tourner en rond ! • Ici, nous ne faisons rien pour un sommet déjà mouillé ! • A l’issu de ce calcul • nous avons déterminé une composante connexe • et nous recommençons sur l’éventuel reste du graphe ! • Complexité : Q ( | E | ) = O( | V |^2 ) • Chaque arête est visitée une et une seule fois ! Cours de graphes 1 - Intranet

  49. Connexité & plus courts chemins----------------------------------------------------------------- La vague Multiplication Floyd-Warshall Q ( | E | ) = O ( | V |^2 ) Connexité Plus courts Plus légers Cours de graphes 1 - Intranet

  50. L A M U L T I P L I C A T I O N D E M A T R I C E S Cours de graphes 1 - Intranet

More Related