Le problème du plus long chemin dans les digraphes sans circuits trouve une application dans l'ordonnancement et la planification des tâches composant un projet complexe, par exemple la construction d'une maison.
On fait correspondre à chaque tâche un arc d'un digraphe, sa durée d'exécution étant égale au poids de cet arc. Le digraphe reflète les précédences requises dans l'exécution du projet. Ainsi, la tâche correspondant à l'arc (i, j) ne peut commencer que si toutes les tâches correspondant à des arcs (k, i) ont été complétées. Le digraphe peut contenir des tâches fictives de durée nulle afin de forcer certaines précédences.
Les sommets du digraphe représentent des événements, début (fin) des activités correspondant aux arcs dont ils sont l'extrémité initiale (finale). Le fait que le digraphe est sans circuit est garant de la faisabilité du projet. En effet, l'existence d'un circuit impliquerait une contradiction dans les précédences : une tâche devant en même temps précéder et succéder une autre!
On supposera dorénavant que les sommets ont déjà été numérotés de 1 à n de manière compatible avec leurs rangs, c'est-à-dire que r(j)>r(i) implique j>i (voir l'algorithme de calcul du rang). En plus, si le digraphe possède plusieurs sommets sans prédécesseurs, on supposera avoir introduit un sommet 1 relié par un arc de durée nulle à chacun de ces sommets. Ce sommet indique le début du projet. De même, si le digraphe possède plusieurs sommets sans successeurs, ceux-ci seront reliés par un arc de durée nulle à un dernier sommet n (fin du projet). Enfin, on supposera éliminés les arcs parallèles par l'introduction de tâches fictives.
Algorithme du chemin critiqueDonnées : Digraphe G = (V, E), sans circuits, des activités avec leur durée dik.Résultat :
I. Calcul des dates de début au plus tôt (récurrence en avançant dans le projet) d1 := 0 Pour k := 2 à n faire dk := max{dj + djk | j II. Calcul des dates de fin au plus tard (récurrence en reculant dans le projet) jn := dn Pour k := n-1 à 1 faire jk := min{jj - dkj | j Fin.
Notations: |
| Ci-contre le graphe des précédences obtenu avec l'algorithme du chemin critique. Les sommets et les arcs critiques sont en rouge.
|
![]()
|
|
Tâches |
Précédences |
Durée [jours] |
|
A |
Enlèvement des portes |
- |
1/2 |
B |
Ponçage et peinture des portes |
A |
3 |
C |
Pose des portes |
B, J |
1/2 |
D |
Arrachage des papiers peints |
- |
1 |
E |
Tirage des fils électriques |
D |
1 |
F |
Pose des prises |
E, H, I |
1/2 |
G |
Ragréage des murs |
E, A |
2 |
H |
Peinture du plafond |
G |
2 |
I |
Pose des papiers peints |
G |
3 |
J |
Peinture des cadres |
H, I |
1 |
K |
Arrachage de la moquette |
H, I, J |
1/2 |
L |
Ponçage du parquet |
K |
1 |
M |
Imprégnation et séchage du parquet |
L, F |
4 |
N |
Peinture du balcon |
- |
2 |
O |
Changement des protections solaires |
N |
1 |
| Les corrigés sont disponibles, mais seulement pour les visiteurs autorisés! |