1 Licence dinformatique Algorithmique des graphes Problèmes dordonnancement. Utilisation de ce document strictement réservée aux étudiants de l IFSIC dans le cadre de leur formation. Reproduction ou diffusion en dehors de l IFSIC strictement interdite sauf autorisation expresse de l auteur.
2 Problèmes dordonnancement Données : Un projet composé de n tâches Chaque tâche peut être soumise à un ensemble de contraintes Deux « tâches » fictives : début, fin (durées nulles)
3Contraintes Relations entre des événements liés à lexécution des tâches Exprimées par des relations sur les dates de début dexécution des tâches
4 La tâche A j commence au plus tôt à la fin de A i A j commenceExemples Séquentialité : fin de A i tjtj au plus tôt t i + d i Séquentialité avec délai : La tâche A j commence au plus tôt unités de temps après la fin de A i A j commence tjtj au plus tôt fin de A i t i + d i unités de temps après +
5 La tâche A j commence au plus tard à la fin de A i A j commenceExemples Date butoir : fin de A i tjtj au plus tard t i + d i Synchronisation : La tâche A j commence exactement à la fin de A i A j commence tjtj exactement = fin de A i t i + d i soit :
6 Lévénement « les 3/4 de lexécution de A j » coïncide avec « la moitié de lexécution de A i »Exemples Synchronisation plus complexe : t j d j = t i d i les 3/4 de l exécution de A j coïncide avec la moitié de l exécution de A i
7 Contraintes non-déterministes Contrainte qui peut être satisfaite par un choix (non-déterministe) Exemple : Paire de disjonction (exclusion mutuelle) Les tâches A j et A i ne peuvent être simultanément en exécution t j t i + d i OU t i t j + d j
8 Contraintes non-déterministes Contraintes déterministes : Système conjonctif dinéquations de la forme Système disjonctif dinéquations de la forme
9 Les problèmes à contrainte déterministes sont plus « faciles » à traiter
10 Ordonnancements : Formulation des problèmes Ordonnancement :compatible : solution du système de contraintes (conjonctif ou non)
11 Ordonnancements : Deux problèmes « centraux » Déterminer un ordonnancement compatible se terminant le plus tôt possible (c.-à-d. de durée dexécution minimale) Problème 1 : Problème 2 : Déterminer un ordonnancement compatible se terminant avant une date finale donnée (c.-à-d. de durée dexécution majorée par une durée donnée)
12 Ordonnancements à contraintes déterministes: Modélisation par graphe « potentiel-tâche » Sommets tâches Arcs (valués) inéquations ij
13 Contraintes implicites : relatives au début : aucune tâche ne commence avant le début! deb i 0 Inutile (redondante) si le sommet i reçoit déjà un arc de valeur positive ou nulle : deb i 0 j 0
14 Contraintes implicites : relatives à la fin : le projet ne peut être terminé avant que toutes les tâches soient terminées Inutile (redondante) si un arc de valeur di di est déjà issu du sommet i : i fin i j
15 Tâche Durée Contraintes A6 début au plus tôt 3 jours après le début du projet début au plus tard 2 jours après le début de B B9début au plus tôt 5 jours après le début du projet début au plus tôt 4 jours après le début de C C10début au plus tôt 4 jours après le début du projet D9début au plus tôt à la fin de A début au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B Lévénement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G Exemple de modélisation
16 Tâche A6 début au plus tôt 3 jours après le début du projet début au plus tard 2 jours après le début de B B9début au plus tôt 5 jours après le début du projet début au plus tôt 4 jours après le début de C C10début au plus tôt 4 jours après le début du projet D9début au plus tôt à la fin de A début au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B Lévénement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G deb F B C AD E G H fin
17 A6 début au plus tôt 3 jours après le début du projet début au plus tard 2 jours après le début de B B9début au plus tôt 5 jours après le début du projet début au plus tôt 4 jours après le début de C C10début au plus tôt 4 jours après le début du projet D9début au plus tôt à la fin de A début au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B L événement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G deb F B C A D EGH fin 3 Arc (deb, A, 3)
18 A début au plus tard 2 jours après le début de B B9début au plus tôt 5 jours après le début du projet début au plus tôt 4 jours après le début de C C10début au plus tôt 4 jours après le début du projet D9début au plus tôt à la fin de A début au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B L événement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (A, B, -2) deb F B C A D EGH fin 3
19 B9début au plus tôt 5 jours après le début du projet début au plus tôt 4 jours après le début de C C10début au plus tôt 4 jours après le début du projet D9début au plus tôt à la fin de A début au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B L événement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (deb, B, 5) deb F B C A D EGH fin 3 5
20 B début au plus tôt 4 jours après le début de C C10début au plus tôt 4 jours après le début du projet D9début au plus tôt à la fin de A début au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B L événement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (C, B, 4) deb F B C A D EGH fin 3 5 4
21 C10début au plus tôt 4 jours après le début du projet D9début au plus tôt à la fin de A début au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B L événement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (deb, C, 4) deb F B C A D EGH fin
22 D9début au plus tôt à la fin de A début au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B L événement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (A, D, 6) deb F B C A D EGH fin durée de A : 6 6
23 Ddébut au plus tôt 3 jours après la fin de B E16début au plus tôt à la fin de B L événement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (B, D, 12) deb F B C A D EGH fin durée de B :
24 E16début au plus tôt à la fin de B L événement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (B, E, 9) deb F B C A D EGH fin durée de B :
25 ELévénement « 8 jours après le début de E » intervient au plus tôt 2 jours après le début de F F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (F, E, -6) deb F B C A D EGH fin
26 F15début au plus tôt à la fin de C G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (C, F, 10) deb F B C A D EGH fin durée de C : 10 10
27 G13début au plus tôt à la fin de D début au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (D, G, 9) deb F B C A D EGH fin durée de D :
28 Gdébut au plus tôt 8 jours après le début de F H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (F, G, 8) deb F B C A D EGH fin
29 H4début au plus tôt à la fin de E début au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (E, H, 16) deb F B C A D EGH fin durée de E : 16 16
30 Hdébut au plus tôt 8 jours après le début de F début au plus tôt 3 jours après le début de G -2 Arc (F, H, 8) deb F B C A D EGH fin
31 Hdébut au plus tôt 3 jours après le début de G -2 Arc (G, H, 3) deb F B C A D EGH fin
32 -2 deb F B C A D EGH fin Contraintes implicites :début Déjà toutes prises en compte
33 -2 deb F B C A D EGH fin Contraintes implicites :fin Tâches A, B, C, D, E : durées déjà prises en compte durées : , 9, 10, 9, 16
34 -2 deb F B C A D EGH fin Contraintes implicites :fin Tâche F : durée : 15 Arc (F, fin, 15) 15
35 -2 deb F B C A D EGH fin Contraintes implicites :fin Tâche G : durée : 13 Arc (G, fin, 13) 15 13
36 -2 deb F B C A D EGH fin Contraintes implicites :fin Tâche H : durée : 4 Arc (H, fin, 4)
37 deb F B C A D EGH fin le graphe « Potentiel-Tâche »
38 Résolution des problèmes possède les propriétés suivantes : 1. Il est compatible 2. Si T est un ordonnancement compatible, alors En particulier, fin est minimum Problème 1 avecvaleur maximale des chemins de deb à i Ordonnancement « au plus tôt »
39 valeur maximale des chemins de deb à i est compatible En effet : Dans le problème (MAX,+), les valeurs optimales i constituent la SOLUTION minimale du système déquations
40 valeur maximale des chemins de deb à i est compatible
41 2. Si T est un ordonnancement compatible, alors En effet : Le vecteur T est solution du système déquations
42 2. Si T est un ordonnancement compatible, alors De plus : Dans le problème (MAX,+), les valeurs optimales i constituent la solution MINIMALE du système déquations
43 2. Si T est un ordonnancement compatible, alors Donc : Dans le problème (MAX,+), les valeurs optimales i constituent la solution MINIMALE du système déquations
44 Résolution des problèmes Lordonnancement défini par avec i = valeur maximale des chemins de i à fin possède les propriétés suivantes : 1. Il est compatible Problème 2Soit F une date finale donnée, 2. Si T est un ordonnancement compatible avec Ordonnancement « au plus tard » relatif à la date finale F
45 valeur maximale des chemins de i à fin dans le graphe G Dans le problème (MAX,+), les valeurs optimales i constituent LA solution MINIMALE du système déquations valeur maximale des chemins de fin à i dans le graphe transposé G t
46 est compatible
47 2. Si T est un ordonnancement compatible, alors Démonstration analogue à celle du problème 1 (détails dans le polycopié)
48 Ce nest JAMAIS le cas! (sauf, peut-être, si toutes les tâches avaient des durées nulles) Algorithmes de résolution BELLMANN-KALABA : toujours possible DIJKSTRA ? Condition pour (MAX,+) : Tous les arcs ont des valeurs 0 jamais possible
49 Algorithmes de résolution BELLMANN-KALABA : toujours possible DIJKSTRA ? jamais possible Lalgorithme ORDINAL-RACINE ? Conditions : graphe sans circuit sommet de départ racine du graphe
50 Un graphe potentiel-tâche est-il sans circuit? Pas nécessairement! Mais : Il ne doit pas avoir de circuit de valeur > 0
51 Il ne doit pas avoir de circuit de valeur > 0 a b c d x y z t Contradiction!
52 Il ne doit pas avoir de circuit de valeur > 0 Si tous les arcs sont de valeur > 0 (sauf peut-être ceux issus de deb ou aboutissant à fin) alors le graphe potentiel-tâche est sans circuit ou il ny a pas dordonnancement compatible
53 Méthode préconisée : si on soupçonne des circuits, deux phases: 1. « supprimer » les arcs de valeur 0 (non issus de deb) Appliquer lalgorithme ordinal-racine. 2. « réintroduire» les arcs de valeur 0 Pour chaque arc, procéder aux ajustements des valeurs des extrémités.
54 Principe de lalgorithme ordinal (rappel) Cest du Marimont à partir des points dentrée, avec prise en compte des valeurs des arcs deb « marqué » 0 Soit x un sommet non marqué, dont tous les prédécesseurs sont marqués. Marquer x avec la valeur (définitive)
55 Exemple : le problème modélisé précédemment F B C AD E G H fin deb On ne soupçonne pas de circuit (malgré des arcs de valeur <0)
56 deb F B C A D EGH fin Algorithme ordinal (0) (4) (3) (8) (14) (20) (29) (17) (33)(42) Ordonnancement au plus tôt Deb A B C D E F G H fin
57 findeb F BC A D E GH fin Algorithme ordinal à partir de la fin Ordonnancement au plus tôt Deb A B C D E F G H fin (0) (4) (13) (20) (22) (21) (34) (32) (38) (42) Valeurs max vers fin Ordonnancement au plus tard
58 On rajoute une contrainte supplémentaire H ne se termine pas plus tard que 4 u.t. après la fin de F deb F B C A D EGH fin Arc (H, F, -11) -11 Durée de F = 15, durée de H = 8
59 On rajoute une contrainte supplémentaire deb F B C A D EGH fin (0) (4) (3) (8) (14) (20) (29) (17) (33)(42) -11 Mise à jour de lordonnancement au plus tôt ? NON! 22
60 On rajoute une contrainte supplémentaire deb F B C A D EGH fin (0) (4) (3) (8) (14) (20) (29) (17) (33)(42) -11 Mise à jour de lordonnancement au plus tôt ? NON! 22 30
61 On rajoute une contrainte supplémentaire deb F B C A D EGH fin (0) (4) (3) (8) (14) (20) (29) (17) (33)(42) -11 Mise à jour de lordonnancement au plus tôt ? OUI! 22 30
62 On rajoute une contrainte supplémentaire deb F B C A D EGH fin (0) (4) (3) (8) (14) (20) (29) (17) (33)(42) -11 Mise à jour de lordonnancement au plus tôt ? NON!
63 On rajoute une contrainte supplémentaire deb F B C A D EGH fin (0) (4) (3) (8) (14) (20) (29) (17) (33)(42) -11 Mise à jour de lordonnancement au plus tôt ? OUI!
64 On rajoute une contrainte supplémentaire deb F B C A D EGH fin (0) (4) (3) (8) (14) (20) (29) (17) (33)(42) -11 Mise à jour de lordonnancement au plus tôt ? OUI!
65 On rajoute une contrainte supplémentaire deb F B C A D EGH fin (0) (4) (3) (8) (14) (20) (29) (17) (33)(42) -11 Mise à jour de lordonnancement au plus tôt Mise à jour terminée Nouvelle date finale « au plus tôt » : 43
66 Mise à jour de lordonnancement au plus tard/date finale 43 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 NON! 10 ?
67 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 OUI! 10 ?
68 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 OUI! 10 ?
69 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 NON! 10 ? 26
70 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 OUI! 10 ? 26
71 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 NON! 10 ? 26 35
72 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 NON! 10 ?
73 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 NON! 10 ?
74 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 OUI! 10 ?
75 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 NON! 10 ?
76 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs -11 OUI! 10 ?
77 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Mise à jour des valeurs Terminée
78 On rajoute une contrainte supplémentaire deb F BC A D E GH fin (0) (4) (20) (22) (21) (34) (32) (38) (42) (13) Nouvel ordonnancement « au plus tard »/date finale 43 : Deb A B C D E F G H fin Ancien Nouveau