Ordonnancement

publicité
TD 3 : Ordonnancement
Recherche opérationnelle S3.
2016-2017
Exercice 1 — Ordonnancement sous contraintes de ressources- Méthode heuristique
On considère le problème d’ordonnancement suivant où on suppose que le nombre d’employés
est limité à 5.
tâche
durée
tâches précédentes
nombre d’employés
A
B
C
D
E
F
G
6
3
6
2
4
3
1
B
B
DA
FEC
3
2
1
1
3
3
2
Les méthodes PERT/Potentiel tache ne permettent pas de tenir compte des contraintes de
ressources comme le nombre d’employés. On présente ici une heuristique dite "‘méthode sérielle"’
(ou algorithme de liste). Attention : les heuristiques ne garantissent en général pas de trouver une
solution optimale :
a) Définir un ordre de priorité des tâches respectant la contrainte de précédence
b) Pour chacune des tâches t, dans cet ordre
A) Considérer le plus petit instant τ où la tâche t est disponible (contraintes de précédence
et ressources).
B) Définir l’instant de départ de la tâche t comme τ
Nous allons appliquer cette heuristique à notre exemple.
1. En appliquant la méthode potentiel tâche, trouver un ordonnancement optimal ne tenant
pas compte des contraintes de ressources. Cet ordonnancement respecte-t-il les contraintes
de ressources ? Donner les dates au plus tard des tâches.
2. Appliquer la méthode sérielle en donnant la priorité à la tâche de plus petite date au plus
tard.
3. Tracer le diagramme de GANTT de l’ordonnancement obtenu.
Exercice 2 — Ordonnancement d’atelier
Cinq tâches doivent être effectuées sur une machine M1 puis sur une machine M2, dans le même
ordre. À la fin de son exécution sur M1, chaque tâche peut commencer son exécution sur M2 si la
machine est disponible ou sinon elle doit attendre qu’elle le soit. Les durées d’exécution des tâches
sur les deux machines sont données dans le tableau suivant :
Durée t(j, M )
j1
j2
j3
j4
j5
M1
M2
50
60
150
50
80
150
200
70
30
200
1
1. Si les tâches s’exécutent dans l’ordre j1 , j2 , j3 , j4 , j5 , quelle est la durée totale d’exécution sur
les 2 machines ?
2. Appliquer l’algorithme de Johnson pour trouver un ordre qui minimise la durée totale d’exécution.
3. Quelle est la complexité de cet algorithme ?
4. On suppose prouvé que la solution est optimale si on vérifie, pour tout couple de tâches
i précédant j, min(t(i, M1 ), t(j, M2 )) ≤ min(t(i, M2 ), t(j, M1 )). Montrer que le résultat de
l’algorithme de Johnson est optimal.
Exercice 3 — Ordonnancement d’atelier à 3 machines
Le sujet est le même que dans l’exercie précédent, mais avec 3 machines.
t(j, M )
M1
M2
M3
j1
60
40
40
j2
40
20
60
j3
80
10
70
j4
70
30
100
j5
100
20
50
j6
50
30
80
1. On considère le problème virtuel constitué de deux machines M1’ et M2’ telles que t(j, M10 ) =
t(j, M1 ) + t(j, M2 ) et t(j, M20 ) = t(j, M2 ) + t(j, M3 ). Appliquer l’algorithme de Johnson pour
trouver un ordre qui minimise la durée totale d’exécution sur ce problème.
2. Quel est le temps d’exécution optimal sur le problème virtuel ?
3. Quel est le temps d’exécution sur le problème réel ?
4. Testez l’algorithme sur l’exemple suivant
t(j, M )
M1
M2
M3
j1
10
70
20
j2
20
80
00
j3
40
20
30
5. Comparez la solution obtenue avec celle qui consiste à effectuer les tâche dans l’ordre j3 j1 j2 .
L’algorithme est-il toujours optimal ?
6. L’algorithme est optimal dans le cas de la question 1 mais pas dans le cas de la question 4.
Qu’est-ce qui peut expliquer cela ?
2
Téléchargement