La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler 18h de cours 24h de TD … et un examen Alexandra.

Présentations similaires


Présentation au sujet: "13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler 18h de cours 24h de TD … et un examen Alexandra."— Transcription de la présentation:

1 13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler 18h de cours 24h de TD … et un examen Alexandra Bac - Marc Gengler Azeddine Zidouni

2 13 février 2008Cours de graphes 1 - Intranet2 Définitions de base Définitions de base Connexité Connexité Les plus courts chemins Les plus courts chemins Floyd-Warshall, Dijkstra et Bellmann-Ford Floyd-Warshall, Dijkstra et Bellmann-Ford Arbres Arbres Arbres de recouvrement minimaux Arbres de recouvrement minimaux Problèmes de flots, Ford & Fulkerson Problèmes de flots, Ford & Fulkerson Coloriage de graphes Coloriage de graphes Couplage Couplage Chemins dEuler et de Hamilton Chemins dEuler et de Hamilton Problèmes NP-complets Problèmes NP-complets Les grandes lignes du cours

3 13 février 2008Cours de graphes 1 - Intranet3 Bibliographie Tout ce qui contient Tout ce qui contient graphes, graphs. graphes, graphs. Internet Internet souvent, cest très simplifié ou très dense, souvent, cest très simplifié ou très dense, et pas toujours correct. et pas toujours correct. Mes choix Mes choix Introduction to Algorithms, Leiserson et al. Introduction to Algorithms, Leiserson et al. Algorithms, Sedgewick. Algorithms, Sedgewick. Fundamental Algorithms, Knuth. Fundamental Algorithms, Knuth. Graphes, Berge. Graphes, Berge. Wikipedia. Wikipedia.

4 13 février 2008Cours de graphes 1 - Intranet4 L E S D E F I N I T I O N S D E B A S E

5 13 février 2008Cours de graphes 1 - Intranet5 Il y a des sommets ! (vertex, vertices) Il y a des sommets ! (vertex, vertices) Il y a des arêtes ( bi-directionelles ) ! (edge) Il y a des arêtes ( bi-directionelles ) ! (edge) Il y a des arcs ( mono-directionnels ) ! (arc) Il y a des arcs ( mono-directionnels ) ! (arc) Définitions de base

6 13 février 2008Cours de graphes 1 - Intranet6 Formellement : Formellement : Il y a lensemble V des sommets. Il y a lensemble V des sommets. Il y en a | V |. Il y en a | V |. La complexité est fonction du nombre de sommets. La complexité est fonction du nombre de sommets. Il y a lensemble E des arcs et arêtes. Il y a lensemble E des arcs et arêtes. Cest une partie du produit cartésien V x V. Cest une partie du produit cartésien V x V. Définitions de base ( a, b ) e E signifie que larc du sommet a vers le sommet b existe.

7 13 février 2008Cours de graphes 1 - Intranet7 Formellement : Formellement : Il y a lensemble V des sommets. Il y a lensemble V des sommets. Il y en a | V |. Il y en a | V |. La complexité est fonction du nombre de sommets. La complexité est fonction du nombre de sommets. Il y a lensemble E des arcs et arêtes. Il y a lensemble E des arcs et arêtes. Cest une partie du produit cartésien V x V. Cest une partie du produit cartésien V x V. E peut être réflexif, irréflexif ou ni lun, ni lautre. E peut être réflexif, irréflexif ou ni lun, ni lautre. E peut être symétrique, anti-symétrique ou ni - ni. E peut être symétrique, anti-symétrique ou ni - ni. Définitions de base Graphe non orienté ! Graphe orienté !

8 13 février 2008Cours de graphes 1 - Intranet8 Formellement : Formellement : Il y a lensemble V des sommets. Il y a lensemble V des sommets. Il y en a | V |. Il y en a | V |. La complexité est fonction du nombre de sommets. La complexité est fonction du nombre de sommets. Il y a lensemble E des arcs et arêtes. Il y a lensemble E des arcs et arêtes. Cest une partie du produit cartésien V x V. Cest une partie du produit cartésien V x V. E peut être réflexif, irréflexif ou ni lun, ni lautre. E peut être réflexif, irréflexif ou ni lun, ni lautre. E peut être symétrique, anti-symétrique ou ni - ni. E peut être symétrique, anti-symétrique ou ni - ni. E peut être transitif, ou non-transitif. E peut être transitif, ou non-transitif. Définitions de base

9 13 février 2008Cours de graphes 1 - Intranet9 Un graphe G est défini comme Un graphe G est défini comme G = ( V, E ) G = ( V, E ) où V est un ensemble de sommets et E un ensemble darcs entre ces sommets. où V est un ensemble de sommets et E un ensemble darcs 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 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 lon attache des poids aux arcs ou arêtes (entiers par exemple). Il y a des graphes pondérés qui correspondent au fait lon attache des poids aux arcs ou arêtes (entiers par exemple) Définitions de base

10 13 février 2008Cours de graphes 1 - Intranet10 Sous-graphe G dun graphe G : Sous-graphe G dun graphe G : Le graphe G = ( V, E ) est un sous-graphe Le graphe G = ( V, E ) est un sous-graphe du graphe G = ( V, E ), si : du graphe G = ( V, E ), si : V VV V E E V x VE E V x V U U v Définitions de base Les sommets de G sont parmi ceux de G. Les arcs et arêtes de G sont parmi ceux et celles de G et se limitent aux sommets de G.

11 13 février 2008Cours de graphes 1 - Intranet11 Définitions de base

12 13 février 2008Cours de graphes 1 - Intranet12 R E P R E S E N T A T I O N D E S G R A P H E S

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

14 13 février 2008Cours de graphes 1 - Intranet Lexistence ou non de larc ( 2, 5 ) ! ! ! DEPUIS VERS Représentation des graphes

15 13 février 2008Cours de graphes 1 - Intranet V F F F F F V V V V V V V V FF FFF FF FF FFFF FF FF FF FF F Il faut ( | V | + | E | ) * log( | V | ) bits ! Parfois, le graphe est peu dense ! Nous mémorisons juste les indices des colonnes différentes de Faux ! Un tableau de listes ! Représentation des graphes

16 13 février 2008Cours de graphes 1 - Intranet V F F F F F Les voisins dun sommet « u » : Les voisins sortants : V+ ( u ) Les voisins entrants : V - ( u ) V V V V V V V+ ( u ) = { v V | ( u, v ) E } V - ( u ) = { v V | ( v, u ) E } V V FF FFF FF FF FFFF FF FF FF FF F Si le graphe est symétrique : V ( u ) = V+ ( u ) = V - ( u ) V - ( 3 ) = { 4, 5, 6 } V+ ( 4 ) = { 1, 2, 3 } Représentation des graphes

17 13 février 2008Cours de graphes 1 - Intranet V F F F F F Le degré dun sommet « u » : Le degré sortant : D+ ( u ) Le degré entrant : D - ( u ) V V V V V V D+ ( u ) = | V+ ( u ) | D - ( u ) = | V - ( u ) | V V FF FFF FF FF FFFF FF FF FF FF F Si le graphe est symétrique : D ( u ) = D+ ( u ) = D - ( u ) Le degré dun graphe G = ( V, E ) : D( G ) = max { D ( u ) } u V Représentation des graphes

18 13 février 2008Cours de graphes 1 - Intranet18 L E S C H E M I N S

19 13 février 2008Cours de graphes 1 - Intranet19 Les chemins : Les chemins : Un chemin de longueur n, de u vers v est : Un chemin de longueur n, de u vers v est : telle que telle que u = w et v = w u = w et v = w ( w, w ) est une arête ou un arc, pour tout i. ( w, w ) est une arête ou un arc, pour tout i. Le chemin est orienté sil comporte des arcs, non orienté sil est fait darêtes uniquement. Le chemin est orienté sil comporte des arcs, non orienté sil est fait darêtes uniquement. Le chemin ( u ; u ), de u à lui-même, existe toujours ! Le chemin ( u ; u ), de u à lui-même, existe toujours ! 1 n+1 ii+1 1 Les chemins ( w,..., w ) n+1

20 13 février 2008Cours de graphes 1 - Intranet20 Notations et propriétés sur les chemins : Notations et propriétés sur les chemins : Nous noterons ( cest non standard ) : Nous noterons ( cest non standard ) : ( u, v ) larête ou larc, i.e. le chemin de longueur 1. ( u, v ) larête ou larc, i.e. le chemin de longueur 1. ( u ; v ) le chemin de longueur quelconque. ( 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. Pour tout chemin non orienté ( u ; v ) du graphe G, nous pouvons construire le chemin ( v ; u ) dans G. Les chemins

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

22 13 février 2008Cours de graphes 1 - Intranet22 Notations et propriétés sur les chemins : Notations et propriétés sur les chemins : Nous noterons ( cest non standard ) : Nous noterons ( cest non standard ) : ( u, v ) larête ou larc, i.e. le chemin de longueur 1. ( u, v ) larête ou larc, i.e. le chemin de longueur 1. ( u ; v ) le chemin de longueur quelconque. ( 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. Pour tout chemin non orienté ( u ; v ) du graphe G, nous pouvons construire le chemin ( v ; u ) dans G. Dans un graphe G, lexistence du chemin orienté ( u ; v ) nimplique pas lexistence dun chemin de retour ( v ; u ). Dans un graphe G, lexistence du chemin orienté ( u ; v ) nimplique pas lexistence dun chemin de retour ( v ; u ). Les chemins u v

23 13 février 2008Cours de graphes 1 - Intranet23 Cycles et circuits : Cycles et circuits : Un cycle est un chemin non orienté ( u ; v ) pour lequel u coïncide avec v. 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. Un circuit est un chemin orienté ( w ; t ) pour lequel w coïncide avec t. u = v Les chemins w = t

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

25 13 février 2008Cours de graphes 1 - Intranet25 L E M M E D E K Ö N I G

26 13 février 2008Cours de graphes 1 - Intranet26 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. 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 ) u v w t Lemme de König

27 13 février 2008Cours de graphes 1 - Intranet27 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. 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 ) u v w t Lemme de König

28 13 février 2008Cours de graphes 1 - Intranet28 Tout cycle ou circuit est Tout cycle ou circuit est soit, un cycle ou circuit élémentaire, cest-à-dire devient un chemin simple si lon en enlève une arête ou un arc, soit, un cycle ou circuit élémentaire, cest-à-dire devient un chemin simple si lon en enlève une arête ou un arc, soit, une réunion de cycles et/ou circuits élémentaires. soit, une réunion de cycles et/ou circuits élémentaires. Lemme de König Cycle élémentaire : Réunion de cycles élémentaires :

29 13 février 2008Cours de graphes 1 - Intranet29 L E S C O M P O S A N T E S C O N N E X E S

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

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

32 13 février 2008Cours de graphes 1 - Intranet V V V V V V VFF FFF FF FF FFFF FF FF FF FF F F F Nous partons dune relation symétrique ! Nous fermons réflexivement ! La fermeture réflexive dune relation R est la plus petite relation réflexive qui contienne R. V V V V V Les composantes connexes

33 13 février 2008Cours de graphes 1 - Intranet V V V V V V VF FFF FF FF FFFF FF FF FF FF F F Nous partons dune relation symétrique ! V V V V V Les composantes connexes La fermeture transitive dune relation R est la plus petite relation transitive qui contienne R. Nous fermons transitivement ! V V Nous fermons réflexivement !

34 13 février 2008Cours de graphes 1 - Intranet V V V V V V VF FFF FF F F FFFF FF FF FF FF F F Nous partons dune relation symétrique ! Nous fermons réflexivement ! V V V V V Nous fermons transitivement ! V V Si nous renumérotons ! Les composantes connexes

35 13 février 2008Cours de graphes 1 - Intranet35 Un principe de décomposition : Un principe de décomposition : Souvent, le traitement appliqué à un graphe non connexe Souvent, le traitement appliqué à un graphe non connexe consiste à appliquer ce même traitement indépendamment consiste à appliquer ce même traitement indépendamment sur chacune des composantes connexes ! sur chacune des composantes connexes ! Les composantes connexes

36 13 février 2008Cours de graphes 1 - Intranet36 P O U R U N G R A P H E O R I E N T E...

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

38 13 février 2008Cours de graphes 1 - Intranet38 Les composantes connexes Composante fortement connexe ! Pour un graphe orienté : Pour un graphe orienté : Un graphe orienté est quasi-fortement connexe sil existe un sommet depuis lequel nous pouvons atteindre tous les autres sommets. Un tel sommet sera appelé racine. Un graphe orienté est quasi-fortement connexe sil existe un sommet depuis lequel nous pouvons atteindre tous les autres sommets. Un tel sommet sera appelé racine.

39 13 février 2008Cours de graphes 1 - Intranet39 D I S T A N C E S, D I A M E T R E,...

40 13 février 2008Cours de graphes 1 - Intranet40 Distances et diamètre : Distances et diamètre : La distance d ( u, v ) entre un sommet u et un sommet v est : 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, la longueur du plus court chemin (forcément simple) de u vers v, si celui-ci existe, infini, sinon. infini, sinon. Le diamètre dun graphe connexe est la distance entre ses sommets les plus éloignés : Le diamètre dun graphe connexe est la distance entre ses sommets les plus éloignés : ( G ) = max { d ( u, v ) } ( G ) = max { d ( u, v ) } u, v V Distances, diamètre,

41 13 février 2008Cours de graphes 1 - Intranet41 Ecarts, centre et diamètre : Ecarts, centre et diamètre : Lécart e ( u ) dun sommet u dun graphe connexe est : Lécart e ( u ) dun sommet u dun graphe connexe est : la distance vers le sommet v le plus loin de u : la distance vers le sommet v le plus loin de u : e ( u ) = max { d ( u, v ) } e ( u ) = max { d ( u, v ) } Un sommet u est au centre de G si Un sommet u est au centre de G si e ( u ) = min { e ( v ) } e ( u ) = min { e ( v ) } ( G ) = max { e ( v ) } ( G ) = max { e ( v ) } v V Distances, diamètre,

42 13 février 2008Cours de graphes 1 - Intranet42 Lemme des plus courts chemins : Lemme des plus courts chemins : Si le plus court chemin de u vers v passe par w, 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 alors sa partie préfixe de u vers w est aussi le plus court chemin de u vers w. court chemin de u vers w. u vw Le plus court chemin de u à v ! Le plus court chemin de u à w ! Distances, diamètre, Le raisonnement est par labsurde : Sil y avait plus court pour aller de u à w, il y aurait aussi plus court pour aller de u à v !

43 13 février 2008Cours de graphes 1 - Intranet43 Poids dun chemin : Poids dun chemin : Dans un graphe pondéré, le poids dun chemin est la somme des poids de ses arcs et arêtes. Dans un graphe pondéré, le poids dun 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. 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 darcs et arêtes). Le chemin le plus léger (poids) ne coïncide pas forcément avec le chemin le plus court (nombre darcs et arêtes). Le plus court chemin correspond au chemin le plus léger avec des poids qui valent tous unité. 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 linégalité triangulaire ! Les poids ne vérifient pas forcément linégalité triangulaire ! Distances, diamètre,

44 13 février 2008Cours de graphes 1 - Intranet44 N O S P R E M I E R S A L G O R I T H M E S

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

46 13 février 2008Cours de graphes 1 - Intranet46 Nous utilisons trois algorithmes : Nous utilisons trois algorithmes : un algorithme par vague, cest un parcours en largeur, un algorithme par vague, cest un parcours en largeur, un algorithme par multiplication de matrices, un algorithme par multiplication de matrices, lalgorithme de programmation dynamique Floyd-Warshall. lalgorithme de programmation dynamique Floyd-Warshall. Pour chacun dentre eux, il sagit de savoir Pour chacun dentre eux, il sagit de savoir sil arrive à résoudre le problème en question sil arrive à résoudre le problème en question et quelle est la complexité du calcul ? et quelle est la complexité du calcul ? Connexité & plus courts chemins

47 13 février 2008Cours de graphes 1 - Intranet47 L A V A G U E

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

49 13 février 2008Cours de graphes 1 - Intranet49 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall Connexité & plus courts chemins ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 )

50 13 février 2008Cours de graphes 1 - Intranet50 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

51 13 février 2008Cours de graphes 1 - Intranet51 La multiplication de matrices : La multiplication de matrices : Nous prenons une matrice avec des 0 et des 1, Nous prenons une matrice avec des 0 et des 1, nous la fermons réflexivement (des 1 sur la diagonale), nous la fermons réflexivement (des 1 sur la diagonale), nous effectuons le calcul suivant : nous effectuons le calcul suivant : M * M ( i, j ) = max M ( i, k ) * M ( k, j ) M * M ( i, j ) = max M ( i, k ) * M ( k, j ) Nous calculons : M - > M^2 - > M^4 - >... Nous calculons : M - > M^2 - > M^4 - >... Propriété : M^( 2 * i ) = M^i * M^i comporte tous les chemins de longueur au plus 2 * i. Propriété : M^( 2 * i ) = M^i * M^i comporte tous les chemins de longueur au plus 2 * i. Il suffit de calculer M^k avec k >= | V | - 1 = n - 1 (le plus long chemin possible et donc tous les chemins) ! Il suffit de calculer M^k avec k >= | V | - 1 = n - 1 (le plus long chemin possible et donc tous les chemins) ! Il suffit de O ( log( | V | ) ) élévations au carré ! Il suffit de O ( log( | V | ) ) élévations au carré ! k Connexité & plus courts chemins

52 13 février 2008Cours de graphes 1 - Intranet52 Preuve de la propriété : Preuve de la propriété : La matrice M fermée réflexivement contient tous les chemins de longueur 0 ou 1. La matrice M fermée réflexivement contient tous les chemins de longueur 0 ou 1. Hypothèse dinduction : M^i contient tous les chemins de longueur au plus i. Hypothèse dinduction : M^i contient tous les chemins de longueur au plus i. M^( 2 * i ) ( u, v ) = 1 M^( 2 * i ) ( u, v ) = 1 max_k M^i ( u, k ) * M^i ( k, v ) = 1 max_k M^i ( u, k ) * M^i ( k, v ) = 1 w tel que M^i ( u, w ) * M^i ( w, v ) = 1 w tel que M^i ( u, w ) * M^i ( w, v ) = 1 M^i ( u, w ) = 1 et M^i ( w, v ) = 1 M^i ( u, w ) = 1 et M^i ( w, v ) = 1 des chemins ( u ; w ) et ( w ; v ), de longueur au plus i. des chemins ( u ; w ) et ( w ; v ), de longueur au plus i. un chemin ( u ; v ) de longueur au plus 2 * i. un chemin ( u ; v ) de longueur au plus 2 * i. En effet, il suffit de prendre le chemin ( u ; w ; v ). En effet, il suffit de prendre le chemin ( u ; w ; v ). Connexité & plus courts chemins

53 13 février 2008Cours de graphes 1 - Intranet53 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall Connexité & plus courts chemins ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) )

54 13 février 2008Cours de graphes 1 - Intranet54 L A L G O R I T H M E D E F L O Y D - W A R S H A L L

55 13 février 2008Cours de graphes 1 - Intranet55 La multiplication recalcule de façon répétée les chemins courts. Si M^i ( u, v ) = 1, alors La multiplication recalcule de façon répétée les chemins courts. Si M^i ( u, v ) = 1, alors M^( 2 * i ) ( u, v ) = max_k M^i ( u, k ) * M^i ( k, v ) M^( 2 * i ) ( u, v ) = max_k M^i ( u, k ) * M^i ( k, v ) = M^i ( u, u ) * M^i ( u, v ) = M^i ( u, u ) * M^i ( u, v ) = M^i ( u, v ) = 1 = M^i ( u, v ) = 1 Floyd-Warshall numérote les sommets de 1 à n et : Floyd-Warshall numérote les sommets de 1 à n et : à létape (1), ne calcule que les chemins dont les intermédiaires sont dans lensemble { 1 }, à létape (1), ne calcule que les chemins dont les intermédiaires sont dans lensemble { 1 }, à létape (2), ne calcule que les chemins dont les intermédiaires sont dans lensemble { 1, 2 }, en ajoutant les chemins qui passent par le sommet 2, à létape (2), ne calcule que les chemins dont les intermédiaires sont dans lensemble { 1, 2 }, en ajoutant les chemins qui passent par le sommet 2, Connexité & plus courts chemins

56 13 février 2008Cours de graphes 1 - Intranet56 L A L G O R I T H M E

57 13 février 2008Cours de graphes 1 - Intranet57 M est donnée, elle comporte tous les chemins avec des intermédiaires parmi { 1,..., k - 1 }. M est donnée, elle comporte tous les chemins avec des intermédiaires parmi { 1,..., k - 1 }. M ( u, v ) est un chemin de u vers v avec des intermédiaires parmi { 1,..., k }. M ( u, v ) est un chemin de u vers v avec des intermédiaires parmi { 1,..., k }. Soit le sommet k figure dans ce chemin, soit il ne le fait pas. Soit le sommet k figure dans ce chemin, soit il ne le fait pas. ( k-1 ) (k) / k (k - 1) } Connexité & plus courts chemins / k } Une opération de maximisation ! M ( u, v ) = M ( u, v ) (k) (k - 1) u k v M ( u, k )

58 13 février 2008Cours de graphes 1 - Intranet58 M est la matrice dadjacence, fermée réflexivement. Elle comporte des 0 et des 1. M est la matrice dadjacence, fermée réflexivement. Elle comporte des 0 et des 1. M ( u, v ) = max (, M ( u, v ) = max (, ) (0) M ( u, k ) * M ( k, v ) (k - 1) M ( u, v ) (k - 1) (k) Connexité & plus courts chemins Le chemin de u vers v existe déjà au niveau k-1 ! Le chemin de u vers v est nouveau et passe par le sommet k ! On ne recalcule rien !

59 13 février 2008Cours de graphes 1 - Intranet59 Connexité & plus courts chemins Pour k de 1 a | V | Pour u de 1 a | V | Pour u de 1 a | V | Pour v de 1 a | V | Pour v de 1 a | V | M_k ( u, v ) <-... M_k ( u, v ) <-... Complexité : ( | V |^3 ) M est la matrice dadjacence, fermée réflexivement. Elle comporte des 0 et des 1. M est la matrice dadjacence, fermée réflexivement. Elle comporte des 0 et des 1. M ( u, v ) = max (, M ( u, v ) = max (, ) M est la matrice recherchée, ou n est | V | ! M est la matrice recherchée, ou n est | V | ! (0) (n) M ( u, k ) * M ( k, v ) (k - 1) M ( u, v ) (k - 1) (k)

60 13 février 2008Cours de graphes 1 - Intranet60 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall Connexité & plus courts chemins ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 )


Télécharger ppt "13 février 2008 Cours de graphes 1 - Intranet 1 Cours de Graphes Marc Gengler 18h de cours 24h de TD … et un examen Alexandra."

Présentations similaires


Annonces Google