On appelle problème du plus court chemin le problème suivant :
Etant donné un graphe G, associons à chaque arc u un nombre l(u)>=0 que nous appellerons « la longueur » de l’arc u.
Trouver un chemin élémentaire µ, allant d’un sommet a à un sommet b et tel que la longueur totale
l(µ)=∑u=µ l(u)
Soit aussi petite que possible.
EXEMPLE
Considérons une carte de géographie, et cherchons la route la plus courte pour se rendre d’une localité a à une localité b. On tracera le graphe en remplaçant chaque route entre deux localités par deux arcs d’orientation opposées, et on résoudra le problème du plus court chemin en prenant pour li la longueur kilométrique de la route correspondant à l’arc i.
On peut aussi, de cette façon chercher le trajet le plus « rapide » ou le plus « économique », etc.…
Le problème du plus court chemin a été résolu de façons analogue par de nombreux auteurs ; le plus rapide moyens de calcul semble être l’algorithme suivant proposé par G.Dantzig :
Considérons sur le graphe le sommet de départ a=a1, le sommet d’arrivée b=an et déterminons pour tout sommet x un nombre t(x), qui sera le « temps minimum d’arrivée en x ».
On opère par étapes :
1. Au début, on pose t(a1)=0. Cette fonction est donc définie sur l’ensemble A1= {a1} ;
2. Supposons que à la kème étape on ait définit la fonction t sur un ensemble un ensemble Ak ={a1,....,ak} ; on associera à chaque sommet aj ∈ ak un sommet bj <> Ak tq (aj,bj) ∈U et tq la longueur l(aj,bj) soit minimum ; puis on cherchera le sommet aq∈ Ak tq
t(aq)+l(aq,bq)=minj{t(aj)+l(aj,bj)}
On pose alors :
Ak+1=Ak U {bq},
t(bq)=t(aq)+l(aq,bq).
Montrons que t(bq)représente bien le temps minimum d’arrivée en bq et que le plus court chemin pour aller en bq passe par aq ;en effet admettons que t(aj) soit le temps minimum d’arrivées en aj (pour tout aj ∈Ak) ;tout chemin qui sort de Ak a une longueur>= t(aq)+l(aq,bq)=t(bq), et pour aller en bq on est bien forcé de sortir de Ak,puisque a1∈Ak
On montera que chaque fois qu’on décide d’un sommet bq, on peut sans inconvénients supprimer dans le graphe tous les arcs entrant dans bq
Rq
Admettons qu’on puisse sans difficultés trouver le sommet bj qu’on doit associer à aj ∈ Ak ; pour décider du (k+1)ième sommet, il suffit alors de faire seulement K comparaisons : le nombre maximum de comparaisons à effectuer pour un graphe G de n sommet est :
1+2 + + (n-1)=1/2*n(n-1).
On peut aussi procéder avec un deuxième dessinateur qui simultanément, et de la même façon, déterminera des coefficients t(bi) représentant la longueur des plus court chemin allant de b à c.