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

21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la.

Présentations similaires


Présentation au sujet: "21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la."— Transcription de la présentation:

1 21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la multiplication, à laide de Floyd-Warshall. Algorithmes de Dijkstra et Bellmann-Ford.

2 21 février 2006Cours de graphes 2 - Intranet2 Les grandes lignes du cours Définitions de base Définitions de base Connexité Connexité Les plus courts chemins Les plus courts chemins Dijkstra et Bellmann-Ford Dijkstra et Bellmann-Ford Arbres Arbres Arbres de recouvrement minimaux Arbres de recouvrement minimaux Problèmes de flots Problèmes de flots 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

3 21 février 2006Cours de graphes 2 - Intranet3 Connexité – plus courts chemins Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 )

4 21 février 2006Cours de graphes 2 - Intranet4 Connexité – plus courts chemins E S E S H E M I N S H E M I N S E S E S L U S L U S C O U R T S

5 21 février 2006Cours de graphes 2 - Intranet5 Connexité – plus courts chemins Sur un graphe non orienté, nous allons calculer :Sur un graphe non orienté, nous allons calculer : –les composantes connexes ! Sur une composante connexe, nous allons calculer :Sur une composante connexe, nous allons calculer : –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 !

6 21 février 2006Cours de graphes 2 - Intranet6 Connexité – plus courts chemins La notion de distance est donné par le nombre darêtes quil faut traverser au moins !La notion de distance est donné par le nombre darêtes quil faut traverser au moins !

7 21 février 2006Cours de graphes 2 - Intranet7 Connexité – plus courts chemins La notion de distance est donné par le nombre darêtes quil faut traverser au moins !La notion de distance est donné par le nombre darêtes quil faut traverser au moins ! Lalgorithme de la « vague » :Lalgorithme de la « vague » : –Nous choisissons un sommet « u » sec et le mouillons,

8 21 février 2006Cours de graphes 2 - Intranet8 Connexité – plus courts chemins La notion de distance est donné par le nombre darêtes quil faut traverser au moins !La notion de distance est donné par le nombre darêtes quil faut traverser au moins ! Lalgorithme de la « vague » :Lalgorithme de la « vague » : –Nous choisissons un sommet « u » sec et le mouillons, –à létape 1, nous mouillons ses voisins,

9 21 février 2006Cours de graphes 2 - Intranet9 Connexité – plus courts chemins La notion de distance est donné par le nombre darêtes quil faut traverser au moins !La notion de distance est donné par le nombre darêtes quil faut traverser au moins ! Lalgorithme de la « vague » :Lalgorithme de la « vague » : –Nous choisissons un sommet « u » sec et le mouillons, –à létape 1, nous mouillons ses voisins, –à létape 2, nous mouillons les voisins des voisins,...

10 21 février 2006Cours de graphes 2 - Intranet10 Connexité – plus courts chemins La notion de distance est donné par le nombre darêtes quil faut traverser au moins !La notion de distance est donné par le nombre darêtes quil faut traverser au moins ! Lalgorithme de la « vague » :Lalgorithme de la « vague » : –Nous choisissons un sommet « u » sec et le mouillons, –à létape 1, nous mouillons ses voisins, –à létape 2, nous mouillons les voisins des voisins,...

11 21 février 2006Cours de graphes 2 - Intranet11 Connexité – plus courts chemins La notion de distance est donné par le nombre darêtes quil faut traverser au moins !La notion de distance est donné par le nombre darêtes quil faut traverser au moins ! Lalgorithme de la « vague » :Lalgorithme de la « vague » : –Nous choisissons un sommet « u » sec et le mouillons, –à létape 1, nous mouillons ses voisins, –à létape 2, nous mouillons les voisins des voisins,... En temps ( | E | ) = O ( | V |^2 ), nous connaissons les plus courts chemins du sommet « u » vers les autres !En temps ( | E | ) = O ( | V |^2 ), nous connaissons les plus courts chemins du sommet « u » vers les autres !

12 21 février 2006Cours de graphes 2 - Intranet12 Connexité – plus courts chemins

13 21 février 2006Cours de graphes 2 - Intranet13 Connexité – plus courts chemins Etape 0 - étape 1 - étape 2 - étape 3

14 21 février 2006Cours de graphes 2 - Intranet14 Connexité – plus courts chemins u Etape 0 - étape 1 - étape 2 - étape 3

15 21 février 2006Cours de graphes 2 - Intranet15 Connexité – plus courts chemins u Etape 0 - étape 1 - étape 2 - étape 3

16 21 février 2006Cours de graphes 2 - Intranet16 Connexité – plus courts chemins u Etape 0 - étape 1 - étape 2 - étape 3

17 21 février 2006Cours de graphes 2 - Intranet17 Connexité – plus courts chemins u Etape 0 - étape 1 - étape 2 - étape 3 Touché une seconde fois !

18 21 février 2006Cours de graphes 2 - Intranet18 Connexité – plus courts chemins u Etape 0 - étape 1 - étape 2 - étape 3 Touché une seconde fois ! Touché deux fois !

19 21 février 2006Cours de graphes 2 - Intranet19 Connexité – plus courts chemins u Etape 0 - étape 1 - étape 2 - étape 3

20 21 février 2006Cours de graphes 2 - Intranet20 Connexité – plus courts chemins La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) !La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) !

21 21 février 2006Cours de graphes 2 - Intranet21 Connexité – plus courts chemins La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) !La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) ! uv w

22 21 février 2006Cours de graphes 2 - Intranet22 Connexité – plus courts chemins La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) !La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) ! uv w u v w

23 21 février 2006Cours de graphes 2 - Intranet23 Connexité – plus courts chemins La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) !La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) ! Il faut répéter la vague depuisIl faut répéter la vague depuis chaque sommet « u » du graphe ! chaque sommet « u » du graphe ! uv w u v w

24 21 février 2006Cours de graphes 2 - Intranet24 Connexité – plus courts chemins La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) !La connaissance de d ( u, v ) et d ( u, w ) ne permet pas de dire grand-chose sur d ( v, w ) ! Il faut répéter la vague depuisIl faut répéter la vague depuis chaque sommet « u » du graphe ! chaque sommet « u » du graphe ! En temps ( | V | * | E | ) = O ( | V |^3 ), nous connaissons les plus courts chemins de tout sommet à tout sommet !En temps ( | V | * | E | ) = O ( | V |^3 ), nous connaissons les plus courts chemins de tout sommet à tout sommet ! uv w u v w

25 21 février 2006Cours de graphes 2 - Intranet25 Connexité – plus courts chemins Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 )

26 21 février 2006Cours de graphes 2 - Intranet26 Connexité – plus courts chemins La multiplication de matrices :La multiplication de matrices :

27 21 février 2006Cours de graphes 2 - Intranet27 Connexité – plus courts chemins La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –des « 1 » lorsque larête existe et des « » sinon –des « 1 » lorsque larête existe et des « » sinon

28 21 février 2006Cours de graphes 2 - Intranet28 Connexité – plus courts chemins La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –des « 1 » lorsque larête existe et des « » sinon –des « 1 » lorsque larête existe et des « » sinon Nous effectuons le calcul suivant :Nous effectuons le calcul suivant : M * M ( i, j ) = min M ( i, k ) + M ( k, j ) M * M ( i, j ) = min M ( i, k ) + M ( k, j ) k

29 21 février 2006Cours de graphes 2 - Intranet29 Connexité – plus courts chemins La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –des « 1 » lorsque larête existe et des « » sinon –des « 1 » lorsque larête existe et des « » sinon Nous effectuons le calcul suivant :Nous effectuons le calcul suivant : M * M ( i, j ) = min M ( i, k ) + M ( k, j ) M * M ( i, j ) = min M ( i, k ) + M ( k, j ) Nous calculons : M - > M^2 - > M^4 - >...Nous calculons : M - > M^2 - > M^4 - >... k

30 21 février 2006Cours de graphes 2 - Intranet30 Connexité – plus courts chemins La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –des « 1 » lorsque larête existe et des « » sinon –des « 1 » lorsque larête existe et des « » sinon Nous effectuons le calcul suivant :Nous effectuons le calcul suivant : M * M ( i, j ) = min M ( i, k ) + M ( k, j ) M * M ( i, j ) = min 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 contient tous les plus courts chemins de longueur au plus 2 * i, cest-à-dire quelle contient des « + » et des valeurs dans { 0,..., 2 * i }.Propriété : M^( 2 * i ) = M^i * M^i contient tous les plus courts chemins de longueur au plus 2 * i, cest-à-dire quelle contient des « + » et des valeurs dans { 0,..., 2 * i }. k

31 21 février 2006Cours de graphes 2 - Intranet31 Connexité – plus courts chemins La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –des « 1 » lorsque larête existe et des « » sinon –des « 1 » lorsque larête existe et des « » sinon Nous effectuons le calcul suivant :Nous effectuons le calcul suivant : M * M ( i, j ) = min M ( i, k ) + M ( k, j ) M * M ( i, j ) = min 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 contient tous les plus courts chemins de longueur au plus 2 * i, cest-à-dire quelle contient des « + » et des valeurs dans { 0,..., 2 * i }.Propriété : M^( 2 * i ) = M^i * M^i contient tous les plus courts chemins de longueur au plus 2 * i, cest-à-dire quelle contient des « + » et des valeurs dans { 0,..., 2 * i }. Il suffit de calculer M^k avec k >= | V | - 1 à laide de O ( log( | V | ) ) élévations au carré !Il suffit de calculer M^k avec k >= | V | - 1 à laide de O ( log( | V | ) ) élévations au carré ! k

32 21 février 2006Cours de graphes 2 - Intranet32 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1.

33 21 février 2006Cours de graphes 2 - Intranet33 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1. –Hypothèse dinduction : M^i contient tous les...

34 21 février 2006Cours de graphes 2 - Intranet34 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1. –Hypothèse dinduction : M^i contient tous les... M^( 2 * i ) ( u, v ) <> + M^( 2 * i ) ( u, v ) <> +

35 21 février 2006Cours de graphes 2 - Intranet35 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1. –Hypothèse dinduction : M^i contient tous les... M^( 2 * i ) ( u, v ) <> + M^( 2 * i ) ( u, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> +

36 21 février 2006Cours de graphes 2 - Intranet36 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1. –Hypothèse dinduction : M^i contient tous les... M^( 2 * i ) ( u, v ) <> + M^( 2 * i ) ( u, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de valeur minimale. valeur minimale.

37 21 février 2006Cours de graphes 2 - Intranet37 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1. –Hypothèse dinduction : M^i contient tous les... M^( 2 * i ) ( u, v ) <> + M^( 2 * i ) ( u, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de valeur minimale. valeur minimale. M^i ( u, w ) <> + et M^i ( w, v ) <> + M^i ( u, w ) <> + et M^i ( w, v ) <> +

38 21 février 2006Cours de graphes 2 - Intranet38 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1. –Hypothèse dinduction : M^i contient tous les... M^( 2 * i ) ( u, v ) <> + M^( 2 * i ) ( u, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de valeur minimale. valeur minimale. M^i ( u, w ) <> + et M^i ( w, v ) <> + M^i ( u, w ) <> + et M^i ( w, v ) <> + Les plus courts chemins de ( u ; w ) et de ( w ; v ) sont Les plus courts chemins de ( u ; w ) et de ( w ; v ) sont de longueur au plus i. de longueur au plus i.

39 21 février 2006Cours de graphes 2 - Intranet39 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1. –Hypothèse dinduction : M^i contient tous les... M^( 2 * i ) ( u, v ) <> + M^( 2 * i ) ( u, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de valeur minimale. valeur minimale. M^i ( u, w ) <> + et M^i ( w, v ) <> + M^i ( u, w ) <> + et M^i ( w, v ) <> + Les plus courts chemins de ( u ; w ) et de ( w ; v ) sont Les plus courts chemins de ( u ; w ) et de ( w ; v ) sont de longueur au plus i. de longueur au plus i. Le plus court chemin de « u » vers « v » est de Le plus court chemin de « u » vers « v » est de longueur au plus 2 * i et cest ( u ; w ; v ). longueur au plus 2 * i et cest ( u ; w ; v ).

40 21 février 2006Cours de graphes 2 - Intranet40 Connexité – plus courts chemins Preuve de la propriété :Preuve de la propriété : –La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1. –Hypothèse dinduction : M^i contient tous les... M^( 2 * i ) ( u, v ) <> + M^( 2 * i ) ( u, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + min_k M^i ( u, k ) + M^i ( k, v ) <> + w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de w tel que M^i ( u, w ) + M^i ( w, v ) <> + et de valeur minimale. valeur minimale. M^i ( u, w ) <> + et M^i ( w, v ) <> + M^i ( u, w ) <> + et M^i ( w, v ) <> + Les plus courts chemins de ( u ; w ) et de ( w ; v ) sont Les plus courts chemins de ( u ; w ) et de ( w ; v ) sont de longueur au plus i. de longueur au plus i. Le plus court chemin de « u » vers « v » est de Le plus court chemin de « u » vers « v » est de longueur au plus 2 * i et cest ( u ; w ; v ). longueur au plus 2 * i et cest ( u ; w ; v ).

41 21 février 2006Cours de graphes 2 - Intranet41 Connexité – plus courts chemins Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) )

42 21 février 2006Cours de graphes 2 - Intranet42 Connexité – plus courts chemins M est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinon (0)

43 21 février 2006Cours de graphes 2 - Intranet43 Connexité – plus courts chemins M est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinon M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. (0) (k-1)

44 21 février 2006Cours de graphes 2 - Intranet44 Connexité – plus courts chemins M est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinon M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. M ( u, v ) = min (, M ( u, v ) = min (, ) (0) (k) (k-1)

45 21 février 2006Cours de graphes 2 - Intranet45 Connexité – plus courts chemins M est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinon M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. M ( u, v ) = min (, M ( u, v ) = min (, ) (0) M ( u, v ) (k - 1) (k) (k-1)

46 21 février 2006Cours de graphes 2 - Intranet46 Connexité – plus courts chemins M est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinon M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. M ( u, v ) = min (, M ( u, v ) = min (, ) (0) M ( u, k ) + M ( k, v ) (k - 1) M ( u, v ) (k - 1) (k) (k-1)

47 21 février 2006Cours de graphes 2 - Intranet47 Connexité – plus courts chemins M est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinon M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. M ( u, v ) = min (, M ( u, v ) = min (, ) Le plus court chemin avec des sommets dans { 1,..., k } :Le plus court chemin avec des sommets dans { 1,..., k } : –peut, soit, ne pas passer par « k », (0) M ( u, k ) + M ( k, v ) (k - 1) M ( u, v ) (k - 1) (k) (k-1)

48 21 février 2006Cours de graphes 2 - Intranet48 Connexité – plus courts chemins M est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinon M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. M ( u, v ) = min (, M ( u, v ) = min (, ) Le plus court chemin avec des sommets dans { 1,..., k } :Le plus court chemin avec des sommets dans { 1,..., k } : –peut, soit, ne pas passer par « k », –peut, soit, passer par « k » ! (0) M ( u, k ) + M ( k, v ) (k - 1) M ( u, v ) (k - 1) (k) (k-1)

49 21 février 2006Cours de graphes 2 - Intranet49 Connexité – plus courts chemins M est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, des « 1 » lorsque larête existe et des « » sinon M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. M ( u, v ) = min (, M ( u, v ) = min (, ) Le plus court chemin avec des sommets dans { 1,..., k } :Le plus court chemin avec des sommets dans { 1,..., k } : –peut, soit, ne pas passer par « k », –peut, soit, passer par « k » ! M est la matrice recherchée !M est la matrice recherchée ! (0) M ( u, k ) + M ( k, v ) (k - 1) M ( u, v ) (k - 1) (n) (k) (k-1)

50 21 février 2006Cours de graphes 2 - Intranet50 Connexité – plus courts chemins Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 )

51 21 février 2006Cours de graphes 2 - Intranet51 Connexité – plus courts chemins E S E S H E M I N S H E M I N S E S E S L U S L U S L E G E R S

52 21 février 2006Cours de graphes 2 - Intranet52 Sur un graphe non orienté, nous allons calculer :Sur un graphe non orienté, nous allons calculer : –les composantes connexes ! Sur une composante connexe, nous allons calculer :Sur une composante connexe, nous allons calculer : –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 ! Connexité – chemins les plus légers

53 21 février 2006Cours de graphes 2 - Intranet53 Sur un graphe non orienté, nous allons calculer :Sur un graphe non orienté, nous allons calculer : –les composantes connexes ! Sur une composante connexe, nous allons calculer :Sur une composante connexe, nous allons calculer : –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 ! Connexité – chemins les plus légers

54 21 février 2006Cours de graphes 2 - Intranet54 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 ! Connexité – chemins les plus légers

55 21 février 2006Cours de graphes 2 - Intranet55 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 ! En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif.En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif. Connexité – chemins les plus légers

56 21 février 2006Cours de graphes 2 - Intranet56 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 ! En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif.En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif. Connexité – chemins les plus légers

57 21 février 2006Cours de graphes 2 - Intranet57 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 ! En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif.En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif. Connexité – chemins les plus légers Cycle de poids négatif !

58 21 février 2006Cours de graphes 2 - Intranet58 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée !

59 21 février 2006Cours de graphes 2 - Intranet59 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! !

60 21 février 2006Cours de graphes 2 - Intranet60 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Etape 0 - étape 1 - étape 2 - étape 3

61 21 février 2006Cours de graphes 2 - Intranet61 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Etape 0 - étape 1 - étape 2 - étape 3 30

62 21 février 2006Cours de graphes 2 - Intranet62 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Etape 0 - étape 1 - étape 2 - étape 3

63 21 février 2006Cours de graphes 2 - Intranet63 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Etape 0 - étape 1 - étape 2 - étape 3

64 21 février 2006Cours de graphes 2 - Intranet64 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Etape 0 - étape 1 - étape 2 - étape 3 Une vague qui se brise. Nous lignorons ! ! !

65 21 février 2006Cours de graphes 2 - Intranet65 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Etape 0 - étape 1 - étape 2 - étape 3 Elle nexiste plus !

66 21 février 2006Cours de graphes 2 - Intranet66 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Etape 0 - étape 1 - étape 2 - étape 3 23

67 21 février 2006Cours de graphes 2 - Intranet67 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Etape 0 - étape 1 - étape 2 - étape 3 23

68 21 février 2006Cours de graphes 2 - Intranet68 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Il peut y avoir « 2 » ou « 3 » vagues, ou « 4 »,...Il peut y avoir « 2 » ou « 3 » vagues, ou « 4 », Etape 0 - étape 1 - étape 2 - étape 3 23

69 21 février 2006Cours de graphes 2 - Intranet69 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Il peut y avoir « 2 » ou « 3 » vagues, ou « 4 »,...Il peut y avoir « 2 » ou « 3 » vagues, ou « 4 »,... Quand est-ce que cest fini ? ? ?Quand est-ce que cest fini ? ? ? Etape 0 - étape 1 - étape 2 - étape 3 23

70 21 février 2006Cours de graphes 2 - Intranet70 Connexité – chemins les plus légers Le problème des chemins les plus légers :Le problème des chemins les plus légers : –Linégalité triangulaire peut ne pas être respectée ! Lalgorithme de la vague (unique) ne marche plus ! ! !Lalgorithme de la vague (unique) ne marche plus ! ! ! Il peut y avoir « 2 » ou « 3 » vagues, ou « 4 »,...Il peut y avoir « 2 » ou « 3 » vagues, ou « 4 »,... Quand est-ce que cest fini ? ? ?Quand est-ce que cest fini ? ? ? Etape 0 - étape 1 - étape 2 - étape 3 23

71 21 février 2006Cours de graphes 2 - Intranet71 Connexité – chemins les plus légers Un cas pathologique :Un cas pathologique : X

72 21 février 2006Cours de graphes 2 - Intranet72 Connexité – chemins les plus légers Un cas pathologique :Un cas pathologique : X Y 2 vagues

73 21 février 2006Cours de graphes 2 - Intranet73 Connexité – chemins les plus légers Un cas pathologique :Un cas pathologique : X Y 2 vagues T 4 vagues dont 2 simultanées

74 21 février 2006Cours de graphes 2 - Intranet74 Connexité – chemins les plus légers Un cas pathologique :Un cas pathologique : Y 2 vagues T 4 vagues dont 2 simultanées O ( n / 3 ) vagues ! ! ! XZ

75 21 février 2006Cours de graphes 2 - Intranet75 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! Connexité – chemins les plus légers

76 21 février 2006Cours de graphes 2 - Intranet76 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! Connexité – chemins les plus légers

77 21 février 2006Cours de graphes 2 - Intranet77 La multiplication de matrices :La multiplication de matrices : Connexité – chemins les plus légers

78 21 février 2006Cours de graphes 2 - Intranet78 La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –le poids de larête lorsquelle existe et « » sinon –le poids de larête lorsquelle existe et « » sinon Connexité – chemins les plus légers

79 21 février 2006Cours de graphes 2 - Intranet79 La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –le poids de larête lorsquelle existe et « » sinon –le poids de larête lorsquelle existe et « » sinon Nous effectuons le calcul suivant :Nous effectuons le calcul suivant : M * M ( i, j ) = min M ( i, k ) + M ( k, j ) M * M ( i, j ) = min M ( i, k ) + M ( k, j ) k Connexité – chemins les plus légers

80 21 février 2006Cours de graphes 2 - Intranet80 La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –le poids de larête lorsquelle existe et « » sinon –le poids de larête lorsquelle existe et « » sinon Nous effectuons le calcul suivant :Nous effectuons le calcul suivant : M * M ( i, j ) = min M ( i, k ) + M ( k, j ) M * M ( i, j ) = min M ( i, k ) + M ( k, j ) Nous calculons : M - > M^2 - > M^4 - >...Nous calculons : M - > M^2 - > M^4 - >... k Connexité – chemins les plus légers

81 21 février 2006Cours de graphes 2 - Intranet81 La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –le poids de larête lorsquelle existe et « » sinon –le poids de larête lorsquelle existe et « » sinon Nous effectuons le calcul suivant :Nous effectuons le calcul suivant : M * M ( i, j ) = min M ( i, k ) + M ( k, j ) M * M ( i, j ) = min 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 contient tous les chemins les plus légers de longueur au plus 2 * i (nombre darêtes).Propriété : M^( 2 * i ) = M^i * M^i contient tous les chemins les plus légers de longueur au plus 2 * i (nombre darêtes). k Connexité – chemins les plus légers

82 21 février 2006Cours de graphes 2 - Intranet82 La multiplication de matrices :La multiplication de matrices : –Nous prenons une matrice avec des « 0 » sur la diagonale, –le poids de larête lorsquelle existe et « » sinon –le poids de larête lorsquelle existe et « » sinon Nous effectuons le calcul suivant :Nous effectuons le calcul suivant : M * M ( i, j ) = min M ( i, k ) + M ( k, j ) M * M ( i, j ) = min 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 contient tous les chemins les plus légers de longueur au plus 2 * i (nombre darêtes).Propriété : M^( 2 * i ) = M^i * M^i contient tous les chemins les plus légers de longueur au plus 2 * i (nombre darêtes). Il suffit de calculer M^k avec k >= | V | - 1 à laide de O ( log( | V | ) ) élévations au carré !Il suffit de calculer M^k avec k >= | V | - 1 à laide de O ( log( | V | ) ) élévations au carré ! k Connexité – chemins les plus légers

83 21 février 2006Cours de graphes 2 - Intranet83 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) Connexité – chemins les plus légers

84 21 février 2006Cours de graphes 2 - Intranet84 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) Le même programme ! Connexité – chemins les plus légers

85 21 février 2006Cours de graphes 2 - Intranet85 M est la matrice dadjacence avec des « 0 » sur la diagonale, le poids de larête si elle existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, le poids de larête si elle existe et des « » sinon (0) Connexité – chemins les plus légers

86 21 février 2006Cours de graphes 2 - Intranet86 M est la matrice dadjacence avec des « 0 » sur la diagonale, le poids de larête si elle existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, le poids de larête si elle existe et des « » sinon M de Floyd-Warshall contient par hypothèse les chemins les plus légers construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les chemins les plus légers construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. M ( u, v ) = min (, M ( u, v ) = min (, ) Le chemin le plus léger avec des sommets dans { 1,..., k } :Le chemin le plus léger avec des sommets dans { 1,..., k } : –peut, soit, ne pas passer par « k », –peut, soit, passer par « k » ! M est la matrice recherchée !M est la matrice recherchée ! (0) M ( u, k ) + M ( k, v ) (k - 1) M ( u, v ) (k - 1) (n) (k) (k-1) Connexité – chemins les plus légers

87 21 février 2006Cours de graphes 2 - Intranet87 M est la matrice dadjacence avec des « 0 » sur la diagonale, le poids de larête si elle existe et des « » sinonM est la matrice dadjacence avec des « 0 » sur la diagonale, le poids de larête si elle existe et des « » sinon M de Floyd-Warshall contient par hypothèse les chemins les plus légers construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }.M de Floyd-Warshall contient par hypothèse les chemins les plus légers construits à laide de sommets intermédiaires dans lensemble { 0,..., k-1 }. M ( u, v ) = min (, M ( u, v ) = min (, ) Le chemin le plus léger avec des sommets dans { 1,..., k } :Le chemin le plus léger avec des sommets dans { 1,..., k } : –peut, soit, ne pas passer par « k », –peut, soit, passer par « k » ! M est la matrice recherchée !M est la matrice recherchée ! (0) M ( u, k ) + M ( k, v ) (k - 1) M ( u, v ) (k - 1) (n) (k) (k-1) Connexité – chemins les plus légers

88 21 février 2006Cours de graphes 2 - Intranet88 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) Connexité – chemins les plus légers

89 21 février 2006Cours de graphes 2 - Intranet89 Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) Le même programme ! Connexité – chemins les plus légers

90 21 février 2006Cours de graphes 2 - Intranet90 Connexité – chemins les plus légers Connexité Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | E | ) = ( | E | ) = O ( | V |^2 ) O ( | V |^2 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 )

91 21 février 2006Cours de graphes 2 - Intranet91 Et les graphes orientés ? ? ?Et les graphes orientés ? ? ? Connexité – chemins les plus légers

92 21 février 2006Cours de graphes 2 - Intranet92 Et les graphes orientés ? ? ?Et les graphes orientés ? ? ? Connexité – chemins les plus légers

93 21 février 2006Cours de graphes 2 - Intranet93 Et les graphes orientés ? ? ?Et les graphes orientés ? ? ? à ceci près que la connexité orientée par lalgorithme de la vague –nécessite de répéter lalgorithme pour chaque sommet –et introduit une complexité en ( | V | * | E | ) ! Connexité – chemins les plus légers

94 21 février 2006Cours de graphes 2 - Intranet94 Pour les graphes orientés Connexité en orienté Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 )

95 21 février 2006Cours de graphes 2 - Intranet95 Pour les graphes orientés Connexité en orienté Plus courts Plus légers La vague MultiplicationFloyd-Warshall ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 ) ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) N O N ! ( | V |^3 * ( | V |^3 * log( | V | ) ) log( | V | ) ) ( | V |^3 ) ( | V |^3 ) ( | V | * | E | ) = ( | V | * | E | ) = O ( | V |^3 ) O ( | V |^3 )

96 21 février 2006Cours de graphes 2 - Intranet96 Deux questions :Deux questions : La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets !La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets ! Connexité – chemins les plus légers

97 21 février 2006Cours de graphes 2 - Intranet97 Deux questions :Deux questions : La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets !La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets ! –Pouvons-nous calculer les chemins les plus légers de « u » vers les autres sommets avec la même complexité ? –Oui, cest lalgorithme de Dijkstra ! Connexité – chemins les plus légers

98 21 février 2006Cours de graphes 2 - Intranet98 Deux questions :Deux questions : La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets !La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets ! –Pouvons-nous calculer les chemins les plus légers de « u » vers les autres sommets avec la même complexité ? –Oui, cest lalgorithme de Dijkstra ! Nous avons dû exiger que les poids des arêtes soient positifs ou nuls !Nous avons dû exiger que les poids des arêtes soient positifs ou nuls ! Connexité – chemins les plus légers

99 21 février 2006Cours de graphes 2 - Intranet99 Deux questions :Deux questions : La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets !La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets ! –Pouvons-nous calculer les chemins les plus légers de « u » vers les autres sommets avec la même complexité ? –Oui, cest lalgorithme de Dijkstra ! Nous avons dû exiger que les poids des arêtes soient positifs ou nuls !Nous avons dû exiger que les poids des arêtes soient positifs ou nuls ! –Pouvons-nous lever cette limitation, quitte à devoir détecter des cycles de poids négatifs ? –Oui, cest lalgorithme de Bellmann-Ford ! Connexité – chemins les plus légers

100 21 février 2006Cours de graphes 2 - Intranet100 Deux questions :Deux questions : La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets !La vague construit en temps O ( | E | ) le plus court chemin dun sommet « u » quelconque vers tous les autres sommets ! –Pouvons-nous calculer les chemins les plus légers de « u » vers les autres sommets avec la même complexité ? –Oui, cest lalgorithme de Dijkstra ! Nous avons dû exiger que les poids des arêtes soient positifs ou nuls !Nous avons dû exiger que les poids des arêtes soient positifs ou nuls ! –Pouvons-nous lever cette limitation, quitte à devoir détecter des cycles de poids négatifs ? –Oui, cest lalgorithme de Bellmann-Ford ! Connexité – chemins les plus légers

101 21 février 2006Cours de graphes 2 - Intranet101 Connexité – plus courts chemins A L G O R I T H M E A L G O R I T H M E D E D I J K S T R A

102 21 février 2006Cours de graphes 2 - Intranet102 Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets ! Connexité – chemins les plus légers

103 21 février 2006Cours de graphes 2 - Intranet103 Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets ! Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle. Connexité – chemins les plus légers

104 21 février 2006Cours de graphes 2 - Intranet104 Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets ! Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle. Pour chaque sommet « u » nous connaissons « D ( u ) » quiPour chaque sommet « u » nous connaissons « D ( u ) » qui –est un majorant du chemin le plus léger, Connexité – chemins les plus légers

105 21 février 2006Cours de graphes 2 - Intranet105 Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets ! Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle. Pour chaque sommet « u » nous connaissons « D ( u ) » quiPour chaque sommet « u » nous connaissons « D ( u ) » qui –est un majorant du chemin le plus léger, –qui correspond au poids dun chemin de « s » vers « u », Connexité – chemins les plus légers

106 21 février 2006Cours de graphes 2 - Intranet106 Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets ! Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle. Pour chaque sommet « u » nous connaissons « D ( u ) » quiPour chaque sommet « u » nous connaissons « D ( u ) » qui –est un majorant du chemin le plus léger, –qui correspond au poids dun chemin de « s » vers « u », –qui vaut initialement « + » pour tout « u » différent de « s » Connexité – chemins les plus légers

107 21 février 2006Cours de graphes 2 - Intranet107 Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets ! Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle. Pour chaque sommet « u » nous connaissons « D ( u ) » quiPour chaque sommet « u » nous connaissons « D ( u ) » qui –est un majorant du chemin le plus léger, –qui correspond au poids dun chemin de « s » vers « u », –qui vaut initialement « + » pour tout « u » différent de « s » –et qui sera égal au chemin le plus léger à la fin du calcul. Connexité – chemins les plus légers

108 21 février 2006Cours de graphes 2 - Intranet108 Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !Lalgorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets ! Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.Cest un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle. Pour chaque sommet « u » nous connaissons « D ( u ) » quiPour chaque sommet « u » nous connaissons « D ( u ) » qui –est un majorant du chemin le plus léger, –qui correspond au poids dun chemin de « s » vers « u », –qui vaut initialement « + » pour tout « u » différent de « s » –et qui sera égal au chemin le plus léger à la fin du calcul. De plus, pour tout « u » nous connaissons « P ( u ) » qui est le sommet qui précède « u » le long du meilleur chemin courant.De plus, pour tout « u » nous connaissons « P ( u ) » qui est le sommet qui précède « u » le long du meilleur chemin courant. Connexité – chemins les plus légers

109 21 février 2006Cours de graphes 2 - Intranet109 Lopération de base « relax ( x, v ) » demandeLopération de base « relax ( x, v ) » demande –si le meilleur chemin actuel ne peut pas être amélioré si le sommet « x » devient le prédécesseur de « v » ? le sommet « x » devient le prédécesseur de « v » ? Connexité – chemins les plus légers

110 21 février 2006Cours de graphes 2 - Intranet110 Lopération de base « relax ( x, v ) » demandeLopération de base « relax ( x, v ) » demande –si le meilleur chemin actuel ne peut pas être amélioré si le sommet « x » devient le prédécesseur de « v » ? le sommet « x » devient le prédécesseur de « v » ? D ( x ) + M ( x, v ) < D ( v ) ? ? ? ? ? D ( x ) + M ( x, v ) < D ( v ) ? ? ? ? ? Connexité – chemins les plus légers

111 21 février 2006Cours de graphes 2 - Intranet111 Lopération de base « relax ( x, v ) » demandeLopération de base « relax ( x, v ) » demande –si le meilleur chemin actuel ne peut pas être amélioré si le sommet « x » devient le prédécesseur de « v » ? le sommet « x » devient le prédécesseur de « v » ? D ( x ) + M ( x, v ) < D ( v ) ? ? ? ? ? D ( x ) + M ( x, v ) < D ( v ) ? ? ? ? ? Connexité – chemins les plus légers NON RIEN !

112 21 février 2006Cours de graphes 2 - Intranet112 Lopération de base « relax ( x, v ) » demandeLopération de base « relax ( x, v ) » demande –si le meilleur chemin actuel ne peut pas être amélioré si le sommet « x » devient le prédécesseur de « v » ? le sommet « x » devient le prédécesseur de « v » ? D ( x ) + M ( x, v ) < D ( v ) ? ? ? ? ? D ( x ) + M ( x, v ) < D ( v ) ? ? ? ? ? Connexité – chemins les plus légers OUI D ( v ) < - D ( x ) + M ( x, v ) et P ( v ) < - x NON RIEN !

113 21 février 2006Cours de graphes 2 - Intranet113 Lopération de base « relax ( x, v ) » demandeLopération de base « relax ( x, v ) » demande –si le meilleur chemin actuel ne peut pas être amélioré si le sommet « x » devient le prédécesseur de « v » ? le sommet « x » devient le prédécesseur de « v » ? D ( x ) + M ( x, v ) < D ( v ) ? ? ? ? ? D ( x ) + M ( x, v ) < D ( v ) ? ? ? ? ? Connexité – chemins les plus légers OUI D ( v ) < - D ( x ) + M ( x, v ) et P ( v ) < - x NON RIEN ! Donc, D ( v ) décroît et correspond à un chemin du graphe !

114 21 février 2006Cours de graphes 2 - Intranet114 Connexité – chemins les plus légers Lopération de relaxation « relax ( x, v ) » :Lopération de relaxation « relax ( x, v ) » : fonction relax ( x, v ) si D ( x ) + M ( x, v ) < D ( v ) D ( v ) <- D ( x ) + M ( x, v ) ; P ( v ) <- x ; fsi

115 21 février 2006Cours de graphes 2 - Intranet115 Connexité – chemins les plus légers pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; E <- V ; tantque E <> { u <- sommet_min_D ( E ) ; E <- E \ { u } ; pour tout v dans E et voisin de u relax ( u, v ) ; }

116 21 février 2006Cours de graphes 2 - Intranet116 Connexité – chemins les plus légers pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; E <- V ; tantque E <> { u <- sommet_min_D ( E ) ; E <- E \ { u } ; pour tout v dans E et voisin de u relax ( u, v ) ; } Nous initialisons les distances !

117 21 février 2006Cours de graphes 2 - Intranet117 Connexité – chemins les plus légers pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; E <- V ; tantque E <> { u <- sommet_min_D ( E ) ; E <- E \ { u } ; pour tout v dans E et voisin de u relax ( u, v ) ; } Nous initialisons les distances ! Nous initialisons les prédécesseurs !

118 21 février 2006Cours de graphes 2 - Intranet118 Connexité – chemins les plus légers pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; E <- V ; tantque E <> { u <- sommet_min_D ( E ) ; E <- E \ { u } ; pour tout v dans E et voisin de u relax ( u, v ) ; } Nous initialisons les distances ! Nous initialisons les prédécesseurs ! Nous initialisons les sommets à parcourir !

119 21 février 2006Cours de graphes 2 - Intranet119 Connexité – chemins les plus légers pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; E <- V ; tantque E <> { u <- sommet_min_D ( E ) ; E <- E \ { u } ; pour tout v dans E et voisin de u relax ( u, v ) ; } Nous initialisons les distances ! Nous initialisons les prédécesseurs ! Nous initialisons les sommets à parcourir ! Tant quil reste un sommet à traiter...

120 21 février 2006Cours de graphes 2 - Intranet120 Connexité – chemins les plus légers pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; E <- V ; tantque E <> { u <- sommet_min_D ( E ) ; E <- E \ { u } ; pour tout v dans E et voisin de u relax ( u, v ) ; } Nous initialisons les distances ! Nous initialisons les prédécesseurs ! Nous initialisons les sommets à parcourir ! Tant quil reste un sommet à traiter... Nous retirons le sommet « u » dont « D ( u ) » est minimal !

121 21 février 2006Cours de graphes 2 - Intranet121 Connexité – chemins les plus légers pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; E <- V ; tantque E <> { u <- sommet_min_D ( E ) ; E <- E \ { u } ; pour tout v dans E et voisin de u relax ( u, v ) ; } Nous initialisons les distances ! Nous initialisons les prédécesseurs ! Nous initialisons les sommets à parcourir ! Tant quil reste un sommet à traiter... Nous retirons le sommet « u » dont « D ( u ) » est minimal ! Nous relaxons ses voisins qui ne sont pas encore définitifs ! ! !

122 21 février 2006Cours de graphes 2 - Intranet122 Connexité – chemins les plus légers s a b c

123 21 février 2006Cours de graphes 2 - Intranet123 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ?

124 21 février 2006Cours de graphes 2 - Intranet124 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } /

125 21 février 2006Cours de graphes 2 - Intranet125 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } relax ( s, a ) relax ( s, b ) /

126 21 février 2006Cours de graphes 2 - Intranet126 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } relax ( s, a ) relax ( s, b ) E s a b c D 0 10 P s s s ? /

127 21 février 2006Cours de graphes 2 - Intranet127 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } relax ( s, a ) relax ( s, b ) E s a b c D 0 10 P s s s ? / E < - E \ { a } /

128 21 février 2006Cours de graphes 2 - Intranet128 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } relax ( s, a ) relax ( s, b ) E s a b c D 0 10 P s s s ? / E < - E \ { a } relax ( a, b ) /

129 21 février 2006Cours de graphes 2 - Intranet129 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } relax ( s, a ) relax ( s, b ) E s a b c D 0 10 P s s s ? / E < - E \ { a } relax ( a, b ) / E s a b c D 0 10 P s s a ? / /

130 21 février 2006Cours de graphes 2 - Intranet130 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } relax ( s, a ) relax ( s, b ) E s a b c D 0 10 P s s s ? / E < - E \ { a } relax ( a, b ) / E s a b c D 0 10 P s s a ? / / E < - E \ { b } /

131 21 février 2006Cours de graphes 2 - Intranet131 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } relax ( s, a ) relax ( s, b ) E s a b c D 0 10 P s s s ? / E < - E \ { a } relax ( a, b ) / E s a b c D P s s a b / / E < - E \ { b } / relax ( b, c )

132 21 février 2006Cours de graphes 2 - Intranet132 Connexité – chemins les plus légers s a b c E s a b c D 0 P s ? ? ? E < - E \ { s } relax ( s, a ) relax ( s, b ) E s a b c D 0 10 P s s s ? / E < - E \ { a } relax ( a, b ) / E s a b c D P s s a b / / E < - E \ { b } / relax ( b, c ) / E < - E \ { c }

133 21 février 2006Cours de graphes 2 - Intranet133 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde !

134 21 février 2006Cours de graphes 2 - Intranet134 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !

135 21 février 2006Cours de graphes 2 - Intranet135 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !

136 21 février 2006Cours de graphes 2 - Intranet136 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !

137 21 février 2006Cours de graphes 2 - Intranet137 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u

138 21 février 2006Cours de graphes 2 - Intranet138 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E !

139 21 février 2006Cours de graphes 2 - Intranet139 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E !

140 21 février 2006Cours de graphes 2 - Intranet140 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E !

141 21 février 2006Cours de graphes 2 - Intranet141 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E !

142 21 février 2006Cours de graphes 2 - Intranet142 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E !

143 21 février 2006Cours de graphes 2 - Intranet143 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E ! D ( u ) <= D ( y ) car « u » va être extrait !

144 21 février 2006Cours de graphes 2 - Intranet144 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E ! D ( u ) <= D ( y ) car « u » va être extrait ! D ( x ) = d ( s, x ), car il n y a pas eu derreur avant !

145 21 février 2006Cours de graphes 2 - Intranet145 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E ! D ( u ) <= D ( y ) car « u » va être extrait ! D ( x ) = d ( s, x ), car il n y a pas eu derreur avant ! D ( y ) = relax ( x, y ) = d ( s, y ) ! ! ! ! !

146 21 février 2006Cours de graphes 2 - Intranet146 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E ! D ( u ) <= D ( y ) car « u » va être extrait ! D ( x ) = d ( s, x ), car il n y a pas eu derreur avant ! D ( y ) = relax ( x, y ) = d ( s, y ) ! ! ! ! !

147 21 février 2006Cours de graphes 2 - Intranet147 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E ! D ( u ) <= D ( y ) car « u » va être extrait ! D ( x ) = d ( s, x ), car il n y a pas eu derreur avant ! D ( y ) = relax ( x, y ) = d ( s, y ) ! ! ! ! ! D ( y ) = d ( s, y ) <= d ( s, u ) <= D ( u )

148 21 février 2006Cours de graphes 2 - Intranet148 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E ! D ( u ) <= D ( y ) car « u » va être extrait ! D ( x ) = d ( s, x ), car il n y a pas eu derreur avant ! D ( y ) = relax ( x, y ) = d ( s, y ) ! ! ! ! ! D ( y ) = d ( s, y ) <= d ( s, u ) <= D ( u ) D ( y ) = d ( s, y ) = D ( u ) = d ( s, u )

149 21 février 2006Cours de graphes 2 - Intranet149 Connexité – chemins les plus légers Correction de lalgorithme, par absurde !Correction de lalgorithme, par absurde ! Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » !Soit « u » le premier sommet extrait avec « D ( u ) > d ( s, u ) » ! Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » : s... xy u Pas dans E ! Dans E ! D ( u ) <= D ( y ) car « u » va être extrait ! D ( x ) = d ( s, x ), car il n y a pas eu derreur avant ! D ( y ) = relax ( x, y ) = d ( s, y ) ! ! ! ! ! D ( y ) = d ( s, y ) <= d ( s, u ) <= D ( u ) D ( y ) = d ( s, y ) = D ( u ) = d ( s, u )

150 21 février 2006Cours de graphes 2 - Intranet150 Connexité – chemins les plus légers Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs).Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs).

151 21 février 2006Cours de graphes 2 - Intranet151 Connexité – chemins les plus légers Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs).Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs). Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s, u ) » !Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s, u ) » !

152 21 février 2006Cours de graphes 2 - Intranet152 Connexité – chemins les plus légers Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs).Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs). Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s, u ) » !Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s, u ) » ! La complexité vaut ( | V | + | E | ), car nous parcourons, exactement une fois, tous les sommets et toutes les arêtes !La complexité vaut ( | V | + | E | ), car nous parcourons, exactement une fois, tous les sommets et toutes les arêtes !

153 21 février 2006Cours de graphes 2 - Intranet153 Connexité – chemins les plus légers Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs).Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs). Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s, u ) » !Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s, u ) » ! La complexité vaut ( | V | + | E | ), car nous parcourons, exactement une fois, tous les sommets et toutes les arêtes !La complexité vaut ( | V | + | E | ), car nous parcourons, exactement une fois, tous les sommets et toutes les arêtes ! Et ( | V | + | E | ) = ( | E | ) car le graphe est connexe !Et ( | V | + | E | ) = ( | E | ) car le graphe est connexe !

154 21 février 2006Cours de graphes 2 - Intranet154 Connexité – chemins les plus légers Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs).Dijkstra calcule les chemins les plus légers dun sommet vers tous les autres (one-to-all shortest pairs). Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s, u ) » !Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s, u ) » ! La complexité vaut ( | V | + | E | ), car nous parcourons, exactement une fois, tous les sommets et toutes les arêtes !La complexité vaut ( | V | + | E | ), car nous parcourons, exactement une fois, tous les sommets et toutes les arêtes ! Et ( | V | + | E | ) = ( | E | ) car le graphe est connexe !Et ( | V | + | E | ) = ( | E | ) car le graphe est connexe ! Attention, tout ceci est correct uniquement si les poids sont positifs ou nuls ! ! !Attention, tout ceci est correct uniquement si les poids sont positifs ou nuls ! ! !

155 21 février 2006Cours de graphes 2 - Intranet155 Connexité – plus courts chemins A L G O R I T H M E A L G O R I T H M E D E B E L L M A N N - F O R D

156 21 février 2006Cours de graphes 2 - Intranet156 Connexité – chemins les plus légers Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).

157 21 février 2006Cours de graphes 2 - Intranet157 Connexité – chemins les plus légers Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs). Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif.Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif.

158 21 février 2006Cours de graphes 2 - Intranet158 Connexité – chemins les plus légers Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs). Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif.Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif. La complexité est en O ( | V |^3 ), comme Floyd-Warshall !La complexité est en O ( | V |^3 ), comme Floyd-Warshall !

159 21 février 2006Cours de graphes 2 - Intranet159 Connexité – chemins les plus légers Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs). Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif.Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif. La complexité est en O ( | V |^3 ), comme Floyd-Warshall !La complexité est en O ( | V |^3 ), comme Floyd-Warshall ! BF utilise la même relaxation que Dijkstra, mais ne considère jamais quune valeur dun sommet est définitive (et que le sommet peut être retiré de lensemble « E »).BF utilise la même relaxation que Dijkstra, mais ne considère jamais quune valeur dun sommet est définitive (et que le sommet peut être retiré de lensemble « E »).

160 21 février 2006Cours de graphes 2 - Intranet160 Connexité – chemins les plus légers Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs). Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif.Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif. La complexité est en O ( | V |^3 ), comme Floyd-Warshall !La complexité est en O ( | V |^3 ), comme Floyd-Warshall ! BF utilise la même relaxation que Dijkstra, mais ne considère jamais quune valeur dun sommet est définitive (et que le sommet peut être retiré de lensemble « E »).BF utilise la même relaxation que Dijkstra, mais ne considère jamais quune valeur dun sommet est définitive (et que le sommet peut être retiré de lensemble « E »). Nous continuons tant quil y a des poids peuvent être réduits et que... (nous verrons plus tard) !Nous continuons tant quil y a des poids peuvent être réduits et que... (nous verrons plus tard) !

161 21 février 2006Cours de graphes 2 - Intranet161 Connexité – chemins les plus légers Lopération de relaxation « relax ( x, v ) » dit si, oui ou non, le poids du sommet « v » est resté stable.Lopération de relaxation « relax ( x, v ) » dit si, oui ou non, le poids du sommet « v » est resté stable. fonction relax ( x, v ) si D ( x ) + M ( x, v ) < D ( v ) D ( v ) <- D ( x ) + M ( x, v ) ; P ( v ) <- x ; rendre ( FAUX ) ; sinon rendre ( VRAI ) ;

162 21 février 2006Cours de graphes 2 - Intranet162 Connexité – chemins les plus légers Lopération de relaxation « relax ( x, v ) » dit si, oui ou non, le poids du sommet « v » est resté stable.Lopération de relaxation « relax ( x, v ) » dit si, oui ou non, le poids du sommet « v » est resté stable. fonction relax ( x, v ) si D ( x ) + M ( x, v ) < D ( v ) D ( v ) <- D ( x ) + M ( x, v ) ; P ( v ) <- x ; rendre ( FAUX ) ; sinon rendre ( VRAI ) ;

163 21 février 2006Cours de graphes 2 - Intranet163 Connexité – chemins les plus légers Le code presque correct :Le code presque correct : pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; repeter stable <- VRAI ; pour tout u différent de s pour tout v qui est voisin de u stable <- stable & relax ( u, v ) ; jusqua stable = VRAI ;

164 21 février 2006Cours de graphes 2 - Intranet164 Connexité – chemins les plus légers Le code presque correct :Le code presque correct : pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; repeter stable <- VRAI ; pour tout u différent de s pour tout v qui est voisin de u stable <- stable & relax ( u, v ) ; jusqua stable = VRAI ; La même initialisation !

165 21 février 2006Cours de graphes 2 - Intranet165 Connexité – chemins les plus légers Le code presque correct :Le code presque correct : pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; repeter stable <- VRAI ; pour tout u différent de s pour tout v qui est voisin de u stable <- stable & relax ( u, v ) ; jusqua stable = VRAI ; La même initialisation ! Nous relaxons tout ! ! !

166 21 février 2006Cours de graphes 2 - Intranet166 Connexité – chemins les plus légers Le code presque correct :Le code presque correct : pour tout u : D ( u ) <- + ; D ( s ) <- 0 ; pour tout u : P ( u ) <- ?? ; P ( s ) <- s ; repeter stable <- VRAI ; pour tout u différent de s pour tout v qui est voisin de u stable <- stable & relax ( u, v ) ; jusqua stable = VRAI ; La même initialisation ! Nous relaxons tout ! ! ! Nous nous arrêtons lorsquaucun poids na pu être réduit au dernier passage !

167 21 février 2006Cours de graphes 2 - Intranet167 Connexité – chemins les plus légers Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifsCalculer les plus courts chemins ou les chemins les plus légers avec des poids positifs –revient à ne considérer que des chemins simples ! ! ! ! ! !

168 21 février 2006Cours de graphes 2 - Intranet168 Connexité – chemins les plus légers Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifsCalculer les plus courts chemins ou les chemins les plus légers avec des poids positifs –revient à ne considérer que des chemins simples ! ! ! ! ! ! Lalgorithme que nous avons construit sarrête dans ces cas !Lalgorithme que nous avons construit sarrête dans ces cas !

169 21 février 2006Cours de graphes 2 - Intranet169 Connexité – chemins les plus légers Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifsCalculer les plus courts chemins ou les chemins les plus légers avec des poids positifs –revient à ne considérer que des chemins simples ! ! ! ! ! ! Lalgorithme que nous avons construit sarrête dans ces cas !Lalgorithme que nous avons construit sarrête dans ces cas ! Sil y a des cycles de poids négatifs :Sil y a des cycles de poids négatifs : –le chemin le plus léger ne sera plus un chemin simple, –lalgorithme va boucler !

170 21 février 2006Cours de graphes 2 - Intranet170 Connexité – chemins les plus légers Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifsCalculer les plus courts chemins ou les chemins les plus légers avec des poids positifs –revient à ne considérer que des chemins simples ! ! ! ! ! ! Lalgorithme que nous avons construit sarrête dans ces cas !Lalgorithme que nous avons construit sarrête dans ces cas ! Sil y a des cycles de poids négatifs :Sil y a des cycles de poids négatifs : –le chemin le plus léger ne sera plus un chemin simple, –lalgorithme va boucler ! Il faut un garde-fou :Il faut un garde-fou : –Pour « n » sommets, le chemin simple le plus long ne dépasse pas « n – 1 » étapes.

171 21 février 2006Cours de graphes 2 - Intranet171 Connexité – chemins les plus légers Un code correct :Un code correct :... k <- 0 ; repeter stable <- VRAI ; pour tout u différent de s pour tout v qui est voisin de u stable <- stable & relax ( u, v ) ; k <- k + 1 ; jusqua stable = VRAI ou k > n – 1 si k > n – 1 Il y a des cycles de poids négatifs ;

172 21 février 2006Cours de graphes 2 - Intranet172 Connexité – chemins les plus légers Un code correct :Un code correct :... k <- 0 ; repeter stable <- VRAI ; pour tout u différent de s pour tout v qui est voisin de u stable <- stable & relax ( u, v ) ; k <- k + 1 ; jusqua stable = VRAI ou k > n – 1 si k > n – 1 Il y a des cycles de poids négatifs ; Nous comptons et limitons le nombre de tours de boucle !

173 21 février 2006Cours de graphes 2 - Intranet173 Connexité – chemins les plus légers Un code correct :Un code correct :... k <- 0 ; repeter stable <- VRAI ; pour tout u différent de s pour tout v qui est voisin de u stable <- stable & relax ( u, v ) ; k <- k + 1 ; jusqua stable = VRAI ou k > n – 1 si k > n – 1 Il y a des cycles de poids négatifs ; Nous comptons et limitons le nombre de tours de boucle ! Si « k » atteint « n » cest quil y a des boucles de poids négatifs !

174 21 février 2006Cours de graphes 2 - Intranet174 Connexité – chemins les plus légers La preuve de correction :La preuve de correction : La longueur daucun chemin simple nexcède « | V | - 1 ».La longueur daucun chemin simple nexcède « | V | - 1 ».

175 21 février 2006Cours de graphes 2 - Intranet175 Connexité – chemins les plus légers La preuve de correction :La preuve de correction : La longueur daucun chemin simple nexcède « | V | - 1 ».La longueur daucun chemin simple nexcède « | V | - 1 ». Soit le chemin simple le plus léger de « s » vers « u » :Soit le chemin simple le plus léger de « s » vers « u » : avec f <= | V | - 1 et u = a avec f <= | V | - 1 et u = a sa... 1 a f f

176 21 février 2006Cours de graphes 2 - Intranet176 Connexité – chemins les plus légers La preuve de correction :La preuve de correction : La longueur daucun chemin simple nexcède « | V | - 1 ».La longueur daucun chemin simple nexcède « | V | - 1 ». Soit le chemin simple le plus léger de « s » vers « u » :Soit le chemin simple le plus léger de « s » vers « u » : avec f <= | V | - 1 et u = a avec f <= | V | - 1 et u = a Après le i tour de boucle : D ( a ) = d ( s, a ).Après le i tour de boucle : D ( a ) = d ( s, a ). sa... 1 a f f e ii

177 21 février 2006Cours de graphes 2 - Intranet177 Connexité – chemins les plus légers La preuve de correction :La preuve de correction : La longueur daucun chemin simple nexcède « | V | - 1 ».La longueur daucun chemin simple nexcède « | V | - 1 ». Soit le chemin simple le plus léger de « s » vers « u » :Soit le chemin simple le plus léger de « s » vers « u » : avec f <= | V | - 1 et u = a avec f <= | V | - 1 et u = a Après le i tour de boucle : D ( a ) = d ( s, a ).Après le i tour de boucle : D ( a ) = d ( s, a ). –Trivial, pour i = 0, cest-à-dire pour « s » ! sa... 1 a f f e ii

178 21 février 2006Cours de graphes 2 - Intranet178 Connexité – chemins les plus légers La preuve de correction :La preuve de correction : La longueur daucun chemin simple nexcède « | V | - 1 ».La longueur daucun chemin simple nexcède « | V | - 1 ». Soit le chemin simple le plus léger de « s » vers « u » :Soit le chemin simple le plus léger de « s » vers « u » : avec f <= | V | - 1 et u = a avec f <= | V | - 1 et u = a Après le i tour de boucle : D ( a ) = d ( s, a ).Après le i tour de boucle : D ( a ) = d ( s, a ). –Trivial, pour i = 0, cest-à-dire pour « s » ! –Si cest vrai pour « i », le i+1 tour calcule : D ( a ) = relax ( a, a ) = d ( s, a ) D ( a ) = relax ( a, a ) = d ( s, a ) sa... 1 a f f e ii e ii+1i+1i+1

179 21 février 2006Cours de graphes 2 - Intranet179 Connexité – chemins les plus légers La preuve de correction :La preuve de correction : La longueur daucun chemin simple nexcède « | V | - 1 ».La longueur daucun chemin simple nexcède « | V | - 1 ». Soit le chemin simple le plus léger de « s » vers « u » :Soit le chemin simple le plus léger de « s » vers « u » : avec f <= | V | - 1 et u = a avec f <= | V | - 1 et u = a Après le i tour de boucle : D ( a ) = d ( s, a ).Après le i tour de boucle : D ( a ) = d ( s, a ). –Trivial, pour i = 0, cest-à-dire pour « s » ! –Si cest vrai pour « i », le i+1 tour calcule : D ( a ) = relax ( a, a ) = d ( s, a ) D ( a ) = relax ( a, a ) = d ( s, a ) Après le tour de boucle « f » : D ( u ) = D ( a ) = d ( s, a )Après le tour de boucle « f » : D ( u ) = D ( a ) = d ( s, a ) sa... 1 a f f e ii e ii+1i+1i+1 ff

180 21 février 2006Cours de graphes 2 - Intranet180 Connexité – chemins les plus légers La preuve de correction :La preuve de correction : La longueur daucun chemin simple nexcède « | V | - 1 ».La longueur daucun chemin simple nexcède « | V | - 1 ». Soit le chemin simple le plus léger de « s » vers « u » :Soit le chemin simple le plus léger de « s » vers « u » : avec f <= | V | - 1 et u = a avec f <= | V | - 1 et u = a Après le i tour de boucle : D ( a ) = d ( s, a ).Après le i tour de boucle : D ( a ) = d ( s, a ). –Trivial, pour i = 0, cest-à-dire pour « s » ! –Si cest vrai pour « i », le i+1 tour calcule : D ( a ) = relax ( a, a ) = d ( s, a ) D ( a ) = relax ( a, a ) = d ( s, a ) Après le tour de boucle « f » : D ( u ) = D ( a ) = d ( s, a )Après le tour de boucle « f » : D ( u ) = D ( a ) = d ( s, a ) sa... 1 a f f e ii e ii+1i+1i+1 ff

181 21 février 2006Cours de graphes 2 - Intranet181 Connexité – chemins les plus légers La preuve de correction (suite) :La preuve de correction (suite) : Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers !Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers !

182 21 février 2006Cours de graphes 2 - Intranet182 Connexité – chemins les plus légers La preuve de correction (suite) :La preuve de correction (suite) : Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers !Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers ! Sil y a encore des modifications de poids au-delà de cette itération, cest quil existe des cycles de poids négatifs !Sil y a encore des modifications de poids au-delà de cette itération, cest quil existe des cycles de poids négatifs !

183 21 février 2006Cours de graphes 2 - Intranet183 Connexité – chemins les plus légers La preuve de correction (suite) :La preuve de correction (suite) : Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers !Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers ! Sil y a encore des modifications de poids au-delà de cette itération, cest quil existe des cycles de poids négatifs !Sil y a encore des modifications de poids au-delà de cette itération, cest quil existe des cycles de poids négatifs ! La complexité :La complexité : –en présence de cycles de poids négatifs : ( | V | * | E | )

184 21 février 2006Cours de graphes 2 - Intranet184 Connexité – chemins les plus légers La preuve de correction (suite) :La preuve de correction (suite) : Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers !Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers ! Sil y a encore des modifications de poids au-delà de cette itération, cest quil existe des cycles de poids négatifs !Sil y a encore des modifications de poids au-delà de cette itération, cest quil existe des cycles de poids négatifs ! La complexité :La complexité : –en présence de cycles de poids négatifs : ( | V | * | E | ) –en labsence de cycles de poids négatifs : ( ( G ) * | E | )

185 21 février 2006Cours de graphes 2 - Intranet185 Connexité – chemins les plus légers La preuve de correction (suite) :La preuve de correction (suite) : Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers !Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers ! Sil y a encore des modifications de poids au-delà de cette itération, cest quil existe des cycles de poids négatifs !Sil y a encore des modifications de poids au-delà de cette itération, cest quil existe des cycles de poids négatifs ! La complexité :La complexité : –en présence de cycles de poids négatifs : ( | V | * | E | ) –en labsence de cycles de poids négatifs : ( ( G ) * | E | ) Le diamètre ( G ) est la longueur du plus long chemin simple !Le diamètre ( G ) est la longueur du plus long chemin simple !

186 21 février 2006Cours de graphes 2 - Intranet186 Synthèse Les plus courts chemins,Les plus courts chemins, les chemins les plus légers :les chemins les plus légers : –à laide de la vague, –à laide de la multiplication, –à laide de Floyd-Warshall. –Algorithmes de Dijkstra et Bellmann-Ford.

187 21 février 2006Cours de graphes 2 - Intranet187 m E r C i e T O n N e J o U r N é E ! ! ! O n N e J o U r N é E ! ! ! o U b L i E z P a S d E o U b L i E z P a S d E p R é P a R e R v O s T D ! ! !


Télécharger ppt "21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins les plus légers : à laide de la vague, à laide de la."

Présentations similaires


Annonces Google