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