Ordonnancement des mouvements de deux robots d'une machine d'analyse de produits sanguins. P. Baptiste (École Polytechniques de Montréal), M. Cheurfa (École des Mines de Saint Etienne)
plan Contexte du travail. Position du problème. Modélisations du problème. Méthodes de résolution. Conclusion.
Contexte du travail
Entreprise NOVILOIRE 18, avenue du Polygone 42300 Roanne Tel : 04 77 44 49 80 Fax : 04 77 44 49 88 Créé au début des années 80; Conception et fabrication des automates d'analyses.
La machine d’analyse R2 R1 N1 N2 P2 Réactifs P3 Plaque d’analyse P4 Échantillons
Caractéristiques de la machine Le plateau P1 peut être accédé par R1et par R2 en même temps. Le plateau P2 ne peut être accédé par R1et par R2 en même temps. Le plateau P3 peut être accédé seulement par R1. Le plateau P4 peut être accédé seulement par R2. Le temps de déplacement des robots entre deux plateaux est identique. À la fin de chaque prise, on procède à un nettoyage : ce temps de nettoyage est le même pour les deux robots.
Schématisation des mouvements P3 N1 P1 P2 P’1 P4 N2 Passage des jobs traités par R1 Passage des jobs traités par R2
Contraintes de précédences entre les jobs. Types de Jobs Jobs affectés au robot R1. Jobs affectés au robot R2. Jobs non encore affectés. Contraintes de précédences entre les jobs.
Position du problème
Objectif Ordonnancement des jobs en vue de minimiser la durée totale des analyses.
Modélisations du problème.
Modélisation du problème (1) Affecter les jobs non encore affectés; Établir une partition des jobs devant se faire sur chaque robot; Ordonnancer chacune des deux listes; Simuler l'ordonnancement en choisissant dans chaque liste avec une règle de priorité.
L’ensemble des Mouvements sur Liste des jobs sur R1 Liste des jobs sur R2 ordonnancement ordonnancement Mouvements sur R1 Ordonnancés Mouvements sur R2 Ordonnancés Règle de priorité L’ensemble des Mouvements sur R1 et R2 Ordonnancés
L’ensemble des Mouvements sur Modélisation du problème (2) Affecter les jobs non encore affectés; Créer une seule liste en combinant les deux types de Jobs; Ordonnancer les jobs au plus tôt dans l'ordre d'apparition. Liste des tous les jobs affectés ordonnancement L’ensemble des Mouvements sur R1 et R2 Ordonnancés
Optimiser l'ordre initial. L'algorithme de résolution Affecter les jobs non affectés Choisir un ordre aléatoire initial Optimiser l'ordre initial. Remarque: L’affectation des jobs aux robots influe considérablement sur la durée de réalisation des analyses.
Résolution du problème. Problème d’ordonnancement Méthode descente; Méthode Tabou. Problème d’affectation Algorithme d équilibrage de charges; Algorithme exploitant importance de position; Algorithme exploitant la structure du graphe de precédences.
Le voisinage retenu est une permutation aléatoire de Descente1 Début PasTrouvé:=0; Tant que PasTrouvé < BorneSup faire Chercher un voisin de la solution; Si le voisin est meilleur alors adopter cette solution; Sinon PasTrouvé:= PasTrouvé+1; Fin Le voisinage retenu est une permutation aléatoire de deux jobs dans la liste
Tant que PasTrouvé < BorneSup faire Descente2 Début PasTrouvé:=0; Tant que PasTrouvé < BorneSup faire Chercher un voisin de la solution; Si le voisin est meilleur ou égal alors adopter cette solution; Si le voisin est strictement meilleur alors Sinon PasTrouvé:= PasTrouvé+1; Fin Nous avons accepté "d'explorer" des plateaux de solutions équivalentes pour trouver une "meilleure".
Remarques L ’efficacité de la Descente 2 par rapport à la Descente 1 se justifie par l’existence de nombreuses solutions équivalentes. Le système doit parcourir un grand espace de solutions avant de trouver la meilleure.
La méthode Tabou Le voisinage: une permutation de deux jobs de la liste. Liste tabou: Taille de la liste: fixée 7 éléments; Contenu de la liste: la relation d'antécédence qui existait entre les deux opérations permutées. Remarque: La méthode Tabou est moins efficace que les méthodes de descentes. La fonction de coût est très plate.
Algorithmes de pré-affectation Une bonne affectation des jobs nous permettra de diminuer la borne inférieure, et d’améliorer la qualité de la solution. Borne inférieure théorique: BI= (T1+T2+T3)/2 T1: total des jobs affectés au robot R1; T1: total des jobs affectés au robot R2; T1: total des jobs non affectés;
Algorithme1: équilibrage des charges des robots. Début Calculer la charge de chaque robot; Tant qu'il reste des tâches non affectées faire Prendre la première non affectée; L’affecter au robot le moins chargé; Mettre à jour l'affectation de ce robot. Fin Fin. Inconvénient Cet algorithme induit des problèmes lorsque des tâches affectées à un seul robot précèdent les autres : le second robot ne travaille pas au début de l'ordonnancement et équilibrer la charge revient à surcharger le second dans la suite.
Exemple Jobs à affecter au R2. Jobs affectés au R1 R1 R2
Algorithme2:importance de position. Début Calculer pour chaque tâche la somme des durées de tous ses successeurs (importance de position); Classer les tâches par ordre décroissant de cet indicateur ; Tant qu'il reste des tâches non affectées faire Chercher le robot qui s'arrête le premier; Chercher la première tâche plaçable dans la liste; Affecter cette tâche à ce robot. Fin Fin. Inconvénient Si les dernières tâches sont toutes affectées au même robot, le résultat sera mauvais.
Exemple Jobs à affecter au R2. Jobs affectés au R1
Algorithme3: structure du graphe de precédences. Début Classer les tâches en deux groupes : G1 : tâches ayant dans leur successeurs au moins une tâche affectée; G2 : les autres; Classer les groupes G1 et G2 par ordre décroissant de la sommes des durées des successeurs; Tant qu'il reste des tâches non affectées faire Prendre le premier robot qui s’arrête; Chercher dans G1 la première tâche affectable à ce robot; Si trouvé alors la placer Sinon Chercher une dans G2 et la placer. Fin
Conclusion
Résolution préconisée 3 ème Algorithme d’affectation; Descente 2 (acceptation des voisins égaux).