• Aucun résultat trouvé

Dans cette section nous nous int´eressons aux plus courts chemins dans un graphe orient´e entre une source donn´ee et tous les autres sommets du graphe. Ce probl`eme est d´esign´e comme le single-source shortest path problem. La section 4.1.1 pr´esente les d´efinitions et propri´et´es des plus courts chemins, la section 4.1.2 justifie la limitation du probl`eme aux graphes n’ayant pas d’arc de poids n´egatif et la section 4.2 pr´esente les meilleurs algorithmes connus pour effectuer ce calcul.

4.1.1

D´efinitions et propri´et´es

Cette section pr´esente quelques d´efinitions sur les graphes orient´es ainsi que la notion de plus court chemin dans un graphe [Diestel 00, Demetrescu 01].

D´efinition 4.1 Un chemin est un graphe G = (V, E) non nul de la forme : V = {v0, v1, ..., vk} E = {(v0, v1), (v1, v2), ..., (vk−1, vk)}

o`u les vi sont tous distincts. Les sommets v0 et vk sont reli´es par G et sont appel´es

extr´emit´es. On notera v0 ; vk ou hv0, ..., vki le chemin de v0 `a vk.

D´efinition 4.2 Soit G = (V, E, w) un graphe orient´e o`u V est l’ensemble des sommets du graphe, E l’ensemble des arcs et w : E → R une fonction qui `a tout arc (u, v) du graphe associe un nombre r´eel w(u, v) appel´e le poids de l’arc.

Grˆace `a cette d´efinition nous pouvons introduire le concept de longueur d’un chemin comme la somme des poids des arcs qui le composent :

D´efinition 4.3 Soit G = (V, E, w) un graphe orient´e et π = hv0, ..., vki un chemin dans

G. La longueur de π est : l(π) = k X i=1 w(vi−1, vi)

Il est alors possible de d´efinir la notion de plus court chemin :

D´efinition 4.4 Soit G = (V, E, w) un graphe orient´e. Un plus court chemin entre u ∈ V et v ∈ V est un chemin π∗ : u; v v´erifiant l’´equation :

l(π∗) = min

π:u;vl(π)

La fonction w prenant ses valeurs dans R, la pr´esence de cycles de longueur n´egative dans un graphe est possible. Or, s’il existe un chemin de la forme π = hu, ..., c, w0, ..., wk, c, ..., vi

tel que γ = hc, w0, ..., wk, ci est un cycle de longueur n´egative, alors minπ:u;vl(π) = −∞.

Comme il n’existe pas de chemin ayant une longueur infinie, il ne peut exister de plus court chemin entre u et v. Par la suite, on consid´erera donc uniquement les graphe sans cycle n´egatif afin de s’assurer de l’existence d’un plus court chemin entre n’importe quel couple de sommets du graphe d`es lors qu’il existe au moins un chemin entre ces sommets. On peut alors d´efinir la notion de distance d’une source vers un sommet quelconque du graphe. D´efinition 4.5 Soit G = (V, E, w) un graphe orient´e. Soit s ∈ V un sommet source. On d´efinit la fonction distance ds: V → R tel que :

∀v ∈ V, ds(v) =

 minπ:u;vl(π) si v est atteignable

Th´eor`eme 4.1 Soient G = (V, E, w) un graphe orient´e et s ∈ V un sommet source. Soit ds la fonction distance. Pour tout (u, v) ∈ E tel que −∞ < ds(u) < +∞ la condition de

Bellman est satisfaite :

ds(v) ≤ ds(u) + w(u, v)

De plus si hs, ..., u, vi est le plus court chemin de s `a v alors : ds(v) = ds(u) + w(u, v)

Preuve Par l’absurde : supposons qu’il existe un arc (u, v) ∈ E tel que ds(v) > ds(u) +

w(u, v). Soit ν = hs, ..., ui le plus court chemin de s `a u et µ = hs, ..., u, vi. On a l(ν) = ds(u)

l(µ) = l(ν) + w(u, v) = ds(u) + w(u, v)

Par hypoth`ese on a l(µ) < ds(v) ce qui contredit le fait que ds(v) = infπ:s;vl(π). 2

On d´efinit ensuite l’arbre des plus courts chemins (ou shortest path tree).

D´efinition 4.6 Soient G = (V, E, w) un graphe orient´e et s ∈ V un sommet source. On appelle arbre des plus courts chemins ayant s comme racine tout arbre T (s) = (V0, E0) tel que :

1. V0 ⊆ V et E0 ⊆ (V0× V0) ∩ E ;

2. ∀v ∈ V0, −∞ < ds(v) < +∞ ;

3. ∀(u, v) ∈ E0, ds(v) = ds(u) + w(u, v).

Ainsi un arbre des plus courts chemins T (s) contient tout les sommets v de G at- teignables depuis la source s (ds(v) < +∞) sans contenir de cycle de longueur n´egative

(−∞ < ds(v)). Tout chemin dans T (s) est donc un plus court chemin dans G.

Il est possible d’avoir, pour une mˆeme destination, plusieurs plus courts chemins. Comme l’arbre des plus courts chemins n’en contient qu’un seul, celui-ci peut ne pas ˆetre unique.

Grˆace aux d´efinitions pr´ec´edentes, il est d´esormais possible de d´efinir la notion de calcul des plus courts chemins venant d’une source unique (single-source shortest paths problem). D´efinition 4.7 Soient G = (V, E, w) un graphe orient´e et s ∈ V un sommet source. On d´efinit le probl`eme des plus courts chemins venant d’une source unique comme ´

etant le calcul d’un arbre des plus courts chemins ayant s comme racine.

De mˆeme on peut alors introduire le concept des plus courts chemins toutes paires (ou all-pair shortest paths).

D´efinition 4.8 Soient G = (V, E, w) un graphe orient´e. On d´efinit le probl`eme des plus courts chemins toutes paires comme ´etant le calcul des plus courts chemins entre toutes les paires de sommets possibles du graphe.

4.1.2

Technique de repond´eration

On pr´esente ici une technique, dit de reweighting ou repond´eration, permettant, `a partir d’un graphe quelconque, en modifiant le poids des arcs qui le composent, de g´en´erer un graphe orient´e sans arc de poids n´egatif. On obtient grˆace `a cette technique une propri´et´e importante : les plus courts chemins sont les mˆemes dans le graphe initial et dans le graphe ainsi g´en´er´e. Ceci permet de justifier l’utilisation d’algorithmes ne travaillant que sur des graphes `a arcs de poids non n´egatifs.

D´efinition 4.9 Soit G = (V, E, w) un graphe orient´e. Soit h : V → R une fonction quelconque d´efinie sur l’ensemble des sommets du graphe. On appellera h la fonction po- tentielle. On d´efinit ˆw : E → R la fonction de repond´eration de w telle que :

∀(u, v) ∈ E, ˆw(u, v) = w(u, v) + h(u) − h(v)

Mˆeme si la fonction h utilis´ee dans la d´efinition pr´ec´edente est totalement arbitraire, on obtient la propri´et´e suivante (voir [Cormen 01] pour la d´emonstration).

Th´eor`eme 4.2 Soit G = (V, E, w) et ˆG = (V, E, ˆw) deux graphes orient´es ayant le mˆeme ensemble de sommets et d’arcs et o`u ˆw est la fonction de repond´eration de w. Un chemin π∗ est un plus court chemin dans G si et seulement si π∗ est un plus court chemin dans ˆG. De plus, γ est un cycle de longueur n´egative dans G si et seulement si γ est un cycle de longueur n´egative dans ˆG.

Si la fonction potentielle est la fonction de distance ds alors ˆw est une fonction de

repond´eration `a valeur dans R+.

Th´eor`eme 4.3 Soient G = (V, E, w) un graphe orient´e, s ∈ V un sommet source et ds : V → R la fonction distance depuis s. Si ˆw(u, v) = w(u, v) + ds(u) − ds(v) alors

∀(u, v) ∈ E, ˆw(u, v) ≥ 0

Preuve Le th´eor`eme 4.1 nous assure que ds(v) ≤ ds(u) + w(u, v). Ainsi :

0 ≤ ds(u) + w(u, v) − ds(v) = ˆw(u, v)

2 On remarque que cette technique de repond´eration ayant pour fonction potentielle la fonction de calcul de la distance n’est pas utilisable pour r´esoudre le probl`eme du calcul de l’arbre des plus courts chemins puisqu’il faut que les diff´erentes distances soient d´ej`a calcul´ees. En revanche c’est cette technique qui est `a la base des meilleurs algorithmes pour r´esoudre la version dynamique du probl`eme (section 4.3) et permet de limiter ceux-ci aux graphes d’arcs de poids non n´egatif.