21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins...

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

Transcript of 21 février 2006Cours de graphes 2 - Intranet1 Cours de graphes Les plus courts chemins, les chemins...

Page 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.

21 février 2006 Cours de graphes 2 - Intranet 1

Cours de graphesCours de graphes

Les plus courts chemins,Les plus courts chemins,

les chemins les plus légers :les chemins les plus légers :

à l’aide de la vague,à l’aide de la vague,

à l’aide de la multiplication,à l’aide de la multiplication,

à l’aide de Floyd-Warshall.à l’aide de Floyd-Warshall.

Algorithmes de Dijkstra et Bellmann-Algorithmes de Dijkstra et Bellmann-Ford.Ford.

Page 2: 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.

21 février 2006 Cours de graphes 2 - Intranet 2

Les grandes lignes du coursLes grandes lignes du cours

•Définitions de baseDéfinitions de base•ConnexitéConnexité•Les plus courts cheminsLes plus courts chemins•Dijkstra et Bellmann-FordDijkstra et Bellmann-Ford•ArbresArbres•Arbres de recouvrement minimaux Arbres de recouvrement minimaux •Problèmes de flotsProblèmes de flots•Coloriage de graphesColoriage de graphes•CouplageCouplage•Chemins d’Euler et de HamiltonChemins d’Euler et de Hamilton•Problèmes NP-completsProblèmes NP-complets

Page 3: 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.

21 février 2006 Cours de graphes 2 - Intranet 3

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-Warshall

( | E | ) =( | E | ) = O ( | V |^2 )O ( | V |^2 )

( | V |^3 *( | V |^3 * log( | V | ) )log( | V | ) )

( | V |^3 )( | V |^3 )

Page 4: 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.

21 février 2006 Cours de graphes 2 - Intranet 4

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

Page 5: 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.

21 février 2006 Cours de graphes 2 - Intranet 5

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• 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 Nous rajoutons une pondération strictement positive et nous allons calculer :et nous allons calculer :

– les chemins les plus légers ! les chemins les plus légers !

Page 6: 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.

21 février 2006 Cours de graphes 2 - Intranet 6

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La notion de distance est donné par le nombre La notion de distance est donné par le nombre d’arêtes qu’il faut traverser au moins !d’arêtes qu’il faut traverser au moins !

Page 7: 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.

21 février 2006 Cours de graphes 2 - Intranet 7

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La notion de distance est donné par le nombre La notion de distance est donné par le nombre d’arêtes qu’il faut traverser au moins !d’arêtes qu’il faut traverser au moins !

• L’algorithme de la « vague » :L’algorithme de la « vague » :

– Nous choisissons un sommet « u » sec et le mouillons, Nous choisissons un sommet « u » sec et le mouillons,

Page 8: 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.

21 février 2006 Cours de graphes 2 - Intranet 8

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La notion de distance est donné par le nombre La notion de distance est donné par le nombre d’arêtes qu’il faut traverser au moins !d’arêtes qu’il faut traverser au moins !

• L’algorithme de la « vague » :L’algorithme de la « vague » :

– Nous choisissons un sommet « u » sec et le mouillons, Nous choisissons un sommet « u » sec et le mouillons, – à l’étape 1, nous mouillons ses voisins,à l’étape 1, nous mouillons ses voisins,

Page 9: 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.

21 février 2006 Cours de graphes 2 - Intranet 9

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La notion de distance est donné par le nombre La notion de distance est donné par le nombre d’arêtes qu’il faut traverser au moins !d’arêtes qu’il faut traverser au moins !

• L’algorithme de la « vague » :L’algorithme de la « vague » :

– Nous choisissons un sommet « u » sec et le mouillons, Nous choisissons un sommet « u » sec et le mouillons, – à l’étape 1, nous mouillons ses voisins,à l’étape 1, nous mouillons ses voisins,– à l’étape 2, nous mouillons les voisins des voisins , . . . à l’étape 2, nous mouillons les voisins des voisins , . . .

Page 10: 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.

21 février 2006 Cours de graphes 2 - Intranet 10

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La notion de distance est donné par le nombre La notion de distance est donné par le nombre d’arêtes qu’il faut traverser au moins !d’arêtes qu’il faut traverser au moins !

• L’algorithme de la « vague » :L’algorithme de la « vague » :

– Nous choisissons un sommet « u » sec et le mouillons, Nous choisissons un sommet « u » sec et le mouillons, – à l’étape 1, nous mouillons ses voisins,à l’étape 1, nous mouillons ses voisins,– à l’étape 2, nous mouillons les voisins des voisins , . . . à l’étape 2, nous mouillons les voisins des voisins , . . .

Page 11: 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.

21 février 2006 Cours de graphes 2 - Intranet 11

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La notion de distance est donné par le nombre d’arêtes La notion de distance est donné par le nombre d’arêtes qu’il faut traverser au moins !qu’il faut traverser au moins !

• L’algorithme de la « vague » :L’algorithme de la « vague » :

– Nous choisissons un sommet « u » sec et le mouillons, Nous choisissons un sommet « u » sec et le mouillons, – à l’étape 1, nous mouillons ses voisins,à l’étape 1, nous mouillons ses voisins,– à l’étape 2, nous mouillons les voisins des voisins , . . . à l’étape 2, nous mouillons les voisins des voisins , . . .

• En temps En temps ( | E | ) = O ( | E | ) = O( | V |^2 ) , nous connaissons les ( | V |^2 ) , nous connaissons les plus courts chemins du sommet « u » vers les autres !plus courts chemins du sommet « u » vers les autres !

Page 12: 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.

21 février 2006 Cours de graphes 2 - Intranet 12

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

Page 13: 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.

21 février 2006 Cours de graphes 2 - Intranet 13

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

Etape 0 Etape 0 -- étape 1 étape 1 -- étape 2 étape 2 -- étape 3 étape 3

Page 14: 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.

21 février 2006 Cours de graphes 2 - Intranet 14

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

uu

Etape 0Etape 0 -- étape 1 étape 1 -- étape 2 étape 2 -- étape 3 étape 3

Page 15: 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.

21 février 2006 Cours de graphes 2 - Intranet 15

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

uu

Etape 0Etape 0 -- étape 1étape 1 -- étape 2 étape 2 -- étape 3 étape 3

Page 16: 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.

21 février 2006 Cours de graphes 2 - Intranet 16

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

uu

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3 étape 3

Page 17: 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.

21 février 2006 Cours de graphes 2 - Intranet 17

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

uu

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3 étape 3

Touché une seconde fois !Touché une seconde fois !

Page 18: 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.

21 février 2006 Cours de graphes 2 - Intranet 18

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

uu

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3 étape 3

Touché une seconde fois !Touché une seconde fois !

Touché deux fois !Touché deux fois !

Page 19: 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.

21 février 2006 Cours de graphes 2 - Intranet 19

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

uu

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3étape 3

Page 20: 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.

21 février 2006 Cours de graphes 2 - Intranet 20

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La connaissance de d ( u , La connaissance de d ( u , vv ) et d ( u , ) et d ( u , ww ) ne permet ) ne permet pas de dire grand-chose sur d ( pas de dire grand-chose sur d ( vv , , ww ) ! ) !

Page 21: 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.

21 février 2006 Cours de graphes 2 - Intranet 21

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La connaissance de d ( u , La connaissance de d ( u , vv ) et d ( u , ) et d ( u , ww ) ne permet ) ne permet pas de dire grand-chose sur d ( pas de dire grand-chose sur d ( vv , , ww ) ! ) !

uuvv ww

Page 22: 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.

21 février 2006 Cours de graphes 2 - Intranet 22

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La connaissance de d ( u , La connaissance de d ( u , vv ) et d ( u , ) et d ( u , ww ) ne permet ) ne permet pas de dire grand-chose sur d ( pas de dire grand-chose sur d ( vv , , ww ) ! ) !

uuvv ww

uu

vv

ww

Page 23: 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.

21 février 2006 Cours de graphes 2 - Intranet 23

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La connaissance de d ( u , La connaissance de d ( u , vv ) et d ( u , ) et d ( u , ww ) ne permet ) ne permet pas de dire grand-chose sur d ( pas de dire grand-chose sur d ( vv , , ww ) ! ) !

• 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 !

uuvv ww

uu

vv

ww

Page 24: 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.

21 février 2006 Cours de graphes 2 - Intranet 24

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La connaissance de d ( u , La connaissance de d ( u , vv ) et d ( u , ) et d ( u , ww ) ne permet pas ) ne permet pas de dire grand-chose sur d ( de dire grand-chose sur d ( vv , , ww ) ! ) !

• 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 En temps ( | V | * | E | ) = O ( | V | * | E | ) = O( | V |^3 ) , nous ( | V |^3 ) , nous connaissons les plus courts chemins de tout sommet à tout connaissons les plus courts chemins de tout sommet à tout sommet !sommet !

uuvv ww

uu

vv

ww

Page 25: 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.

21 février 2006 Cours de graphes 2 - Intranet 25

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 )

Page 26: 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.

21 février 2006 Cours de graphes 2 - Intranet 26

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La multiplication de matrices :La multiplication de matrices :

Page 27: 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.

21 février 2006 Cours de graphes 2 - Intranet 27

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la Nous prenons une matrice avec des « 0 » sur la diagonale,diagonale,

– des « 1 » lorsque l’arête existe et des « des « 1 » lorsque l’arête existe et des «  » sinon » sinon

Page 28: 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.

21 février 2006 Cours de graphes 2 - Intranet 28

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la Nous prenons une matrice avec des « 0 » sur la diagonale,diagonale,

– des « 1 » lorsque l’arête existe et des « des « 1 » lorsque l’arête existe et des «  » sinon » sinon

• Nous effectuons le calcul suivant : Nous effectuons le calcul suivant :

M * M’ ( i , j ) = M * M’ ( i , j ) = minmin M ( i , k ) + M’ ( k , j ) M ( i , k ) + M’ ( k , j )kk

Page 29: 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.

21 février 2006 Cours de graphes 2 - Intranet 29

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la Nous prenons une matrice avec des « 0 » sur la diagonale,diagonale,

– des « 1 » lorsque l’arête existe et des « des « 1 » lorsque l’arête existe et des «  » sinon » sinon

• Nous effectuons le calcul suivant : Nous effectuons le calcul suivant :

M * M’ ( i , j ) = M * M’ ( i , j ) = minmin M ( i , k ) + M’ ( k , j ) M ( i , k ) + M’ ( k , j )

• Nous calculons : M Nous calculons : M --> M^2 > M^2 --> M^4 > M^4 --> . . . > . . .

kk

Page 30: 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.

21 février 2006 Cours de graphes 2 - Intranet 30

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la diagonale,Nous prenons une matrice avec des « 0 » sur la diagonale,– des « 1 » lorsque l’arête existe et des « des « 1 » lorsque l’arête existe et des «  » sinon » sinon

• Nous effectuons le calcul suivant : Nous effectuons le calcul suivant :

M * M’ ( i , j ) = M * M’ ( i , j ) = minmin M ( i , k ) + M’ ( k , j ) M ( i , k ) + M’ ( k , j )

• Nous calculons : M Nous calculons : M --> M^2 > M^2 --> M^4 > M^4 --> . . . > . . .

• Propriété : M^( 2 * i ) = M^i * M^i contient tous les plus Propriété : M^( 2 * i ) = M^i * M^i contient tous les plus courts chemins de longueur au plus 2 * i , c’est-à-dire qu’elle courts chemins de longueur au plus 2 * i , c’est-à-dire qu’elle contient des « +contient des « + » et des valeurs dans { 0 , . . . , 2 * i } . » et des valeurs dans { 0 , . . . , 2 * i } .

kk

Page 31: 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.

21 février 2006 Cours de graphes 2 - Intranet 31

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la diagonale,Nous prenons une matrice avec des « 0 » sur la diagonale,– des « 1 » lorsque l’arête existe et des « des « 1 » lorsque l’arête existe et des «  » sinon » sinon

• Nous effectuons le calcul suivant : Nous effectuons le calcul suivant :

M * M’ ( i , j ) = M * M’ ( i , j ) = minmin M ( i , k ) + M’ ( k , j ) M ( i , k ) + M’ ( k , j )

• Nous calculons : M Nous calculons : M --> M^2 > M^2 --> M^4 > M^4 --> . . . > . . .

• Propriété : M^( 2 * i ) = M^i * M^i contient tous les plus courts Propriété : M^( 2 * i ) = M^i * M^i contient tous les plus courts chemins de longueur au plus 2 * i , c’est-à-dire qu’elle contient des chemins de longueur au plus 2 * i , c’est-à-dire qu’elle contient des « +« + » et des valeurs dans { 0 , . . . , 2 * i } . » et des valeurs dans { 0 , . . . , 2 * i } .

• Il suffit de calculer M^k avec k >= | V |Il suffit de calculer M^k avec k >= | V |--1 à l’aide de 1 à l’aide de O O ( log( | V | ) ) élévations au carré !( log( | V | ) ) élévations au carré !

kk

Page 32: 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.

21 février 2006 Cours de graphes 2 - Intranet 32

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• Preuve de la propriété :Preuve de la propriété :

– La matrice M = M^1 contient tou(te)s les La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur (longueurs des) plus courts chemins de longueur au plus 1 .au plus 1 .

Page 33: 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.

21 février 2006 Cours de graphes 2 - Intranet 33

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• Preuve de la propriété :Preuve de la propriété :

– La matrice M = M^1 contient tou(te)s les La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur (longueurs des) plus courts chemins de longueur au plus 1 .au plus 1 .

– Hypothèse d’induction : M^i contient tous les . . .Hypothèse d’induction : M^i contient tous les . . .

Page 34: 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.

21 février 2006 Cours de graphes 2 - Intranet 34

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• Preuve de la propriété :Preuve de la propriété :

– La matrice M = M^1 contient tou(te)s les La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur (longueurs des) plus courts chemins de longueur au plus 1 .au plus 1 .

– Hypothèse d’induction : M^i contient tous les . . .Hypothèse d’induction : M^i contient tous les . . .

M^( 2 * i ) ( u , v ) <> +M^( 2 * i ) ( u , v ) <> +

Page 35: 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.

21 février 2006 Cours de graphes 2 - Intranet 35

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• Preuve de la propriété :Preuve de la propriété :

– La matrice M = M^1 contient tou(te)s les La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur (longueurs des) plus courts chemins de longueur au plus 1 .au plus 1 .

– Hypothèse d’induction : M^i contient tous les . . .Hypothèse d’induction : 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 ) <> +

Page 36: 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.

21 février 2006 Cours de graphes 2 - Intranet 36

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• Preuve de la propriété :Preuve de la propriété :

– La matrice M = M^1 contient tou(te)s les La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au (longueurs des) plus courts chemins de longueur au plus 1 .plus 1 .

– Hypothèse d’induction : M^i contient tous les . . .Hypothèse d’induction : 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 ) <> +w tel que M^i ( u , w ) + M^i ( w , v ) <> +

et deet de valeur minimale.valeur minimale.

Page 37: 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.

21 février 2006 Cours de graphes 2 - Intranet 37

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• Preuve de la propriété :Preuve de la propriété :

– La matrice M = M^1 contient tou(te)s les (longueurs La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1 .des) plus courts chemins de longueur au plus 1 .

– Hypothèse d’induction : M^i contient tous les . . .Hypothèse d’induction : 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 ) <> +w tel que M^i ( u , w ) + M^i ( w , v ) <> + et et

dede valeur minimale.valeur minimale. M^i ( u , w ) <> +M^i ( u , w ) <> + et M^i ( w , v ) <> + et M^i ( w , v ) <> +

Page 38: 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.

21 février 2006 Cours de graphes 2 - Intranet 38

Connexité – plus courts cheminsConnexité – 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) La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1 .plus courts chemins de longueur au plus 1 .

– Hypothèse d’induction : M^i contient tous les . . .Hypothèse d’induction : 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 ) <> +w tel que M^i ( u , w ) + M^i ( w , v ) <> + et de et de valeur minimale.valeur minimale. M^i ( u , w ) <> +M^i ( u , w ) <> + et M^i ( w , v ) <> + et M^i ( w , v ) <> + Les plus courts chemins de ( u ; w ) et de ( w ; v ) sontLes plus courts chemins de ( u ; w ) et de ( w ; v ) sont de longueur au plus i.de longueur au plus i.

Page 39: 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.

21 février 2006 Cours de graphes 2 - Intranet 39

Connexité – plus courts cheminsConnexité – 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 La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1 .courts chemins de longueur au plus 1 .

– Hypothèse d’induction : M^i contient tous les . . .Hypothèse d’induction : 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 ) <> +w tel que M^i ( u , w ) + M^i ( w , v ) <> + et de et de valeur minimale.valeur minimale. M^i ( u , w ) <> +M^i ( u , w ) <> + et M^i ( w , v ) <> + et M^i ( w , v ) <> + Les plus courts chemins de ( u ; w ) et de ( w ; v ) sontLes 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 deLe plus court chemin de « u » vers « v » est de longueur au plus 2 * i et c’est ( u ; w ; v ) .longueur au plus 2 * i et c’est ( u ; w ; v ) .

Page 40: 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.

21 février 2006 Cours de graphes 2 - Intranet 40

Connexité – plus courts cheminsConnexité – 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 La matrice M = M^1 contient tou(te)s les (longueurs des) plus courts chemins de longueur au plus 1 .courts chemins de longueur au plus 1 .

– Hypothèse d’induction : M^i contient tous les . . .Hypothèse d’induction : 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 ) <> + ww tel que M^i ( u , w ) + M^i ( w , v ) <> + tel que M^i ( u , w ) + M^i ( w , v ) <> + et de et de valeur minimale.valeur minimale. M^i ( u , w ) <> +M^i ( u , w ) <> + et M^i ( w , v ) <> + et M^i ( w , v ) <> + Les plus courts chemins de ( u ; w ) et de ( w ; v ) sontLes 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 deLe plus court chemin de « u » vers « v » est de longueur au plus 2 * i et c’est longueur au plus 2 * i et c’est ( u ; w ; v )( u ; w ; v ) . .

Page 41: 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.

21 février 2006 Cours de graphes 2 - Intranet 41

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 | ) )

Page 42: 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.

21 février 2006 Cours de graphes 2 - Intranet 42

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• M est la matrice d’adjacence avec des « 0 » sur la M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « diagonale, des « 1 » lorsque l’arête existe et des «  »  » sinonsinon

(0)(0)

Page 43: 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.

21 février 2006 Cours de graphes 2 - Intranet 43

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• M est la matrice d’adjacence avec des « 0 » sur la M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « diagonale, des « 1 » lorsque l’arête existe et des «  »  » sinonsinon

• M de Floyd-Warshall contient par hypothèse les M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à l’aide de sommets plus courts chemins construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .intermédiaires dans l’ensemble { 0 , . . . , k-1 } .

(0)(0)

(k-1)(k-1)

Page 44: 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.

21 février 2006 Cours de graphes 2 - Intranet 44

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• M est la matrice d’adjacence avec des « 0 » sur la M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « diagonale, des « 1 » lorsque l’arête existe et des «  »  » sinonsinon

• M de Floyd-Warshall contient par hypothèse les M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à l’aide de sommets plus courts chemins construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .intermédiaires dans l’ensemble { 0 , . . . , k-1 } .

M ( u , v ) = M ( u , v ) = minmin ( , ( ,

))

(0)(0)

(k)(k)

(k-1)(k-1)

Page 45: 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.

21 février 2006 Cours de graphes 2 - Intranet 45

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• M est la matrice d’adjacence avec des « 0 » sur la M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « diagonale, des « 1 » lorsque l’arête existe et des «  »  » sinonsinon

• M de Floyd-Warshall contient par hypothèse les M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à l’aide de sommets plus courts chemins construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .intermédiaires dans l’ensemble { 0 , . . . , k-1 } .

M ( u , v ) = M ( u , v ) = minmin ( , ( ,

))

(0)(0)

M ( u , v )M ( u , v )(k(k--1)1)(k)(k)

(k-1)(k-1)

Page 46: 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.

21 février 2006 Cours de graphes 2 - Intranet 46

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• M est la matrice d’adjacence avec des « 0 » sur la M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « diagonale, des « 1 » lorsque l’arête existe et des «  »  » sinonsinon

• M de Floyd-Warshall contient par hypothèse les M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à l’aide de sommets plus courts chemins construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .intermédiaires dans l’ensemble { 0 , . . . , k-1 } .

M ( u , v ) = M ( u , v ) = minmin ( , ( ,

))

(0)(0)

M ( u , k ) + M ( k , v )M ( u , k ) + M ( k , v )(k(k--1)1)

M ( u , v )M ( u , v )(k(k--1)1)

(k(k--1)1)

(k)(k)

(k-1)(k-1)

Page 47: 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.

21 février 2006 Cours de graphes 2 - Intranet 47

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• M est la matrice d’adjacence avec des « 0 » sur la M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « diagonale, des « 1 » lorsque l’arête existe et des «  » sinon » sinon

• M de Floyd-Warshall contient par hypothèse les plus M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à l’aide de sommets intermédiaires courts chemins construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .dans l’ensemble { 0 , . . . , k-1 } .

M ( u , v ) = M ( u , v ) = minmin ( , ( ,

))

• Le plus court chemin avec des sommets dans { 1 , . . . , k } :Le plus court chemin avec des sommets dans { 1 , . . . , k } :

– peut, soit, ne pas peut, soit, ne pas passer par « k »,passer par « k »,

(0)(0)

M ( u , k ) + M ( k , v )M ( u , k ) + M ( k , v )(k(k--1)1)

M ( u , v )M ( u , v )(k(k--1)1)

(k(k--1)1)

(k)(k)

(k-1)(k-1)

Page 48: 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.

21 février 2006 Cours de graphes 2 - Intranet 48

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• M est la matrice d’adjacence avec des « 0 » sur la diagonale, M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « des « 1 » lorsque l’arête existe et des «  » sinon » sinon

• M de Floyd-Warshall contient par hypothèse les plus M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à l’aide de sommets intermédiaires courts chemins construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .dans l’ensemble { 0 , . . . , k-1 } .

M ( u , v ) = M ( u , v ) = minmin ( , ( ,

))

• Le plus court chemin avec des sommets dans { 1 , . . . , k } :Le plus court chemin avec des sommets dans { 1 , . . . , k } :

– peut, soit, ne pas peut, soit, ne pas passer par « k »,passer par « k »,– peut, soit, passer par « k » !peut, soit, passer par « k » !

(0)(0)

M ( u , k ) + M ( k , v )M ( u , k ) + M ( k , v )(k(k--1)1)

M ( u , v )M ( u , v )(k(k--1)1)

(k(k--1)1)

(k)(k)

(k-1)(k-1)

Page 49: 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.

21 février 2006 Cours de graphes 2 - Intranet 49

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

• M est la matrice d’adjacence avec des « 0 » sur la diagonale, M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « des « 1 » lorsque l’arête existe et des «  » sinon » sinon

• M de Floyd-Warshall contient par hypothèse les plus courts M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à l’aide de sommets intermédiaires dans chemins construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .l’ensemble { 0 , . . . , k-1 } .

M ( u , v ) = M ( u , v ) = minmin ( , ( ,

))

• Le plus court chemin avec des sommets dans { 1 , . . . , k } :Le plus court chemin avec des sommets dans { 1 , . . . , k } :

– peut, soit, ne pas peut, soit, ne pas passer par « k »,passer par « k »,– peut, soit, passer par « k » !peut, soit, passer par « k » !

• M est la matrice recherchée !M est la matrice recherchée !

(0)(0)

M ( u , k ) + M ( k , v )M ( u , k ) + M ( k , v )(k(k--1)1)

M ( u , v )M ( u , v )(k(k--1)1)

(k(k--1)1)

(n)(n)

(k)(k)

(k-1)(k-1)

Page 50: 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.

21 février 2006 Cours de graphes 2 - Intranet 50

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 )

Page 51: 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.

21 février 2006 Cours de graphes 2 - Intranet 51

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

Page 52: 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.

21 février 2006 Cours de graphes 2 - Intranet 52

• 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 Nous rajoutons une pondération strictement positive et nous allons calculer :et nous allons calculer :

– les chemins les plus légers ! les chemins les plus légers !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 53: 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.

21 février 2006 Cours de graphes 2 - Intranet 53

• 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 Nous rajoutons une pondération strictement positive et nous allons calculer :et nous allons calculer :

– les chemins les plus légers ! les chemins les plus légers !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 54: 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.

21 février 2006 Cours de graphes 2 - Intranet 54

• Nous rajoutons une pondération strictement Nous rajoutons une pondération strictement positive et nous allons calculer :positive et nous allons calculer :

– les chemins les plus légers ! les chemins les plus légers !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 55: 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.

21 février 2006 Cours de graphes 2 - Intranet 55

• Nous rajoutons une pondération strictement Nous rajoutons une pondération strictement positive et nous allons calculer :positive et nous allons calculer :

– les chemins les plus légers ! les chemins les plus légers !

• En présence de poids négatifs, le problème pourrait En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif.cycles de poids négatif.

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 56: 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.

21 février 2006 Cours de graphes 2 - Intranet 56

• Nous rajoutons une pondération strictement Nous rajoutons une pondération strictement positive et nous allons calculer :positive et nous allons calculer :

– les chemins les plus légers ! les chemins les plus légers !

• En présence de poids négatifs, le problème pourrait En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif.cycles de poids négatif.

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

55

55

55

--1515

1010

Page 57: 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.

21 février 2006 Cours de graphes 2 - Intranet 57

• Nous rajoutons une pondération strictement Nous rajoutons une pondération strictement positive et nous allons calculer :positive et nous allons calculer :

– les chemins les plus légers ! les chemins les plus légers !

• En présence de poids négatifs, le problème pourrait En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif.cycles de poids négatif.

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

55

55

55

--1515

1010

Cycle de poids négatif !Cycle de poids négatif !

Page 58: 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.

21 février 2006 Cours de graphes 2 - Intranet 58

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

Page 59: 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.

21 février 2006 Cours de graphes 2 - Intranet 59

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

Page 60: 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.

21 février 2006 Cours de graphes 2 - Intranet 60

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

3030 1010 55

55

1010

88

Etape 0 Etape 0 -- étape 1 étape 1 -- étape 2 étape 2 -- étape 3 étape 3

Page 61: 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.

21 février 2006 Cours de graphes 2 - Intranet 61

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

001010 55

55

1010

88

Etape 0Etape 0 -- étape 1 étape 1 -- étape 2 étape 2 -- étape 3 étape 3

3030

Page 62: 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.

21 février 2006 Cours de graphes 2 - Intranet 62

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

003030 1010

303055

5555

1010

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2 étape 2 -- étape 3 étape 3

Page 63: 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.

21 février 2006 Cours de graphes 2 - Intranet 63

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

003030 1010

3030 404055

5555

10101515

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3 étape 3

Page 64: 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.

21 février 2006 Cours de graphes 2 - Intranet 64

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

003030 1010

3030 404055

5555

10101515

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3 étape 3

Une vague qui se brise.Une vague qui se brise.Nous l’ignorons ! ! !Nous l’ignorons ! ! !

Page 65: 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.

21 février 2006 Cours de graphes 2 - Intranet 65

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

003030 1010

3030 404055

5555

10101515

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3 étape 3

Elle n’existe plus !Elle n’existe plus !

Page 66: 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.

21 février 2006 Cours de graphes 2 - Intranet 66

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

003030 1010

3030 404055

4545

5555

10101515

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3étape 3

2323

Page 67: 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.

21 février 2006 Cours de graphes 2 - Intranet 67

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être L’inégalité triangulaire peut ne pas être respectée !respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme de la vague (unique) ne marche plus ! ! !

003030 1010

3030 404055

4545

5555

10101515

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3étape 3

2323

Page 68: 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.

21 février 2006 Cours de graphes 2 - Intranet 68

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être respectée !L’inégalité triangulaire peut ne pas être respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme 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 », . . .

003030 1010

3030 404055

4545

5555

10101515

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3étape 3

2323

Page 69: 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.

21 février 2006 Cours de graphes 2 - Intranet 69

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être respectée !L’inégalité triangulaire peut ne pas être respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme 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 c’est fini ? ? ?Quand est-ce que c’est fini ? ? ?

003030 1010

3030 404055

4545

5555

10101515

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3étape 3

2323

Page 70: 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.

21 février 2006 Cours de graphes 2 - Intranet 70

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Le problème des chemins les plus légers :Le problème des chemins les plus légers :

– L’inégalité triangulaire peut ne pas être respectée !L’inégalité triangulaire peut ne pas être respectée !

• L’algorithme de la vague (unique) ne marche plus ! ! !L’algorithme 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 c’est fini ? ? ?Quand est-ce que c’est fini ? ? ?

003030 1010

3030 404055

4545

5555

10101515

88

Etape 0Etape 0 -- étape 1étape 1 -- étape 2étape 2 -- étape 3étape 3

2323

Page 71: 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.

21 février 2006 Cours de graphes 2 - Intranet 71

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Un cas pathologique :Un cas pathologique :

XX2020

88 55

2020

8855 55

2020

88

. . .. . .

Page 72: 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.

21 février 2006 Cours de graphes 2 - Intranet 72

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Un cas pathologique :Un cas pathologique :

XX2020

88 55

2020

8855 55

2020

88

. . .. . .YY

2 vagues2 vagues

Page 73: 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.

21 février 2006 Cours de graphes 2 - Intranet 73

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Un cas pathologique :Un cas pathologique :

XX2020

88 55

2020

8855 55

2020

88

. . .. . .YY

2 vagues2 vagues

TT

4 vagues4 vaguesdont 2 simultanéesdont 2 simultanées

Page 74: 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.

21 février 2006 Cours de graphes 2 - Intranet 74

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Un cas pathologique :Un cas pathologique :

2020

88 55

2020

8855 55

2020

88

. . .. . .YY

2 vagues2 vagues

TT

4 vagues4 vaguesdont 2 simultanéesdont 2 simultanées

O ( n / 3 )O ( n / 3 )vagues ! ! !vagues ! ! !

XX ZZ

Page 75: 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.

21 février 2006 Cours de graphes 2 - Intranet 75

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !N O N !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 76: 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.

21 février 2006 Cours de graphes 2 - Intranet 76

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !N O N !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 77: 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.

21 février 2006 Cours de graphes 2 - Intranet 77

• La multiplication de matrices :La multiplication de matrices :

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 78: 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.

21 février 2006 Cours de graphes 2 - Intranet 78

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la Nous prenons une matrice avec des « 0 » sur la diagonale,diagonale,

– le poids de l’arête lorsqu’elle existe et « le poids de l’arête lorsqu’elle existe et «  » sinon » sinon

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 79: 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.

21 février 2006 Cours de graphes 2 - Intranet 79

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la Nous prenons une matrice avec des « 0 » sur la diagonale,diagonale,

– le poids de l’arête lorsqu’elle existe et « le poids de l’arête lorsqu’elle existe et «  » sinon » sinon

• Nous effectuons le calcul suivant : Nous effectuons le calcul suivant :

M * M’ ( i , j ) = M * M’ ( i , j ) = minmin M ( i , k ) + M’ ( k , j ) M ( i , k ) + M’ ( k , j )kk

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 80: 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.

21 février 2006 Cours de graphes 2 - Intranet 80

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la Nous prenons une matrice avec des « 0 » sur la diagonale,diagonale,

– le poids de l’arête lorsqu’elle existe et « le poids de l’arête lorsqu’elle existe et «  » sinon » sinon

• Nous effectuons le calcul suivant : Nous effectuons le calcul suivant :

M * M’ ( i , j ) = M * M’ ( i , j ) = minmin M ( i , k ) + M’ ( k , j ) M ( i , k ) + M’ ( k , j )

• Nous calculons : M Nous calculons : M --> M^2 > M^2 --> M^4 > M^4 --> . . . > . . .

kk

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 81: 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.

21 février 2006 Cours de graphes 2 - Intranet 81

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la diagonale,Nous prenons une matrice avec des « 0 » sur la diagonale,– le poids de l’arête lorsqu’elle existe et « le poids de l’arête lorsqu’elle existe et «  » sinon » sinon

• Nous effectuons le calcul suivant : Nous effectuons le calcul suivant :

M * M’ ( i , j ) = M * M’ ( i , j ) = minmin M ( i , k ) + M’ ( k , j ) M ( i , k ) + M’ ( k , j )

• Nous calculons : M Nous calculons : M --> M^2 > M^2 --> M^4 > M^4 --> . . . > . . .

• Propriété : M^( 2 * i ) = M^i * M^i contient tous les Propriété : M^( 2 * i ) = M^i * M^i contient tous les chemins les plus légers de longueur au plus 2 * i (nombre chemins les plus légers de longueur au plus 2 * i (nombre d’arêtes).d’arêtes).

kk

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 82: 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.

21 février 2006 Cours de graphes 2 - Intranet 82

• La multiplication de matrices :La multiplication de matrices :

– Nous prenons une matrice avec des « 0 » sur la diagonale,Nous prenons une matrice avec des « 0 » sur la diagonale,– le poids de l’arête lorsqu’elle existe et « le poids de l’arête lorsqu’elle existe et «  » sinon » sinon

• Nous effectuons le calcul suivant : Nous effectuons le calcul suivant :

M * M’ ( i , j ) = M * M’ ( i , j ) = minmin M ( i , k ) + M’ ( k , j ) M ( i , k ) + M’ ( k , j )

• Nous calculons : M Nous calculons : M --> M^2 > M^2 --> M^4 > M^4 --> . . . > . . .

• Propriété : M^( 2 * i ) = M^i * M^i contient tous les chemins Propriété : M^( 2 * i ) = M^i * M^i contient tous les chemins les plus légers de longueur au plus 2 * i (nombre d’arêtes).les plus légers de longueur au plus 2 * i (nombre d’arêtes).

• Il suffit de calculer M^k avec k >= | V |Il suffit de calculer M^k avec k >= | V |--1 à l’aide de 1 à l’aide de O O ( log( | V | ) ) élévations au carré !( log( | V | ) ) élévations au carré !

kk

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 83: 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.

21 février 2006 Cours de graphes 2 - Intranet 83

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !N O N ! ( | V |^3 *( | V |^3 * log( | V | ) )log( | V | ) )

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 84: 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.

21 février 2006 Cours de graphes 2 - Intranet 84

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !N O N ! ( | V |^3 *( | V |^3 * log( | V | ) )log( | V | ) )

Le même programme !Le même programme !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 85: 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.

21 février 2006 Cours de graphes 2 - Intranet 85

• M est la matrice d’adjacence avec des « 0 » sur la M est la matrice d’adjacence avec des « 0 » sur la diagonale, diagonale, le poids de l’arête si elle existele poids de l’arête si elle existe et des «  et des «  »  » sinonsinon

(0)(0)

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 86: 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.

21 février 2006 Cours de graphes 2 - Intranet 86

• M est la matrice d’adjacence avec des « 0 » sur la diagonale, M est la matrice d’adjacence avec des « 0 » sur la diagonale, le le poids de l’arête si elle existepoids de l’arête si elle existe et des «  et des «  » sinon » sinon

• M de Floyd-Warshall contient par hypothèse les chemins les M de Floyd-Warshall contient par hypothèse les chemins les plus légers construits à l’aide de sommets intermédiaires dans plus légers construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .l’ensemble { 0 , . . . , k-1 } .

M ( u , v ) = M ( u , v ) = minmin ( , ( ,

))

• 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 peut, soit, ne pas passer par « k »,passer par « k »,– peut, soit, passer par « k » !peut, soit, passer par « k » !

• M est la matrice recherchée !M est la matrice recherchée !

(0)(0)

M ( u , k ) + M ( k , v )M ( u , k ) + M ( k , v )(k(k--1)1)

M ( u , v )M ( u , v )(k(k--1)1)

(k(k--1)1)

(n)(n)

(k)(k)

(k-1)(k-1)

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 87: 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.

21 février 2006 Cours de graphes 2 - Intranet 87

• M est la matrice d’adjacence avec des « 0 » sur la diagonale, M est la matrice d’adjacence avec des « 0 » sur la diagonale, le le poids de l’arête si elle existepoids de l’arête si elle existe et des «  et des «  » sinon » sinon

• M de Floyd-Warshall contient par hypothèse les chemins les M de Floyd-Warshall contient par hypothèse les chemins les plus légers construits à l’aide de sommets intermédiaires dans plus légers construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .l’ensemble { 0 , . . . , k-1 } .

M ( u , v ) = M ( u , v ) = minmin ( , ( ,

))

• 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 peut, soit, ne pas passer par « k »,passer par « k »,– peut, soit, passer par « k » !peut, soit, passer par « k » !

• M est la matrice recherchée !M est la matrice recherchée !

(0)(0)

M ( u , k ) + M ( k , v )M ( u , k ) + M ( k , v )(k(k--1)1)

M ( u , v )M ( u , v )(k(k--1)1)

(k(k--1)1)

(n)(n)

(k)(k)

(k-1)(k-1)

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 88: 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.

21 février 2006 Cours de graphes 2 - Intranet 88

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !N O N ! ( | V |^3 *( | V |^3 * log( | V | ) )log( | V | ) ) ( | V |^3 )( | V |^3 )

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 89: 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.

21 février 2006 Cours de graphes 2 - Intranet 89

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !N O N ! ( | V |^3 *( | V |^3 * log( | V | ) )log( | V | ) ) ( | V |^3 )( | V |^3 )

Le même programme !Le même programme !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 90: 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.

21 février 2006 Cours de graphes 2 - Intranet 90

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ConnexitéConnexité

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !N O N ! ( | V |^3 *( | V |^3 * log( | V | ) )log( | V | ) ) ( | V |^3 )( | V |^3 )

Page 91: 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.

21 février 2006 Cours de graphes 2 - Intranet 91

• Et les graphes orientés ? ? ?Et les graphes orientés ? ? ?

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 92: 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.

21 février 2006 Cours de graphes 2 - Intranet 92

• Et les graphes orientés ? ? ?Et les graphes orientés ? ? ?

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 93: 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.

21 février 2006 Cours de graphes 2 - Intranet 93

• Et les graphes orientés ? ? ?Et les graphes orientés ? ? ?

à ceci près que la connexité orientée par l’algorithme de la vagueà ceci près que la connexité orientée par l’algorithme de la vague

– nécessite de répéter l’algorithme pour chaque sommet nécessite de répéter l’algorithme pour chaque sommet

– et introduit une complexité en et introduit une complexité en ( | V | * | E | ) ! ( | V | * | E | ) !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 94: 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.

21 février 2006 Cours de graphes 2 - Intranet 94

Pour les graphes orientésPour les graphes orientés----------------------------------------------------------------------------------------------------------------------------------

ConnexitéConnexitéen orientéen orienté

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !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 )

Page 95: 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.

21 février 2006 Cours de graphes 2 - Intranet 95

Pour les graphes orientésPour les graphes orientés----------------------------------------------------------------------------------------------------------------------------------

ConnexitéConnexitéen orientéen orienté

Plus courtsPlus courts

Plus légersPlus légers

La vagueLa vague MultiplicationMultiplication Floyd-WarshallFloyd-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 !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 )

Page 96: 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.

21 février 2006 Cours de graphes 2 - Intranet 96

• Deux questions : Deux questions :

• La vague construit en temps O ( | E | ) le plus court La vague construit en temps O ( | E | ) le plus court chemin d’un sommet « u » quelconque vers tous les chemin d’un sommet « u » quelconque vers tous les autres sommets !autres sommets !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 97: 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.

21 février 2006 Cours de graphes 2 - Intranet 97

• Deux questions : Deux questions :

• La vague construit en temps O ( | E | ) le plus court La vague construit en temps O ( | E | ) le plus court chemin d’un sommet « u » quelconque vers tous les chemin d’un sommet « u » quelconque vers tous les autres sommets !autres sommets !

– Pouvons-nous calculer les chemins les plus légers de Pouvons-nous calculer les chemins les plus légers de « u » vers les autres sommets avec la même « u » vers les autres sommets avec la même complexité ?complexité ?

– Oui, c’est l’algorithme de Dijkstra !Oui, c’est l’algorithme de Dijkstra !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 98: 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.

21 février 2006 Cours de graphes 2 - Intranet 98

• Deux questions : Deux questions :

• La vague construit en temps O ( | E | ) le plus court La vague construit en temps O ( | E | ) le plus court chemin d’un sommet « u » quelconque vers tous les chemin d’un sommet « u » quelconque vers tous les autres sommets !autres sommets !

– Pouvons-nous calculer les chemins les plus légers de Pouvons-nous calculer les chemins les plus légers de « u » vers les autres sommets avec la même « u » vers les autres sommets avec la même complexité ?complexité ?

– Oui, c’est l’algorithme de Dijkstra !Oui, c’est l’algorithme de Dijkstra !

• Nous avons dû exiger que les poids des arêtes soient Nous avons dû exiger que les poids des arêtes soient positifs ou nuls ! positifs ou nuls !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 99: 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.

21 février 2006 Cours de graphes 2 - Intranet 99

• Deux questions : Deux questions :

• La vague construit en temps O ( | E | ) le plus court chemin d’un La vague construit en temps O ( | E | ) le plus court chemin d’un sommet « u » quelconque vers tous les autres sommets !sommet « u » quelconque vers tous les autres sommets !

– Pouvons-nous calculer les chemins les plus légers de « u » Pouvons-nous calculer les chemins les plus légers de « u » vers les autres sommets avec la même complexité ?vers les autres sommets avec la même complexité ?

– Oui, c’est l’algorithme de Dijkstra !Oui, c’est l’algorithme de Dijkstra !

• Nous avons dû exiger que les poids des arêtes soient positifs ou Nous avons dû exiger que les poids des arêtes soient positifs ou nuls ! nuls !

– Pouvons-nous lever cette limitation, quitte à devoir détecter Pouvons-nous lever cette limitation, quitte à devoir détecter des cycles de poids négatifs ? des cycles de poids négatifs ?

– Oui, c’est l’algorithme de Bellmann-Ford !Oui, c’est l’algorithme de Bellmann-Ford !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 100: 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.

21 février 2006 Cours de graphes 2 - Intranet 100

• Deux questions : Deux questions :

• La vague construit en temps O ( | E | ) le plus court chemin d’un La vague construit en temps O ( | E | ) le plus court chemin d’un sommet « u » quelconque vers tous les autres sommets !sommet « u » quelconque vers tous les autres sommets !

– Pouvons-nous calculer les chemins les plus légers de « u » Pouvons-nous calculer les chemins les plus légers de « u » vers les autres sommets avec la même complexité ?vers les autres sommets avec la même complexité ?

– Oui, c’est l’algorithme de Dijkstra !Oui, c’est l’algorithme de Dijkstra !

• Nous avons dû exiger que les poids des arêtes soient positifs ou Nous avons dû exiger que les poids des arêtes soient positifs ou nuls ! nuls !

– Pouvons-nous lever cette limitation, quitte à devoir détecter Pouvons-nous lever cette limitation, quitte à devoir détecter des cycles de poids négatifs ? des cycles de poids négatifs ?

– Oui, c’est l’algorithme de Bellmann-Ford !Oui, c’est l’algorithme de Bellmann-Ford !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 101: 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.

21 février 2006 Cours de graphes 2 - Intranet 101

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

‘‘

Page 102: 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.

21 février 2006 Cours de graphes 2 - Intranet 102

• L’algorithme de Dijkstra calcule les chemins les plus L’algorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !légers de « s » vers tous les autres sommets !

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 103: 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.

21 février 2006 Cours de graphes 2 - Intranet 103

• L’algorithme de Dijkstra calcule les chemins les plus L’algorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !légers de « s » vers tous les autres sommets !

• C’est un algorithme de « relaxation », qui est un C’est un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.schéma classique en recherche opérationnelle.

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 104: 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.

21 février 2006 Cours de graphes 2 - Intranet 104

• L’algorithme de Dijkstra calcule les chemins les plus L’algorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !légers de « s » vers tous les autres sommets !

• C’est un algorithme de « relaxation », qui est un C’est un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.schéma classique en recherche opérationnelle.

• Pour chaque sommet « u » nous connaissons « D ( u ) » Pour chaque sommet « u » nous connaissons « D ( u ) » quiqui

– est un majorant du chemin le plus léger,est un majorant du chemin le plus léger,

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 105: 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.

21 février 2006 Cours de graphes 2 - Intranet 105

• L’algorithme de Dijkstra calcule les chemins les plus L’algorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !légers de « s » vers tous les autres sommets !

• C’est un algorithme de « relaxation », qui est un C’est un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.schéma classique en recherche opérationnelle.

• Pour chaque sommet « u » nous connaissons « D ( u ) » Pour chaque sommet « u » nous connaissons « D ( u ) » quiqui

– est un majorant du chemin le plus léger,est un majorant du chemin le plus léger,

– qui correspond au poids d’un chemin de « s » vers « u »,qui correspond au poids d’un chemin de « s » vers « u »,

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 106: 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.

21 février 2006 Cours de graphes 2 - Intranet 106

• L’algorithme de Dijkstra calcule les chemins les plus L’algorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !légers de « s » vers tous les autres sommets !

• C’est un algorithme de « relaxation », qui est un C’est un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.schéma classique en recherche opérationnelle.

• Pour chaque sommet « u » nous connaissons « D ( u ) » Pour chaque sommet « u » nous connaissons « D ( u ) » quiqui

– est un majorant du chemin le plus léger,est un majorant du chemin le plus léger,

– qui correspond au poids d’un chemin de « s » vers « u »,qui correspond au poids d’un chemin de « s » vers « u »,

– qui vaut initialement « +qui vaut initialement « + » pour tout « u » différent de  » pour tout « u » différent de « s »« s »

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 107: 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.

21 février 2006 Cours de graphes 2 - Intranet 107

• L’algorithme de Dijkstra calcule les chemins les plus légers L’algorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !de « s » vers tous les autres sommets !

• C’est un algorithme de « relaxation », qui est un schéma C’est un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.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,est un majorant du chemin le plus léger,

– qui correspond au poids d’un chemin de « s » vers « u »,qui correspond au poids d’un chemin de « s » vers « u »,

– qui vaut initialement « +qui vaut initialement « + » pour tout « u » différent de « s » » pour tout « u » différent de « s »

– et qui sera égal au chemin le plus léger à la fin du calcul.et qui sera égal au chemin le plus léger à la fin du calcul.

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 108: 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.

21 février 2006 Cours de graphes 2 - Intranet 108

• L’algorithme de Dijkstra calcule les chemins les plus légers de L’algorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !« s » vers tous les autres sommets !

• C’est un algorithme de « relaxation », qui est un schéma classique C’est un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.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,est un majorant du chemin le plus léger,

– qui correspond au poids d’un chemin de « s » vers « u »,qui correspond au poids d’un chemin de « s » vers « u »,

– qui vaut initialement « +qui vaut initialement « + » pour tout « u » différent de « s » » pour tout « u » différent de « s »

– et qui sera égal au chemin le plus léger à la fin du calcul.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 De plus, pour tout « u » nous connaissons « P ( u ) » qui est le sommet qui précède « u » le long du meilleur chemin courant.sommet qui précède « u » le long du meilleur chemin courant.

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 109: 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.

21 février 2006 Cours de graphes 2 - Intranet 109

• L’opération de base « relax ( x , v ) » demandeL’opération de base « relax ( x , v ) » demande

– si le meilleur chemin actuel ne peut pas être amélioré sisi 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égersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 110: 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.

21 février 2006 Cours de graphes 2 - Intranet 110

• L’opération de base « relax ( x , v ) » demandeL’opération de base « relax ( x , v ) » demande

– si le meilleur chemin actuel ne peut pas être amélioré sisi 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égersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

Page 111: 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.

21 février 2006 Cours de graphes 2 - Intranet 111

• L’opération de base « relax ( x , v ) » demandeL’opération de base « relax ( x , v ) » demande

– si le meilleur chemin actuel ne peut pas être amélioré sisi 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égersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

NONNON

RIEN !RIEN !

Page 112: 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.

21 février 2006 Cours de graphes 2 - Intranet 112

• L’opération de base « relax ( x , v ) » demandeL’opération de base « relax ( x , v ) » demande

– si le meilleur chemin actuel ne peut pas être amélioré sisi 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égersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

OUIOUI

D ( v ) <D ( v ) <-- D ( x ) + M ( x , v ) et P ( v ) < D ( x ) + M ( x , v ) et P ( v ) <-- x x

NONNON

RIEN !RIEN !

Page 113: 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.

21 février 2006 Cours de graphes 2 - Intranet 113

• L’opération de base « relax ( x , v ) » demandeL’opération de base « relax ( x , v ) » demande

– si le meilleur chemin actuel ne peut pas être amélioré sisi 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égersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

OUIOUI

D ( v ) <D ( v ) <-- D ( x ) + M ( x , v ) et P ( v ) < D ( x ) + M ( x , v ) et P ( v ) <-- x x

NONNON

RIEN !RIEN !

Donc, D ( v ) décroît et correspond à un chemin du graphe !Donc, D ( v ) décroît et correspond à un chemin du graphe !

Page 114: 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.

21 février 2006 Cours de graphes 2 - Intranet 114

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• L’opération de relaxation « relax ( x , v ) » : L’opé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

Page 115: 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.

21 février 2006 Cours de graphes 2 - Intranet 115

Connexité – chemins les plus légersConnexité – 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 ) ;

}

Page 116: 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.

21 février 2006 Cours de graphes 2 - Intranet 116

Connexité – chemins les plus légersConnexité – 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 distances !

Page 117: 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.

21 février 2006 Cours de graphes 2 - Intranet 117

Connexité – chemins les plus légersConnexité – 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 distances !

Nous initialisons les prédécesseurs !Nous initialisons les prédécesseurs !

Page 118: 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.

21 février 2006 Cours de graphes 2 - Intranet 118

Connexité – chemins les plus légersConnexité – 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 distances !

Nous initialisons les prédécesseurs !Nous initialisons les prédécesseurs !

Nous initialisons les sommets à parcourir !Nous initialisons les sommets à parcourir !

Page 119: 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.

21 février 2006 Cours de graphes 2 - Intranet 119

Connexité – chemins les plus légersConnexité – 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 distances !

Nous initialisons les prédécesseurs !Nous initialisons les prédécesseurs !

Nous initialisons les sommets à parcourir !Nous initialisons les sommets à parcourir !

Tant qu’il reste un sommet à traiter . . .Tant qu’il reste un sommet à traiter . . .

Page 120: 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.

21 février 2006 Cours de graphes 2 - Intranet 120

Connexité – chemins les plus légersConnexité – 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 distances !

Nous initialisons les prédécesseurs !Nous initialisons les prédécesseurs !

Nous initialisons les sommets à parcourir !Nous initialisons les sommets à parcourir !

Tant qu’il reste un sommet à traiter . . .Tant qu’il reste un sommet à traiter . . .

Nous retirons le sommet « u »Nous retirons le sommet « u »dont « D ( u ) » est minimal !dont « D ( u ) » est minimal !

Page 121: 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.

21 février 2006 Cours de graphes 2 - Intranet 121

Connexité – chemins les plus légersConnexité – 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 distances !

Nous initialisons les prédécesseurs !Nous initialisons les prédécesseurs !

Nous initialisons les sommets à parcourir !Nous initialisons les sommets à parcourir !

Tant qu’il reste un sommet à traiter . . .Tant qu’il reste un sommet à traiter . . .

Nous retirons le sommet « u »Nous retirons le sommet « u »dont « D ( u ) » est minimal !dont « D ( u ) » est minimal !

Nous relaxons ses voisins quiNous relaxons ses voisins quine sont pas encore définitifs ! ! !ne sont pas encore définitifs ! ! !

Page 122: 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.

21 février 2006 Cours de graphes 2 - Intranet 122

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

Page 123: 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.

21 février 2006 Cours de graphes 2 - Intranet 123

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E s a b cE s a b c

D D 0 0

P s ? ? ?P s ? ? ?

Page 124: 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.

21 février 2006 Cours de graphes 2 - Intranet 124

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }

//

Page 125: 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.

21 février 2006 Cours de graphes 2 - Intranet 125

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }relax ( s , a )relax ( s , a )

relax ( s , b )relax ( s , b )

//

Page 126: 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.

21 février 2006 Cours de graphes 2 - Intranet 126

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }relax ( s , a )relax ( s , a )

relax ( s , b )relax ( s , b )

E E ss a b c a b c

D D 00 1010

P P ss ss ss ? ?

//

Page 127: 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.

21 février 2006 Cours de graphes 2 - Intranet 127

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }relax ( s , a )relax ( s , a )

relax ( s , b )relax ( s , b )

E E ss aa b c b c

D D 00 1010

P P ss ss s ? s ?

//

E <E <-- E \ { a } E \ { a }

//

Page 128: 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.

21 février 2006 Cours de graphes 2 - Intranet 128

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }relax ( s , a )relax ( s , a )

relax ( s , b )relax ( s , b )

E E ss aa b c b c

D D 00 1010

P P ss ss s ? s ?

//

E <E <-- E \ { a } E \ { a } relax ( a , b )relax ( a , b )

//

Page 129: 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.

21 février 2006 Cours de graphes 2 - Intranet 129

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }relax ( s , a )relax ( s , a )

relax ( s , b )relax ( s , b )

E E ss aa b c b c

D D 00 1010

P P ss ss s ? s ?

//

E <E <-- E \ { a } E \ { a } relax ( a , b )relax ( a , b )

//

E E ss aa b b c c

D D 00 1010

P P ss ss aa ? ?

// //

Page 130: 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.

21 février 2006 Cours de graphes 2 - Intranet 130

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }relax ( s , a )relax ( s , a )

relax ( s , b )relax ( s , b )

E E ss aa b c b c

D D 00 1010

P P ss ss s ? s ?

//

E <E <-- E \ { a } E \ { a } relax ( a , b )relax ( a , b )

//

E E ss aa bb c c

D D 00 1010

P P ss ss aa ? ?

// //E <E <-- E \ { b } E \ { b }

//

Page 131: 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.

21 février 2006 Cours de graphes 2 - Intranet 131

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }relax ( s , a )relax ( s , a )

relax ( s , b )relax ( s , b )

E E ss aa b c b c

D D 00 1010

P P ss ss s ? s ?

//

E <E <-- E \ { a } E \ { a } relax ( a , b )relax ( a , b )

//

E E ss aa bb c c

D D 00 1010 2323

P P ss ss aa bb

// //E <E <-- E \ { b } E \ { b }

//relax ( b , c )relax ( b , c )

Page 132: 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.

21 février 2006 Cours de graphes 2 - Intranet 132

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

ss

aa

bb

cc

2020

101055 88

E E ss a b c a b c

D D 00

P P ss ? ? ? ? ? ?

E <E <-- E \ { s } E \ { s }relax ( s , a )relax ( s , a )

relax ( s , b )relax ( s , b )

E E ss aa b c b c

D D 00 1010

P P ss ss s ? s ?

//

E <E <-- E \ { a } E \ { a } relax ( a , b )relax ( a , b )

//

E E ss aa bb cc

D D 00 1010 2323

P P ss ss aa bb

// //E <E <-- E \ { b } E \ { b }

//relax ( b , c )relax ( b , c )

//

E <E <-- E \ { c } E \ { c }

Page 133: 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.

21 février 2006 Cours de graphes 2 - Intranet 133

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

Page 134: 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.

21 février 2006 Cours de graphes 2 - Intranet 134

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

Page 135: 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.

21 février 2006 Cours de graphes 2 - Intranet 135

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

Page 136: 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.

21 février 2006 Cours de graphes 2 - Intranet 136

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

Page 137: 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.

21 février 2006 Cours de graphes 2 - Intranet 137

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Page 138: 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.

21 février 2006 Cours de graphes 2 - Intranet 138

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E !

Page 139: 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.

21 février 2006 Cours de graphes 2 - Intranet 139

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E !

Page 140: 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.

21 février 2006 Cours de graphes 2 - Intranet 140

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E !

Page 141: 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.

21 février 2006 Cours de graphes 2 - Intranet 141

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

Page 142: 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.

21 février 2006 Cours de graphes 2 - Intranet 142

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

Page 143: 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.

21 février 2006 Cours de graphes 2 - Intranet 143

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

D ( u ) <= D ( y ) carD ( u ) <= D ( y ) car« u » va être extrait !« u » va être extrait !

Page 144: 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.

21 février 2006 Cours de graphes 2 - Intranet 144

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

D ( u ) <= D ( y ) carD ( u ) <= D ( y ) car« u » va être extrait !« u » va être extrait !

D ( x ) = d ( s , x ) , car ilD ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !n’ y a pas eu d’erreur avant !

Page 145: 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.

21 février 2006 Cours de graphes 2 - Intranet 145

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

D ( u ) <= D ( y ) carD ( u ) <= D ( y ) car« u » va être extrait !« u » va être extrait !

D ( x ) = d ( s , x ) , car ilD ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !n’ y a pas eu d’erreur avant !

D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !

Page 146: 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.

21 février 2006 Cours de graphes 2 - Intranet 146

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

D ( u ) <= D ( y ) carD ( u ) <= D ( y ) car« u » va être extrait !« u » va être extrait !

D ( x ) = d ( s , x ) , car ilD ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !n’ y a pas eu d’erreur avant !

D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !

Page 147: 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.

21 février 2006 Cours de graphes 2 - Intranet 147

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

D ( u ) <= D ( y ) carD ( u ) <= D ( y ) car« u » va être extrait !« u » va être extrait !

D ( x ) = d ( s , x ) , car ilD ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !n’ y a pas eu d’erreur avant !

D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !

D ( y ) = d ( s , y ) <= d ( s , u ) <= D ( u )D ( y ) = d ( s , y ) <= d ( s , u ) <= D ( u )

Page 148: 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.

21 février 2006 Cours de graphes 2 - Intranet 148

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

D ( u ) <= D ( y ) carD ( u ) <= D ( y ) car« u » va être extrait !« u » va être extrait !

D ( x ) = d ( s , x ) , car ilD ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !n’ y a pas eu d’erreur avant !

D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !

D ( y ) = d ( s , y ) <= d ( s , u ) <= D ( u )D ( y ) = d ( s , y ) <= d ( s , u ) <= D ( u )

D ( y ) = d ( s , y ) = D ( u ) = d ( s , u ) D ( y ) = d ( s , y ) = D ( u ) = d ( s , u )

Page 149: 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.

21 février 2006 Cours de graphes 2 - Intranet 149

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Correction de l’algorithme, par absurde !Correction de l’algorithme, par absurde !

• Soit « u » le premier sommet extrait avec « D ( u ) > d Soit « u » le premier sommet extrait avec « D ( u ) > d ( s , u ) » !( s , u ) » !

• Soit le chemin de plus léger de « s » vers « u » :Soit le chemin de plus léger de « s » vers « u » :ss . . .. . . xx yy . . .. . . uu

Pas dans E !Pas dans E ! Dans E !Dans E ! Dans E !Dans E !

D ( u ) <= D ( y ) carD ( u ) <= D ( y ) car« u » va être extrait !« u » va être extrait !

D ( x ) = d ( s , x ) , car ilD ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !n’ y a pas eu d’erreur avant !

D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !

D ( y ) = d ( s , y ) <= d ( s , u ) <= D ( u )D ( y ) = d ( s , y ) <= d ( s , u ) <= D ( u )

D ( y ) = d ( s , y ) = D ( u ) = d ( s , u ) D ( y ) = d ( s , y ) = D ( u ) = d ( s , u )

Page 150: 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.

21 février 2006 Cours de graphes 2 - Intranet 150

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Dijkstra calcule les chemins les plus légers d’un Dijkstra calcule les chemins les plus légers d’un sommet vers tous les autres (one-to-all shortest sommet vers tous les autres (one-to-all shortest pairs).pairs).

Page 151: 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.

21 février 2006 Cours de graphes 2 - Intranet 151

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Dijkstra calcule les chemins les plus légers d’un Dijkstra calcule les chemins les plus légers d’un sommet vers tous les autres (one-to-all shortest sommet vers tous les autres (one-to-all shortest pairs).pairs).

• Tout sommet « u » est extrait avec une valeur « D Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s , u ) » !dont le poids est « d ( s , u ) » !

Page 152: 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.

21 février 2006 Cours de graphes 2 - Intranet 152

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Dijkstra calcule les chemins les plus légers d’un Dijkstra calcule les chemins les plus légers d’un sommet vers tous les autres (one-to-all shortest sommet vers tous les autres (one-to-all shortest pairs).pairs).

• Tout sommet « u » est extrait avec une valeur « D Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s , u ) » !dont le poids est « d ( s , u ) » !

• La complexité vaut La complexité vaut ( | V | + | E | ) , car nous ( | V | + | E | ) , car nous parcourons, exactement une fois, tous les sommets et parcourons, exactement une fois, tous les sommets et toutes les arêtes !toutes les arêtes !

Page 153: 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.

21 février 2006 Cours de graphes 2 - Intranet 153

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Dijkstra calcule les chemins les plus légers d’un sommet Dijkstra calcule les chemins les plus légers d’un sommet vers tous les autres (one-to-all shortest pairs).vers tous les autres (one-to-all shortest pairs).

• Tout sommet « u » est extrait avec une valeur « D ( u ) » Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le qui est bien égale au chemin le plus léger et dont le poids est « d ( s , u ) » !poids est « d ( s , u ) » !

• La complexité vaut La complexité vaut ( | V | + | E | ) , car nous ( | V | + | E | ) , car nous parcourons, exactement une fois, tous les sommets et parcourons, exactement une fois, tous les sommets et toutes les arêtes !toutes les arêtes !

• Et Et ( | V | + | E | ) = ( | V | + | E | ) = ( | E | ) car le graphe est ( | E | ) car le graphe est connexe !connexe !

Page 154: 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.

21 février 2006 Cours de graphes 2 - Intranet 154

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Dijkstra calcule les chemins les plus légers d’un sommet vers Dijkstra calcule les chemins les plus légers d’un sommet vers tous les autres (one-to-all shortest pairs).tous les autres (one-to-all shortest pairs).

• Tout sommet « u » est extrait avec une valeur « D ( u ) » qui 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 est bien égale au chemin le plus léger et dont le poids est « d ( s , u ) » !( s , u ) » !

• La complexité vaut La complexité vaut ( | V | + | E | ) , car nous parcourons, ( | V | + | E | ) , car nous parcourons, exactement une fois, tous les sommets et toutes les arêtes !exactement une fois, tous les sommets et toutes les arêtes !

• Et Et ( | V | + | E | ) = ( | V | + | E | ) = ( | E | ) car le graphe est connexe ! ( | E | ) car le graphe est connexe !

• Attention, tout ceci est correct uniquement si les poids sont Attention, tout ceci est correct uniquement si les poids sont positifs ou nuls ! ! ! positifs ou nuls ! ! !

Page 155: 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.

21 février 2006 Cours de graphes 2 - Intranet 155

Connexité – plus courts cheminsConnexité – plus courts chemins----------------------------------------------------------------------------------------------------------------------------------

‘‘

Page 156: 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.

21 février 2006 Cours de graphes 2 - Intranet 156

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Bellmann-Ford calcule les chemins les plus légers pour Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).toutes les paires de sommets (all-to-all shortest pairs).

Page 157: 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.

21 février 2006 Cours de graphes 2 - Intranet 157

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Bellmann-Ford calcule les chemins les plus légers pour Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).toutes les paires de sommets (all-to-all shortest pairs).

• Les poids peuvent être négatifs, car il indique au Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids passage la présence éventuelle de cycles de poids négatif. négatif.

Page 158: 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.

21 février 2006 Cours de graphes 2 - Intranet 158

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Bellmann-Ford calcule les chemins les plus légers pour Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).toutes les paires de sommets (all-to-all shortest pairs).

• Les poids peuvent être négatifs, car il indique au Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids passage la présence éventuelle de cycles de poids négatif. négatif.

• La complexité est en O ( | V |^3 ) , comme Floyd-La complexité est en O ( | V |^3 ) , comme Floyd-Warshall ! Warshall !

Page 159: 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.

21 février 2006 Cours de graphes 2 - Intranet 159

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Bellmann-Ford calcule les chemins les plus légers pour Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).toutes les paires de sommets (all-to-all shortest pairs).

• Les poids peuvent être négatifs, car il indique au Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids passage la présence éventuelle de cycles de poids négatif. négatif.

• La complexité est en O ( | V |^3 ) , comme Floyd-La complexité est en O ( | V |^3 ) , comme Floyd-Warshall ! Warshall !

• BF utilise la même relaxation que Dijkstra, mais ne BF utilise la même relaxation que Dijkstra, mais ne considère jamais qu’une valeur d’un sommet est considère jamais qu’une valeur d’un sommet est définitive (et que le sommet peut être retiré de définitive (et que le sommet peut être retiré de l’ensemble « E »).l’ensemble « E »).

Page 160: 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.

21 février 2006 Cours de graphes 2 - Intranet 160

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Bellmann-Ford calcule les chemins les plus légers pour Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).toutes les paires de sommets (all-to-all shortest pairs).

• Les poids peuvent être négatifs, car il indique au passage Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif. la présence éventuelle de cycles de poids négatif.

• La complexité est en O ( | V |^3 ) , comme Floyd-La complexité est en O ( | V |^3 ) , comme Floyd-Warshall ! Warshall !

• BF utilise la même relaxation que Dijkstra, mais ne BF utilise la même relaxation que Dijkstra, mais ne considère jamais qu’une valeur d’un sommet est définitive considère jamais qu’une valeur d’un sommet est définitive (et que le sommet peut être retiré de l’ensemble « E »).(et que le sommet peut être retiré de l’ensemble « E »).

• Nous continuons tant qu’il y a des poids peuvent être Nous continuons tant qu’il y a des poids peuvent être réduits et que . . . (nous verrons plus tard) !réduits et que . . . (nous verrons plus tard) !

Page 161: 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.

21 février 2006 Cours de graphes 2 - Intranet 161

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• L’opération de relaxation « relax ( x , v ) » dit si, oui ou L’opération de relaxation « relax ( x , v ) » dit si, oui ou non, le poids du sommet « v » est resté stable. 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 ) ;

Page 162: 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.

21 février 2006 Cours de graphes 2 - Intranet 162

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• L’opération de relaxation « relax ( x , v ) » dit si, oui ou L’opération de relaxation « relax ( x , v ) » dit si, oui ou non, le poids du sommet « v » est resté stable. 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 ) ;

Page 163: 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.

21 février 2006 Cours de graphes 2 - Intranet 163

Connexité – chemins les plus légersConnexité – 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 ;

Page 164: 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.

21 février 2006 Cours de graphes 2 - Intranet 164

Connexité – chemins les plus légersConnexité – 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 !La même initialisation !

Page 165: 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.

21 février 2006 Cours de graphes 2 - Intranet 165

Connexité – chemins les plus légersConnexité – 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 !La même initialisation !

Nous relaxons tout ! ! !Nous relaxons tout ! ! !

Page 166: 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.

21 février 2006 Cours de graphes 2 - Intranet 166

Connexité – chemins les plus légersConnexité – 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 !La même initialisation !

Nous relaxons tout ! ! !Nous relaxons tout ! ! !

Nous nous arrêtons lorsqu’aucun poidsNous nous arrêtons lorsqu’aucun poidsn’a pu être réduit au dernier passage !n’a pu être réduit au dernier passage !

Page 167: 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.

21 février 2006 Cours de graphes 2 - Intranet 167

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Calculer les plus courts chemins ou les chemins les plus Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifslégers avec des poids positifs

– revient à ne considérer que des chemins simples ! ! ! revient à ne considérer que des chemins simples ! ! ! ! ! !! ! !

Page 168: 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.

21 février 2006 Cours de graphes 2 - Intranet 168

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Calculer les plus courts chemins ou les chemins les plus Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifslégers avec des poids positifs

– revient à ne considérer que des chemins simples ! ! ! revient à ne considérer que des chemins simples ! ! ! ! ! !! ! !

• L’algorithme que nous avons construit s’arrête dans L’algorithme que nous avons construit s’arrête dans ces cas ! ces cas !

Page 169: 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.

21 février 2006 Cours de graphes 2 - Intranet 169

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Calculer les plus courts chemins ou les chemins les plus Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifslégers avec des poids positifs

– revient à ne considérer que des chemins simples ! ! ! revient à ne considérer que des chemins simples ! ! ! ! ! !! ! !

• L’algorithme que nous avons construit s’arrête dans L’algorithme que nous avons construit s’arrête dans ces cas ! ces cas !

• S’il y a des cycles de poids négatifs :S’il y a des cycles de poids négatifs :

– le chemin le plus léger ne sera plus un chemin simple,le chemin le plus léger ne sera plus un chemin simple,– l’algorithme va boucler !l’algorithme va boucler !

Page 170: 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.

21 février 2006 Cours de graphes 2 - Intranet 170

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• Calculer les plus courts chemins ou les chemins les plus légers Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifsavec des poids positifs

– revient à ne considérer que des chemins simples ! ! ! ! ! !revient à ne considérer que des chemins simples ! ! ! ! ! !

• L’algorithme que nous avons construit s’arrête dans ces cas ! L’algorithme que nous avons construit s’arrête dans ces cas !

• S’il y a des cycles de poids négatifs :S’il y a des cycles de poids négatifs :

– le chemin le plus léger ne sera plus un chemin simple,le chemin le plus léger ne sera plus un chemin simple,– l’algorithme va boucler !l’algorithme va boucler !

• Il faut un garde-fou :Il faut un garde-fou :

– Pour « n » sommets, le chemin simple le plus long ne Pour « n » sommets, le chemin simple le plus long ne dépasse pas « n dépasse pas « n –– 1 » étapes. 1 » étapes.

Page 171: 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.

21 février 2006 Cours de graphes 2 - Intranet 171

Connexité – chemins les plus légersConnexité – 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 ;

Page 172: 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.

21 février 2006 Cours de graphes 2 - Intranet 172

Connexité – chemins les plus légersConnexité – 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 leNous comptons et limitons lenombre de tours de boucle !nombre de tours de boucle !

Page 173: 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.

21 février 2006 Cours de graphes 2 - Intranet 173

Connexité – chemins les plus légersConnexité – 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 leNous comptons et limitons lenombre de tours de boucle !nombre de tours de boucle !

Si « k » atteint « n » c’est qu’il ySi « k » atteint « n » c’est qu’il ya des boucles de poids négatifs !a des boucles de poids négatifs !

Page 174: 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.

21 février 2006 Cours de graphes 2 - Intranet 174

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction :La preuve de correction :

• La longueur d’aucun chemin simple n’excède « | V | La longueur d’aucun chemin simple n’excède « | V | -- 1 ».1 ».

Page 175: 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.

21 février 2006 Cours de graphes 2 - Intranet 175

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction :La preuve de correction :

• La longueur d’aucun chemin simple n’excède « | V | La longueur d’aucun chemin simple n’excède « | V | -- 1 ».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 | avec f <= | V | -- 1 et u 1 et u = a= a

ss aa . . .. . .11

aaff ff

Page 176: 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.

21 février 2006 Cours de graphes 2 - Intranet 176

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction :La preuve de correction :

• La longueur d’aucun chemin simple n’excède « | V | La longueur d’aucun chemin simple n’excède « | V | -- 1 ».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 | avec f <= | V | -- 1 et u 1 et u = a= 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 ) .

ss aa . . .. . .11

aaff ff

eeii ii

Page 177: 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.

21 février 2006 Cours de graphes 2 - Intranet 177

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction :La preuve de correction :

• La longueur d’aucun chemin simple n’excède « | V | La longueur d’aucun chemin simple n’excède « | V | -- 1 ».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 | avec f <= | V | -- 1 et u 1 et u = a= 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 , c’est-à-dire pour « s » !Trivial, pour i = 0 , c’est-à-dire pour « s » !

ss aa . . .. . .11

aaff ff

eeii ii

Page 178: 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.

21 février 2006 Cours de graphes 2 - Intranet 178

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction :La preuve de correction :

• La longueur d’aucun chemin simple n’excède « | V | La longueur d’aucun chemin simple n’excède « | V | -- 1 ». 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 | avec f <= | V | -- 1 et u = a 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 , c’est-à-dire pour « s » !Trivial, pour i = 0 , c’est-à-dire pour « s » !

– Si c’est vrai pour « i », le i+1 tour calcule : Si c’est vrai pour « i », le i+1 tour calcule :

D ( a ) = relax ( a , a ) = d ( s , a )D ( a ) = relax ( a , a ) = d ( s , a )

ss aa . . .. . .11

aaff ff

eeii ii

ee

iii+1i+1 i+1i+1 i+1i+1

Page 179: 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.

21 février 2006 Cours de graphes 2 - Intranet 179

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction :La preuve de correction :

• La longueur d’aucun chemin simple n’excède « | V | La longueur d’aucun chemin simple n’excède « | V | -- 1 ». 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 | avec f <= | V | -- 1 et u = a 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 , c’est-à-dire pour « s » !Trivial, pour i = 0 , c’est-à-dire pour « s » !

– Si c’est vrai pour « i », le i+1 tour calcule : Si c’est 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 )

ss aa . . .. . .11

aaff ff

eeii ii

ee

iii+1i+1 i+1i+1 i+1i+1

ff ff

Page 180: 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.

21 février 2006 Cours de graphes 2 - Intranet 180

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction :La preuve de correction :

• La longueur d’aucun chemin simple n’excède « | V | La longueur d’aucun chemin simple n’excède « | V | -- 1 ». 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 | avec f <= | V | -- 1 et u = a 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 , c’est-à-dire pour « s » !Trivial, pour i = 0 , c’est-à-dire pour « s » !

– Si c’est vrai pour « i », le i+1 tour calcule : Si c’est 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 )

ss aa . . .. . .11

aaff ff

eeii ii

ee

iii+1i+1 i+1i+1 i+1i+1

ff ff

Page 181: 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.

21 février 2006 Cours de graphes 2 - Intranet 181

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction (suite) :La preuve de correction (suite) :

• Au bout de « | V | Au bout de « | V | -- 1 » itérations nous avons tous les 1 » itérations nous avons tous les chemins simples les plus légers !chemins simples les plus légers !

Page 182: 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.

21 février 2006 Cours de graphes 2 - Intranet 182

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction (suite) :La preuve de correction (suite) :

• Au bout de « | V | Au bout de « | V | -- 1 » itérations nous avons tous les 1 » itérations nous avons tous les chemins simples les plus légers !chemins simples les plus légers !

• S’il y a encore des modifications de poids au-delà de S’il y a encore des modifications de poids au-delà de cette itération, c’est qu’il existe des cycles de poids cette itération, c’est qu’il existe des cycles de poids négatifs ! négatifs !

Page 183: 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.

21 février 2006 Cours de graphes 2 - Intranet 183

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction (suite) :La preuve de correction (suite) :

• Au bout de « | V | Au bout de « | V | -- 1 » itérations nous avons tous les 1 » itérations nous avons tous les chemins simples les plus légers !chemins simples les plus légers !

• S’il y a encore des modifications de poids au-delà de cette S’il y a encore des modifications de poids au-delà de cette itération, c’est qu’il existe des cycles de poids négatifs ! itération, c’est qu’il existe des cycles de poids négatifs !

• La complexité :La complexité :

– en présence de cycles de poids négatifs : en présence de cycles de poids négatifs : ( | V | * | E ( | V | * | E | )| )

Page 184: 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.

21 février 2006 Cours de graphes 2 - Intranet 184

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction (suite) :La preuve de correction (suite) :

• Au bout de « | V | Au bout de « | V | -- 1 » itérations nous avons tous les chemins 1 » itérations nous avons tous les chemins simples les plus légers !simples les plus légers !

• S’il y a encore des modifications de poids au-delà de cette itération, S’il y a encore des modifications de poids au-delà de cette itération, c’est qu’il existe des cycles de poids négatifs ! c’est qu’il existe des cycles de poids négatifs !

• La complexité :La complexité :

– en présence de cycles de poids négatifs : en présence de cycles de poids négatifs : ( | V | * | E | ) ( | V | * | E | )

– en l’absence de cycles de poids négatifs : en l’absence de cycles de poids négatifs : ( ( ( G ) * | E | ) ( G ) * | E | )

Page 185: 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.

21 février 2006 Cours de graphes 2 - Intranet 185

Connexité – chemins les plus légersConnexité – chemins les plus légers----------------------------------------------------------------------------------------------------------------------------------

• La preuve de correction (suite) :La preuve de correction (suite) :

• Au bout de « | V | Au bout de « | V | -- 1 » itérations nous avons tous les chemins simples les 1 » itérations nous avons tous les chemins simples les plus légers !plus légers !

• S’il y a encore des modifications de poids au-delà de cette itération, S’il y a encore des modifications de poids au-delà de cette itération, c’est qu’il existe des cycles de poids négatifs ! c’est qu’il existe des cycles de poids négatifs !

• La complexité :La complexité :

– en présence de cycles de poids négatifs : en présence de cycles de poids négatifs : ( | V | * | E | ) ( | V | * | E | )

– en l’absence de cycles de poids négatifs : en l’absence de cycles de poids négatifs : ( ( ( G ) * | E | ) ( G ) * | E | )

• Le diamètre Le diamètre ( G ) est la longueur du plus long chemin simple ! ( G ) est la longueur du plus long chemin simple !

Page 186: 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.

21 février 2006 Cours de graphes 2 - Intranet 186

SynthèseSynthèse----------------------------------------------------------------------------------------------------------------------------------

• Les plus courts chemins,Les plus courts chemins,• les chemins les plus légers :les chemins les plus légers :

– à l’aide de la vague,à l’aide de la vague,– à l’aide de la multiplication,à l’aide de la multiplication,– à l’aide de Floyd-Warshall.à l’aide de Floyd-Warshall.

– Algorithmes de Dijkstra et Bellmann-Ford.Algorithmes de Dijkstra et Bellmann-Ford.

Page 187: 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.

21 février 2006 Cours de graphes 2 - Intranet 187

‘‘