Cours de graphes
description
Transcript of Cours de graphes
Cours de graphes 2 - Intranet 121 février 2006
Cours de graphesLes plus courts chemins,
les chemins les plus légers :
à l’aide de la vague,à l’aide de la multiplication,à l’aide de Floyd-Warshall.
Algorithmes de Dijkstra et Bellmann-Ford.
Cours de graphes 2 - Intranet 221 février 2006
Les grandes lignes du cours• Définitions de base• Connexité• Les plus courts chemins• Dijkstra et Bellmann-Ford• Arbres• Arbres de recouvrement minimaux • Problèmes de flots• Coloriage de graphes• Couplage• Chemins d’Euler et de Hamilton• Problèmes NP-complets
Cours de graphes 2 - Intranet 321 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
Connexité
Plus courts
Plus légers
La vague Multiplication Floyd-Warshall
Q ( | E | ) = O ( | V |^2 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Cours de graphes 2 - Intranet 421 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
• Sur un graphe non orienté, nous allons calculer :
– les composantes connexes !
• Sur une composante connexe, nous allons calculer :– les plus courts chemins !
• Nous rajoutons une pondération strictement positive et nous allons calculer :– les chemins les plus légers !
Cours de graphes 2 - Intranet 521 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
• La notion de distance est donné par le nombre d’arêtes qu’il faut traverser au moins !
• L’algorithme de la « vague » :– Nous choisissons un sommet « u » sec et le mouillons, – à l’étape 1, nous mouillons ses voisins,– à l’étape 2, nous mouillons les voisins des voisins , . . .
• En temps Q ( | E | ) = O ( | V |^2 ) , nous connaissons les plus courts chemins du sommet « u » vers les autres !
Cours de graphes 2 - Intranet 621 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
u
Etape 0 - étape 1 - étape 2 - étape 3
Touché une seconde fois !
Touché deux fois !
Cours de graphes 2 - Intranet 721 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
• La connaissance de d ( u , v ) et d ( u , w ) ne permet pas de dire grand-chose sur d ( v , w ) !
• Il faut répéter la vague depuis chaque sommet « u » du graphe !
• En temps Q ( | V | * | E | ) = O ( | V |^3 ) , nous connaissons les plus courts chemins de tout sommet à tout sommet !
uv w
u
v
w
Cours de graphes 2 - Intranet 821 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
Connexité
Plus courts
Plus légers
La vague Multiplication Floyd-Warshall
Q ( | E | ) = O ( | V |^2 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Q ( | V | * | E | ) = O ( | V |^3 )
Cours de graphes 2 - Intranet 921 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
• La multiplication de matrices :
– Nous prenons une matrice avec des « 0 » sur la diagonale,
– des « 1 » lorsque l’arête existe et des « +µ » sinon.
• Nous effectuons le calcul suivant :
M * M’ ( i , j ) = min M ( i , k ) + M’ ( k , j )
• Nous calculons : M -> M^2 -> M^4 -> . . . • Propriété : M^( 2 * i ) = M^i * M^i contient tous les
plus courts chemins de longueur au plus 2 * i , c’est-à-dire qu’elle contient des « +µ » et des valeurs dans { 0 , . . . , 2 * i } .
• Il suffit de calculer M^k avec k >= | V |-1 à l’aide de O ( log( | V | ) ) élévations au carré !
k
Cours de graphes 2 - Intranet 1021 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
• Preuve de la propriété :– La matrice M = M^1 contient tou(te)s les
(longueurs des) plus courts chemins de longueur au plus 1 .
– Hypothèse d’induction : M^i contient tous les . . .
M^( 2 * i ) ( u , v ) <> +µ min_k M^i ( u , k ) + M^i ( k , v ) <> +µ $ w tel que M^i ( u , w ) + M^i ( w , v ) <> +µ
et de valeur minimale. M^i ( u , w ) <> +µ et M^i ( w , v ) <> +µ Les plus courts chemins de ( u ; w ) et de ( w ; v )
sont de longueur au plus i. Le plus court chemin de « u » vers « v » est de longueur au plus 2 * i et c’est ( u ; w ; v ) .
Cours de graphes 2 - Intranet 1121 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
• Preuve de la propriété :– La matrice M = M^1 contient tou(te)s les
(longueurs des) plus courts chemins de longueur au plus 1 .
– Hypothèse d’induction : M^i contient tous les . . .
M^( 2 * i ) ( u , v ) <> +µ min_k M^i ( u , k ) + M^i ( k , v ) <> +µ $ w tel que M^i ( u , w ) + M^i ( w , v ) <> +µ
et de valeur minimale. M^i ( u , w ) <> +µ et M^i ( w , v ) <> +µ Les plus courts chemins de ( u ; w ) et de ( w ; v )
sont de longueur au plus i. Le plus court chemin de « u » vers « v » est de longueur au plus 2 * i et c’est ( u ; w ; v ) .
Cours de graphes 2 - Intranet 1221 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
Connexité
Plus courts
Plus légers
La vague Multiplication Floyd-Warshall
Q ( | E | ) = O ( | V |^2 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Q ( | V | * | E | ) = O ( | V |^3 )
Q ( | V |^3 * log( | V | ) )
Cours de graphes 2 - Intranet 1321 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
• M est la matrice d’adjacence avec des « 0 » sur la diagonale, des « 1 » lorsque l’arête existe et des « +µ » sinon.
• M de Floyd-Warshall contient par hypothèse les plus courts chemins construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .
M ( u , v ) = min ( ,
)
• Le plus court chemin avec des sommets dans { 1 , . . . , k } :– peut, soit, ne pas passer par « k »,– peut, soit, passer par « k » !
• M est la matrice recherchée !
(0)
M ( u , k ) + M ( k , v )(k-1)M ( u , v )(k-1)
(k-1)
(n)
(k)
(k-1)
Cours de graphes 2 - Intranet 1421 février 2006
Connexité – plus courts chemins-----------------------------------------------------------------
Connexité
Plus courts
Plus légers
La vague Multiplication Floyd-Warshall
Q ( | E | ) = O ( | V |^2 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Q ( | V | * | E | ) = O ( | V |^3 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Cours de graphes 2 - Intranet 1521 février 2006
• Sur un graphe non orienté, nous allons calculer :
– les composantes connexes !
• Sur une composante connexe, nous allons calculer :– les plus courts chemins !
• Nous rajoutons une pondération strictement positive et nous allons calculer :– les chemins les plus légers !
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 1621 février 2006
• Nous rajoutons une pondération strictement positive et nous allons calculer :– les chemins les plus légers !
• En présence de poids négatifs, le problème pourrait ne plus avoir de sens, car il pourrait y avoir des cycles de poids négatif.
Connexité – chemins les plus légers-----------------------------------------------------------------
5
5
5
-15
10
Cycle de poids négatif !
Cours de graphes 2 - Intranet 1721 février 2006
Connexité – 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’algorithme de la vague (unique) ne marche plus ! ! !
030 10
30 405
55
1015
8
Etape 0 - étape 1 - étape 2 - étape 3
Une vague qui se brise.Nous l’ignorons ! ! !
Cours de graphes 2 - Intranet 1821 février 2006
Connexité – 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’algorithme de la vague (unique) ne marche plus ! ! !
030 10
30 405
55
1015
8
Etape 0 - étape 1 - étape 2 - étape 3
Elle n’existe plus !
Cours de graphes 2 - Intranet 1921 février 2006
Connexité – 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’algorithme de la vague (unique) ne marche plus ! ! !
• Il peut y avoir « 2 » ou « 3 » vagues, ou « 4 », . . .• Quand est-ce que c’est fini ? ? ?
030 10
30 405
45
55
1015
8
Etape 0 - étape 1 - étape 2 - étape 3
23
Cours de graphes 2 - Intranet 2021 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Un cas pathologique :
20
8 5
20
85 5
20
8. . .Y
2 vagues
T
4 vaguesdont 2 simultanées
O ( n / 3 )vagues ! ! !
X Z
Cours de graphes 2 - Intranet 2121 février 2006
Connexité
Plus courts
Plus légers
La vague Multiplication Floyd-Warshall
Q ( | E | ) = O ( | V |^2 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Q ( | V | * | E | ) = O ( | V |^3 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
N O N !
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 2221 février 2006
• La multiplication de matrices :
– Nous prenons une matrice avec des « 0 » sur la diagonale,
– le poids de l’arête lorsqu’elle existe et « +µ » sinon.
• Nous effectuons le calcul suivant :
M * M’ ( i , j ) = min M ( i , k ) + M’ ( k , j )
• Nous calculons : M -> M^2 -> M^4 -> . . . • Propriété : M^( 2 * i ) = M^i * M^i contient tous les
chemins les plus légers de longueur au plus 2 * i (nombre d’arêtes).
• Il suffit de calculer M^k avec k >= | V |-1 à l’aide de O ( log( | V | ) ) élévations au carré !
k
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 2321 février 2006
Connexité
Plus courts
Plus légers
La vague Multiplication Floyd-Warshall
Q ( | E | ) = O ( | V |^2 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Q ( | V | * | E | ) = O ( | V |^3 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
N O N ! Q ( | V |^3 * log( | V | ) )
Le même programme !
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 2421 février 2006
• M est la matrice d’adjacence avec des « 0 » sur la diagonale, le poids de l’arête si elle existe et des « +µ » sinon.
• M de Floyd-Warshall contient par hypothèse les chemins les plus légers construits à l’aide de sommets intermédiaires dans l’ensemble { 0 , . . . , k-1 } .
M ( u , v ) = min ( ,
)
• Le chemin le plus léger avec des sommets dans { 1 , . . . , k } :– peut, soit, ne pas passer par « k »,– peut, soit, passer par « k » !
• M est la matrice recherchée !
(0)
M ( u , k ) + M ( k , v )(k-1)M ( u , v )(k-1)
(k-1)
(n)
(k)
(k-1)
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 2521 février 2006
Connexité
Plus courts
Plus légers
La vague Multiplication Floyd-Warshall
Q ( | E | ) = O ( | V |^2 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Q ( | V | * | E | ) = O ( | V |^3 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
N O N ! Q ( | V |^3 * log( | V | ) ) Q ( | V |^3 )
Le même programme !
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 2621 février 2006
• Et les graphes orientés ? ? ?
à 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 – et introduit une complexité en Q ( | V | * | E | ) !
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 2721 février 2006
Pour les graphes orientés-----------------------------------------------------------------
Connexitéen orienté
Plus courts
Plus légers
La vague Multiplication Floyd-Warshall
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
Q ( | V | * | E | ) = O ( | V |^3 )
Q ( | V |^3 * log( | V | ) )
Q ( | V |^3 )
N O N ! Q ( | V |^3 * log( | V | ) ) Q ( | V |^3 )
Q ( | V | * | E | ) = O ( | V |^3 )
Cours de graphes 2 - Intranet 2821 février 2006
• Deux questions :
• La vague construit en temps O ( | E | ) le plus court chemin d’un sommet « u » quelconque vers tous les autres sommets !– Pouvons-nous calculer les chemins les plus légers de
« u » vers les autres sommets avec la même complexité ?
– Oui, c’est l’algorithme de Dijkstra !
• Nous avons dû exiger que les poids des arêtes soient positifs ou nuls ! – Pouvons-nous lever cette limitation, quitte à devoir
détecter des cycles de poids négatifs ? – Oui, c’est l’algorithme de Bellmann-Ford !
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 2921 février 2006
• L’algorithme de Dijkstra calcule les chemins les plus légers de « s » vers tous les autres sommets !
• C’est un algorithme de « relaxation », qui est un schéma classique en recherche opérationnelle.
• Pour chaque sommet « u » nous connaissons « D ( u ) » qui– est un majorant du chemin le plus léger,– qui correspond au poids d’un chemin de « s » vers « u »,– qui vaut initialement « +µ » pour tout « u » différent de
« s »– et qui sera égal au chemin le plus léger à la fin du calcul.
• De plus, pour tout « u » nous connaissons « P ( u ) » qui est le sommet qui précède « u » le long du meilleur chemin courant.
Connexité – chemins les plus légers-----------------------------------------------------------------
Cours de graphes 2 - Intranet 3021 février 2006
• L’opération de base « relax ( x , v ) » demande– si le meilleur chemin actuel ne peut pas être amélioré si le sommet « x » devient le prédécesseur de « v » ?
D ( x ) + M ( x , v ) < D ( v ) ? ? ? ? ?
Connexité – chemins les plus légers-----------------------------------------------------------------
OUI
D ( v ) <- D ( x ) + M ( x , v ) et P ( v ) <- x
NON
RIEN !
Donc, D ( v ) décroît et correspond à un chemin du graphe !
Cours de graphes 2 - Intranet 3121 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• 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
Cours de graphes 2 - Intranet 3221 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
pour tout u : D ( u ) <- +µ ;D ( s ) <- 0 ;pour tout u : P ( u ) <- ?? ;P ( s ) <- s ;E <- V ;
tantque E <> f { u <- sommet_min_D ( E ) ; E <- E \ { u } ; pour tout v dans E et voisin de u relax ( u , v ) ; }
Nous initialisons les distances !
Nous initialisons les prédécesseurs !Nous initialisons les sommets à parcourir !
Tant qu’il reste un sommet à traiter . . .
Nous retirons le sommet « u »dont « D ( u ) » est minimal !
Nous relaxons ses voisins quine sont pas encore définitifs ! ! !
Cours de graphes 2 - Intranet 3321 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
s
a
bc
20
105 8
E s a b cD 0 µ µ µP s ? ? ?
E <- E \ { s }relax ( s , a )
relax ( s , b )
E s a b cD 0 10 20 µP s s s ?
/E <- E \ { a } relax ( a , b )
/
E s a b cD 0 10 15 23P s s a b
/ /E <- E \ { b }
/relax ( b , c )
/
E <- E \ { c }
Cours de graphes 2 - Intranet 3421 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Correction de l’algorithme, par absurde !• Soit « u » le premier sommet extrait avec « D ( u ) > d
( s , u ) » !
Cours de graphes 2 - Intranet 3521 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Correction de l’algorithme, par absurde !• Soit « u » le premier sommet extrait avec « D ( u ) > d
( s , u ) » !• Soit le chemin de plus léger de « s » vers « u » :
s . . . x y . . . u
Pas dans E !
Cours de graphes 2 - Intranet 3621 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Correction de l’algorithme, par absurde !• Soit « u » le premier sommet extrait avec « D ( u ) > d
( s , u ) » !• Soit le chemin de plus léger de « s » vers « u » :
s . . . x y . . . u
Pas dans E ! Dans E ! Dans E !
Cours de graphes 2 - Intranet 3721 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Correction de l’algorithme, par absurde !• Soit « u » le premier sommet extrait avec « D ( u ) > d
( s , u ) » !• Soit le chemin de plus léger de « s » vers « u » :
s . . . x y . . . u
Pas dans E ! Dans E ! Dans E !
D ( u ) <= D ( y ) car« u » va être extrait !
D ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !
D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !
Cours de graphes 2 - Intranet 3821 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Correction de l’algorithme, par absurde !• Soit « u » le premier sommet extrait avec « D ( u ) > d
( s , u ) » !• Soit le chemin de plus léger de « s » vers « u » :
s . . . x y . . . u
Pas dans E ! Dans E ! Dans E !
D ( u ) <= D ( y ) car« u » va être extrait !
D ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !
D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !
D ( y ) = d ( s , y ) <= d ( s , u ) <= D ( u )
D ( y ) = d ( s , y ) = D ( u ) = d ( s , u )
Cours de graphes 2 - Intranet 3921 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Correction de l’algorithme, par absurde !• Soit « u » le premier sommet extrait avec « D ( u ) > d
( s , u ) » !• Soit le chemin de plus léger de « s » vers « u » :
s . . . x y . . . u
Pas dans E ! Dans E ! Dans E !
D ( u ) <= D ( y ) car« u » va être extrait !
D ( x ) = d ( s , x ) , car iln’ y a pas eu d’erreur avant !
D ( y ) = relax ( x , y ) = d ( s , y ) ! ! ! ! !
D ( y ) = d ( s , y ) <= d ( s , u ) <= D ( u )
D ( y ) = d ( s , y ) = D ( u ) = d ( s , u )
Cours de graphes 2 - Intranet 4021 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Dijkstra calcule les chemins les plus légers d’un sommet vers tous les autres (one-to-all shortest pairs).
• Tout sommet « u » est extrait avec une valeur « D ( u ) » qui est bien égale au chemin le plus léger et dont le poids est « d ( s , u ) » !
• La complexité vaut Q ( | V | + | E | ) , car nous parcourons, exactement une fois, tous les sommets et toutes les arêtes !
• Et Q ( | V | + | E | ) = Q ( | E | ) car le graphe est connexe !
• Attention, tout ceci est correct uniquement si les poids sont positifs ou nuls ! ! !
Cours de graphes 2 - Intranet 4121 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Bellmann-Ford calcule les chemins les plus légers pour toutes les paires de sommets (all-to-all shortest pairs).
• Les poids peuvent être négatifs, car il indique au passage la présence éventuelle de cycles de poids négatif.
• La complexité est en O ( | V |^3 ) , comme Floyd-Warshall !
• BF utilise la même relaxation que Dijkstra, mais ne considère jamais qu’une valeur d’un sommet est définitive (et que le sommet peut être retiré de l’ensemble « E »).
• Nous continuons tant qu’il y a des poids peuvent être réduits et que . . . (nous verrons plus tard) !
Cours de graphes 2 - Intranet 4221 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• L’opération de relaxation « relax ( x , v ) » dit si, oui ou non, le poids du sommet « v » est resté stable.
fonction relax ( x , v ) si D ( x ) + M ( x , v ) < D ( v ) D ( v ) <- D ( x ) + M ( x , v ) ; P ( v ) <- x ; rendre ( FAUX ) ; sinon rendre ( VRAI ) ;
Cours de graphes 2 - Intranet 4321 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Le code presque correct :
pour tout u : D ( u ) <- +µ ;D ( s ) <- 0 ;pour tout u : P ( u ) <- ?? ;P ( s ) <- s ;repeter stable <- VRAI ; pour tout u différent de s pour tout v qui est voisin de u stable <- stable & relax ( u , v ) ;jusqua stable = VRAI ;
La même initialisation !
Nous relaxons tout ! ! !
Nous nous arrêtons lorsqu’aucun poidsn’a pu être réduit au dernier passage !
Cours de graphes 2 - Intranet 4421 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• Calculer les plus courts chemins ou les chemins les plus légers avec des poids positifs
– revient à ne considérer que des chemins simples ! ! ! ! ! !
• L’algorithme que nous avons construit s’arrête dans ces cas !
• S’il y a des cycles de poids négatifs :– le chemin le plus léger ne sera plus un chemin simple,– l’algorithme va boucler !
• Il faut un garde-fou :
– Pour « n » sommets, le chemin simple le plus long ne dépasse pas « n – 1 » étapes.
Cours de graphes 2 - Intranet 4521 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• 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 – 1si k > n – 1 Il y a des cycles de poids négatifs ;
Nous comptons et limitons lenombre de tours de boucle !
Si « k » atteint « n » c’est qu’il ya des boucles de poids négatifs !
Cours de graphes 2 - Intranet 4621 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• La preuve de correction :• La longueur d’aucun chemin simple n’excède « | V | -
1 ».
• Soit le chemin simple le plus léger de « s » vers « u » :
avec f <= | V | - 1 et u = a
• Après le i tour de boucle : D ( a ) = d ( s , a ) .
– Trivial, pour i = 0 , c’est-à-dire pour « s » !– Si c’est vrai pour « i », le i+1 tour calcule :
D ( a ) = relax ( a , a ) = d ( s , a )
• Après le tour de boucle « f » : D ( u ) = D ( a ) = d ( s , a )
s a . . .1
af f
ei i
e
ii+1 i+1 i+1
f f
Cours de graphes 2 - Intranet 4721 février 2006
Connexité – chemins les plus légers-----------------------------------------------------------------
• La preuve de correction (suite) :
• Au bout de « | V | - 1 » itérations nous avons tous les chemins simples les plus légers !
• 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 !
• La complexité :
– en présence de cycles de poids négatifs : Q ( | V | * | E | )
– en l’absence de cycles de poids négatifs : Q ( D ( G ) * | E | )
• Le diamètre D ( G ) est la longueur du plus long chemin simple !
Cours de graphes 2 - Intranet 4821 février 2006
Synthèse-----------------------------------------------------------------
• Les plus courts chemins,• les chemins les plus légers :
– à l’aide de la vague,– à l’aide de la multiplication,– à l’aide de Floyd-Warshall.
– Algorithmes de Dijkstra et Bellmann-Ford.