Box Methode M2 R
Upcoming SlideShare
Loading in...5
×
 

Box Methode M2 R

on

  • 857 views

 

Statistics

Views

Total Views
857
Views on SlideShare
857
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Box Methode M2 R Box Methode M2 R Presentation Transcript

  • Université François Rabelais ECOLE POLYTECHNIQUE Département informatique 64 avenue Jean Portalis 37200 TOURS Rapport de stage Application de la méthode des boîtes pour échantillonner l’ensemble des optima de Pareto Vincent T’KINDT Rabah BELAÏD Laboratoire d’Informatique DI3 M2R 64 Avenue Jean Portalis 2007/2008 37200 TOURS
  • Table des matières 1 Le problème d’ordonnancement 6 1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.1.1 Présentation du problème d’ordonnancement . . . . . . . . . . . . . 6 1.1.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2 Résolution du Q|ri , pi = 1|Cmax . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.1 pseudo-code de l’algorithme : . . . . . . . . . . . . . . . . . . . . . 8 1.3 Résolution du Q|ri , pi = 1|Lmax . . . . . . . . . . . . . . . . . . . . . . . . 11 1.4 Objectif du travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.4.1 Optimalité dans les problèmes multicritères [5] . . . . . . . . . . . 12 1.4.2 Détérmination des optima de pareto . . . . . . . . . . . . . . . . . 12 1.4.3 Enumération des optima de pareto . . . . . . . . . . . . . . . . . . 14 2 La méthode des boites 16 2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2 la version lexicographique de l’approche ǫ-contrainte . . . . . . . . . . . . . 17 2.3 La méthode des boites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.4 La version a posteriori de la méthode des boites . . . . . . . . . . . . . . . 22 2.5 La version a priori de la méthode des boites . . . . . . . . . . . . . . . . . 23 2.6 Qualités de la représentation . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 Application au Q|ri , pi = p|Cmax , Lmax 26 3.1 la méthode des boites pour le problème Q|ri , pi = p|Cmax , Lmax 26 ˜ 3.2 Le problème de faisabilité Q|ri , pi = p, di |− . . . . . . . . . . . . . . . . . . 28 3.2.1 Modèle mathématique . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.2 Pseudo code de Qdec . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.3 Pseudo code de la deuxième version de Qdec : . . . . . . . . . . . . 34 3.3 Expérimentation numérique . . . . . . . . . . . . . . . . . . . . . . . . . . 37
  • Table des figures 1.1 Détermination par l’approche ǫ-contrainte . . . . . . . . . . . . . . . . . . 13 1.2 Enumération des optima de pareto stricts en utilisant l’approche ǫ-contrainte 15 2.1 La boîte initiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Partitionnement d’une boite . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 Résultat du partitionnement d’une boite . . . . . . . . . . . . . . . . . . . 21 2.4 Version a priori de la méthode des boites . . . . . . . . . . . . . . . . . . . 23
  • Remerciements Je remercie l’équipe Ordonnancement et Conduite de m’avoir bien accueillie pour ce stage du master 2 de recherche informatique. Je tiens tout particulièrement à remercier Monsieur Vincent T’KINDT, encadrant de mon stage de M2R, pour les connaissances, le soutien qu’il m’a apporté, et surtout pour la confiance qu’il a exprimé tout au long de ce stage.
  • Introduction Ordonnancer un ensemble de taches c’est leurs affecter des ressources limitées dans le temps en vue d’optimiser une ou plusieurs critères. Dans le cas des ordonnancements qui sont évalués sur un unique critère, la solution optimale est clairement définie contraire- ment aux ordonnancements évalués sur plusieurs critères. En effet, pour de tels problèmes, la solution cherchée est un ensemble de points correspondants aux meilleurs compromis possibles entre les critères. Le meilleur compromis est fixé par le décideur, il n’est pas figé, il n’est pas modéli- sable, il évolue aléatoirement dans le temps. Le prix du pétrole qui augmente implique que le coût du transport devient primordial, la perte de gros clients rend la productivité négligeable à coté du coût de stockage, des accords politiques sur le taux des émissions des gaz toxiques dont résulte une taxe et voila le coût de production qui redevient crucial. C’est dans ce contexte que ce place l’énumération des optima de Pareto, offrir au décideur la possibilité de choisir une solution parmi les meilleures. Nous nous intéressons dans ce travail à l’énumération des optima de pareto dans un problème à machines parallèles uniformes avec des taches identiques, cette configuration concorde avec les industries utilisant des machines neuves et modernes à cotés d’autres, moins efficaces et moins rapides, pour le traitement des mêmes taches, des traitements de lots. Le chapitre 1 de ce document est une introduction au problème d’ordonnancement que nous traitons, nous y rappelons certaines définitions élémentaires ainsi que des notations de bases qui seront utilisées par la suite. Le chapitre 2 est consacré à la méthode d’énumération utilisé dans ce travail, nous y décrirons ses fondements, son fonctionnement et ses qualités. Le chapitre 3 quand à lui est dédié à l’application de la méthode des boites sur le problème d’ordonnancement bicritères que nous traitons, nous y présentons l’évaluation d’un algorithme nécessaire à cette application. Nous finirons par une conclusion générale et des perspectives.
  • Chapitre 1 Le problème d’ordonnancement 1.1 Introduction 1.1.1 Présentation du problème d’ordonnancement Nous nous intéressons dans notre travail à l’énumération des optima de paréto d’un problème d’ordonnancement de travaux identiques avec différentes dates de débuts au plus tôt sur des machines parallèles uniformes, les critères à minimiser étant le Cmax et Lmax . En utilisant la notation introduite par Graham, notre problème serai noté Q|ri , pi = p, di |Cmax , Lmax . Nous avons donc n taches i qui seront ordonnancées sur m machines parallèles j. Chaque taches i est définie par sa date de début au plus tôt ri , sa date de fin souhaité di , et un temps opératoire pi . Toutes les taches ont le même temps opératoire, nous aurons ainsi ∀i = 1..n pi = p. elles doivent être totalement exécuté par une des machines et ce sans aucune interruption. Chaque machine j doit exécuter un travail à la fois, et ne se différencie des autres machines que par sa vitesse opératoire Vj d’où le nom machine parallèle uniforme. Ceci nous permet de définir le temps opératoire réel d’une tache i ordonnancé sur une machine j, qui serai pi,j = pi /Vj . Résoudre notre problème consiste à déterminer pour chaque tache i la machine j sur la quelle elle sera exécuter à un instant ti tel que ti ≥ ri , l’objectif étant de minimiser deux critères à la fois. Le premier critère est le maximum des dates de fin des taches Cmax (makespan), il est défini par Cmax = maxi=1..n {Ci }, avec Ci date de fin d’une tache i. Le second critère est le retard algébrique, il est défini par Lmax = maxi=1..n {Ci − di }. Trouver une solution qui permet de minimiser les deux critères simultanément dans un problème bi-critère n’est pas très évident, vu que l’existante d’une telle solution n’est généralement pas vérifié. Nous nous orientons donc vers l’énumération des optima de paréto stricts que nous définirons ultérieurement. 6
  • 1.1.2 Etat de l’art Dans la littérature, le nombre de travaux qui portent sur les problèmes à machines pa- rallèles identiques domine largement celui des problèmes à machines parallèles uniformes, ceci dit plusieurs résultats intéressant ont été établie. [4] on démontré que Q|ri|Cmax ainsi que Q|ri|Lmax étais NP-difficile. [1] proposent une heuristique avec une garantie de performance indépendante des vitesses des machines pour le Q|ri|Cmax . Pour des problèmes avec des taches identiques, [6] présentent des algorithmes polyno- miaux pour des problèmes de types Q|pi = 1|fmax qui sont équivalant au problèmes Q|pi = p|fmax . ils proposent un algorithme en O(n + mlog(m)) pour minimiser le Cmax et le C, et en O(nlog(n)) pour minimiser C w , Lmax , Tmax , et U w , et enfin en O(nlog 2 (n)) w pour Tmax . Lorsque les dates de début au plus tôt sont différentes, ils proposent un algorithme en O(nlog(n)) pour le Q|ri , pi = 1|Cmax . [3] traite le problème Q|ri , pi = 1|Lmax et propose une Procédure par Séparation et éva- luation très efficace. il insinue que ce problème est NP-difficile en se basant sur le résultat de [8] , qui ont démontré que Q|ri , pi = 1, di af f ectable|Cmax est NP-difficile au sens fort, mais il ne le démontre pas. Ce problème reste donc ouvert. 1.2 Résolution du Q|ri, pi = 1|Cmax [6] présentent une méthode séquentielle en O(nlog(n)) qui se base sur le principe LST (Latest Start T ime) pour résoudre le Q|ri , pi = 1|Cmax . C’est un algorithme en deux phases qu’on résume comme suit : ˜ Dans la première phase, une date de fin impérative commune d , assez grande pour que tous les travaux soient ordonnancés, est fixé. Le LST d’une tache i noté Si , ∀i = 1..n est défini comme étant sa date de début au plus tard, qui respecte la date de fin impérative ˜ d. L’affectation des taches sur les machines est déterminée en choisissant une tache i et en la plaçant sur la machine qui la commencera au plus tard. Le résultat de cette phase est un ensemble ordonné de date de début au plus tard et d’affectation sur les machines S ={S1 , .., Sn }. Dans la deuxième phase, les taches triées dans un ordre croissant des ri sont ordon- nancer en considérant leurs dates de début au plus tôt, et ce sur les machines déterminées par l’ordre inverse de l’ensemble S. L’ordonnancement obtenu ainsi est optimal. 7
  • 1.2.1 pseudo-code de l’algorithme : Etape 1 : /* Initialisation de l’algorithme */ T = {1, ..., n} ; // T ensemble des taches trié dans l’orde croissant des ri ’s AM = ∅ ; // AM contient l’ordre LST d’affectation sur les machines ˜ d ; //deadline assez grande pour ordonnancer toutes les taches M ˜ M Cj = d, ∀j = 1, ..., m ; // Cj est le completion time d’une machine j σ = ∅; Etape 2 : /* Etablissement de l’ordre LST */ Pour i = 1 a n faire M p M p une machine j est choisie tel que (Cj − Vj ) = max1≤k≤m (Ck − Vk ) ; AM = AM ∪ {j} ; M M p Cj = Cj − Vj ; FinPour Etape 3 : /* ordonnancement des taches */ M Cj = 0, ∀j = 1, ..., m ; Pour k = 1 a n faire soit i la tache T [k] ; soit j la machine AM [n − k] ; M ordonnancer i sur la machine j a t tel que : t = max(ri , Cj ) ; CjM =t+ p ; Vj σ = σ ∪ {i} ; FinPour considerons l’exemple suivant : n = 5, m = 2, p = 6, V1 = 3, V2 = 2, [ri ] = [1; 3; 5; 6; 7] 1. Première itération : début de la phase d’affectation. M ˜ T = {1, ..., 5}, AM = ∅, Cj = d = 16, σ = ∅. M la tache 1 est placée sur la machine 1, AM = [1], C1 = 14. M M 2. Deuxième itération : AM = [1], C1 = 14,C2 = 16. M M la tache 2 est placée sur la machine 2, AM = [1; 2], C1 = 14,C2 = 13. 8
  • M M 3. Troisième itération : AM = [1; 2], C1 = 14,C2 = 13. M M la tache 3 est placée sur la machine 1, AM = [1; 2; 1], C1 = 12,C2 = 13. M M 4. Quatrième itération : AM = [1; 2; 1], C1 = 12,C2 = 13. M M la tache 4 est placée sur la machine 1, AM = [1; 2; 1; 1], C1 = 10,C2 = 13. M M 5. Cinquième itération : AM = [1; 2; 1; 1], C1 = 10,C2 = 13. M M la tache 5 est placée sur la machine 2, AM = [1; 2; 1; 1; 2], C1 = 10,C2 = 10. fin de la phase d’affectation. 6. Sixième itération : début de la phase de séquencement. M M T = [1; 2; 3; 4; 5],AM = [1; 2; 1; 1; 2], C1 = 0,C2 = 0. 9
  • la tache 1 est ordonnancée sur la machine 2 à t = r1 = 1, AM = [1; 2; 1; 1; −], M M C1 = 0,C2 = 4, σ = σ ∪ {1}. M M 7. Septième itération : AM = [1; 2; 1; 1; −], C1 = 0,C2 = 4,σ = {1} la tache 2 est ordonnancée sur la machine 1 à t = r2 = 3, AM = [1; 2; 1; −; −], M M C1 = 5,C2 = 4, σ = σ ∪ {2}. M M 8. Huitième itération : AM = [1; 2; 1; −; −], C1 = 5,C2 = 4,σ = {1, 2} M la tache 3 est ordonnancée sur la machine 1 à t = 5, AM = [1; 2; −; −; −], C1 = M 7,C2 = 4, σ = σ ∪ {3}. M M 9. Neuvième itération : AM = [1; 2; −; −; −], C1 = 7,C2 = 4,σ = {1, 2, 3} la tache 4 est ordonnancée sur la machine 2 à t = 6, AM = [1; −; −; −; −], M M C1 = 7,C2 = 9, σ = σ ∪ {4}. 10
  • M M 10. Dixième itération : AM = [1; −; −; −; −], C1 = 7,C2 = 9,σ = {1, 2, 3, 4} M M la tache 5 est ordonnancée sur la machine 1 à t = 7, AM = ∅, C1 = 9,C2 = 9, σ = σ ∪ {5}. Fin de la phase de séquencement et arrêt de l’algorithme, la solution retourné est optimale. 1.3 Résolution du Q|ri, pi = 1|Lmax La complexité de ce problème est une question ouverte dans la littérature, il n’a pas été démontré qu’un problème NP-difficile pouvait se réduire à lui et il n’existe pas d’algorithme polynomial pour sa résolution. [3] propose une procédure par séparation et évaluation pour le Q|ri , pi = p, di |Lmax qui trouve une solution optimale en moins de 100 000 itérations pour des problèmes dont le nombre de travaux n ≤ 80 et le nombre de machines m ≤ 3. 1.4 Objectif du travail Comme nous l’avons énoncé dans la présentation du problème que nous traitons, notre objectif est de minimiser deux critères simultanément. Dans les problèmes d’ordonnance- ments dont l’objectif est d’optimiser un seul critère, la définition d’une solution optimale est évidente. En effet une solution appartient à l’ensemble R, et dans R on dispose d’un préordre total qui nous permet de comparer tous couple de solutions et de déterminer la meilleure. Dans les problèmes d’optimisation multicritères, la définition d’une solution optimale n’est pas aussi évidente, car il existe rarement une solution minimisant tous les critères simultanément, on s’intéresse plutôt à des solutions de meilleurs compromis. L’optimalité dans les problèmes multicritères fera l’objet de notre prochain paragraphe. 11
  • 1.4.1 Optimalité dans les problèmes multicritères [5] Soit S ⊂ RQ l’ensemble des solutions, et Z ⊂ Rk l’image dans l’espace des critères de S par k critères Zi . Soit la structure d’ordre associée à Rk tel que, ∀x, y ∈ Rk : x ≤ y ⇔ xi ≤ yi , ∀i = 1..K x = y ⇔ xi = yi , ∀i = 1..K Cette structure d’ordre définit un préordre partiel sur Rk , k ≥ 2, mais ne peut détermi- ner à chaque fois la meilleure solution à cause de l’incomparabilité de certains vecteurs. L’optimalité dans les problèmes d’ordonnancement multicritères est définit à l’aide de la notion d’optimum de pareto. Definition 1. x ∈ S est un optimum de Pareto faible (ou solution faiblement efficace), si et seulement si ∃ y ∈ S tel que ∀i = 1..k, Zi (y) < Zi (x). L’ensemble des optima de pareto faibles est noté W E. Definition 2. x ∈ S est un optimum de Pareto strict (ou solution efficace), si et seulement si ∃ y ∈ S tel que ∀i = 1..k, Zi (y) ≤ Zi (x). L’ensemble des oprima de pareto strict est noté E,et on a E ⊂ W E. Definition 3. un problème d’optimisation multicritère est défini comme suit :   Z1 (x)  Z (x)  minf (x) =  2  ...   ZK (x) avec x ∈ S 1.4.2 Détérmination des optima de pareto Après avoir définit les optima de Pareto, nous allons maintenant nous intéressé aux méthodes qui nous permettent de les calculer. Parmi ces méthodes nous définirons les deux qui sont utilisé dans la méthode des boites. 12
  • Approche ǫ-contrainte L’approche ǫ-contrainte est très souvent utilisé dans la littérature. Elle consiste à ramener un problème d’optimisation multicritère à un problème monocritère en fixant des bornes supérieures sur k − 1 des critères du problème multicritère initial. La fonction objective du problème sera noté ǫ(Z1 /Z2 , .., ZK ). Z1 sera le critère à minimiser et ∀i = 2, .., k Zi ≤ ǫ. Le problème monocritère résultant, noté (Pǫk ) , est le suivant : Min Zk (x) sachant que : x∈S Zi (x) ≤ ǫk , ∀i ∈ [1; k], i = k i Fig. 1.1 – Détermination par l’approche ǫ-contrainte Une solution optimale pour le Problème (PǫK ) est un optimum de pareto faible. Approche lexicographique Dans la méthode lexicographique, un ordre d’optimisation des critères est définit. Cette méthode est utilisée lorsqu’aucune compensation n’est autorisée sur les critères. L’ordre 13
  • établi reflète l’importance des critères, ainsi le critère le plus important sera optimisé en premier. La fonction objective du problème sera noté Lex(Z1 , Z2 , .., Zk ). Déterminer une solution optimale x0 pour le nouveau problème qui sera noté minLex (Z) est équivalent à trouver une solution x0 ∈ S k avec : S 1 = {x ∈ S/Z1 (x0 ) = minx∈S (Z1 (x))}, S 2 = {x ∈ S 1 /Z2 (x0 ) = minx∈S 1 (Z2 (x))},... S k = {x ∈ S k−1 /Zk (x0 ) = minx∈S k−1 (Zk (x))}, Proprietés : ∀x ∈ S i , 1 ≤ i ≤ K, x est optimum de pareto faible. ∀x ∈ S k , x est un optimum de pareto strict. 1.4.3 Enumération des optima de pareto Comme nous l’avons introduit dans la section précédente, un optimum de pareto est une solution de meilleur compromis. Dans la réalité il est difficile de savoir quel est l’op- timum de pareto le mieux adapté aux besoins et objectifs stratégiques de l’entreprise, la possibilité d’en choisir un parmi d’autres devient primordiale. L’énumération des optima de pareto répond à ce besoin, il s’agit d’approximer l’ensemble des optima de pareto strict. Enumeration basée sur l’approche ǫ-contrainte [9] Nous présentons dans ce paragraphe une méthode d’énumération pour des problèmes bicritère basé sur l’approche ǫ-contrainte. L’énumération est effectué itérativement en changeant le paramètre ǫ à chaque itération, tel que décrit sur la figure 1.2. Initialement on pose ǫ0 = HV, ou HV est une valeur suffisamment grande. On lance la méthode ǫ-contrainte avec le paramètre ǫ = ǫ0 ,On note l’optimum résultant z1. on fixe une nouvelle valeur pour ǫ qu’on notera ǫ1 tel que ǫ1 = z1 − 1. On relancera en 1 suite le calcul avec la nouvelle valeur de ǫ. Ce processus va être répéter jusqu’à ce que le problème ǫ-contrainte devienne infaisable, ce qui est le cas avec la valeur ǫ4 dans la figure 1.2. Enumération basée sur la méthode des boites La méthode des boites a été présenté par [2], c’est une méthode qui combine l’approche lexicographique et l’approche ǫ-contrainte pour l’énumération des optima de pareto strict. Elle fera l’objet de notre prochain chapitre. 14
  • Fig. 1.2 – Enumération des optima de pareto stricts en utilisant l’approche ǫ-contrainte 15
  • Chapitre 2 La méthode des boites Ce chapitre est consacré à la méthode des boites et est intégralement inspiré de [2]. Nous commencerons par introduire la notion de représentation de l’ensemble des optima de pareto stricts et les éléments qui déterminent sa qualité. En suite nous présenterons le principe de méthode des boites et décrirons les deux versions existantes. Nous finirons par présenter ses qualités. 2.1 Introduction Soit le problème d’optimisation bicritère suivant : Z1 (x) min f (x) = Z2 (x) avec x ∈ S Soit : Y = f (S) l’ensemble des solutions dans l’espace des critères. SE l’ensemble des optima de pareto strict et YE = f (SE ). [2] définissent une représentation ( appelée aussi approximation) Rep comme un ensemble de points tel que : Rep ⊂ Y . Cet ensemble de points est une approximation de l’ensemble YE , et comme Rep = YE la notion de qualité de la représentation est primordiale. Ils évaluent la qualité des représentations générer par leurs algorithme avec les attributs suivants : Cardinalité : La cardinalité porte sur la taille du système à représenter et de la repré- sentation, en effet le système doit être raisonnablement petit vu que le calcul de chaque point représentatif requière un certain effort. La cardinalité de la représentation doit aussi être raisonnable sinon, si elle contient un nombre important de points il sera difficile de choisir celui qui offre le meilleur compromis. 16
  • Précision : Une représentation précise reflète un ensemble de solutions non dominé complet. En d’autre terme la précision permet d’exclure les situations ou une majeure partie des solutions non dominées ne soit pas incluse dans la représentation. L’erreur de représentation : C’est la distance entre maxz∈Rep et miny∈YE noté z − y . Ainsi si tous les points de la représentation sont contenus dans YE alors l’erreur de représentation est nulle. Densité d’un cluster : La notion de densité est très proche de celle de la cardinalité, en effet on doit éviter d’avoir des boites larges qui contiennent trop de points, sachant que ces point doivent représenter le même sous ensemble des optima de pareto stricts. La méthode des boites permet de calculer une représentation pour un problème d’ordon- nancement bicritère. Une représentation Rep calculé ne contient que des vecteurs stricte- ment non dominé i.e Rep ⊆ YE . ceci implique une erreur de représentation nulle. Chaque point de la représentation est associé à un rectangle (boite) et représente toutes les solutions non dominées de cette boite. A chaque itération de la méthode, la collection des boites contient l’ensemble des vecteurs non dominés, et donc détermine aussi les régions qui n’en contiennent aucun. Les points de la représentation sont générés avec une version lexicographique de la méthode ǫ-contrainte. 2.2 La version lexicographique de l’approche ǫ-contrainte Soit le problème Pǫ définit comme suit : f2 (x) Lex min f1 (x) avec : f1 (x) ≤ ǫ x∈S La résolution de ce problème se fait dans un ordre lexicographique i.e : f2 (x) sera optimiser en premier puis f1 (x)., sachant que le critère f1 (x) est borné par la valeur ǫ. Cette méthode a plusieurs propriétés intéressantes et très utiles pour la construction de représentation. Ainsi [2] démontrent que toute solution du problème (Pǫ ) est un optimum de pareto strict, et que tout optimum de pareto peut être obtenu avec une valeur ǫ adéquate. 2.3 La méthode des boites Initialement, on commence par calculer deux solutions optimales avec la méthode lexicographique (une solution pour chaque ordre lexicographique). Ces deux points vont déterminer la boite initiale qui va contenir l’ensemble des vecteurs non dominés. 17
  • Puis on élimine des parties de cette boite initiale en utilisant les résultats obtenus après chaque itération. Une itération équivaux à la résolution d’un problème (Pǫ ) avec la version lexicographique de l’approche ǫ-contrainte en utilisant un paramètre ǫ adéquat que l’on choisi. Le résultat partiel après chaque itération est une collection de boites dans la quelle l’en- semble des vecteurs non dominés est inclus. Pour chaque boite du résultat partiel on connait un point non dominé qui représente l’ensemble des points non dominés dans cette boite. La méthode s’arrête lorsque la surface de la plus grande boite est inférieur a une sur- face de précision que l’on défini a priori. si une précision ∆ est utilisé, la collection des boites résultantes sera noté ∆-représentation. Le coin inférieur droit de chaque boite est considéré comme le point représentatif. Exemple : Soit un problème d’optimisation bicritère P : f1 (x) minf (x) = f2 (x) avec x ∈ S On détermine en utilisant l’approche lexicographique deux solutions optimales z 1 et z 2 tel que : 1 z1 f1 (x) z1 = 2 = lex minx∈S z1 f2 (x) 1 z2 f2 (x) z2 = 2 = lex minx∈S z2 f1 (x) On note R(z 1 , z 2 ) le rectangle (boite) défini par z 1 et z 2 tel que : 1 1 z 1 = (z1 , z2 ) est le coin supérieur gauche. z 2 = (z1 , z2 ) est le coin inférieur droit. 2 2 la figure 2.1 décrit la boite initiale. a(R(z 1 , z 2 )) est la surface de la boite déterminé par z 1 et z 2 tel que : 18
  • a(R(z 1 , z 2 )) = (z1 − z1 )(z2 − z2 ) 2 1 1 2 Il est évident que YE est un sous ensemble de R(z 1 , z 2 ) ,i.e : YE ⊆ R(z 1 , z 2 ) . Fig. 2.1 – La boîte initiale A chaque itération, un vecteur non dominé est connu, et une des boites sera décom- posée en plusieurs boites plus petites. Certaines des boites résultantes seront éliminées de la collection vu qu’elles ne contiennent aucun vecteur non dominé. Considérons une boite R(y 1 , y 2 ) avec a(R(y 1 , y 2 )) > ∆. ∆ est la surface de précision. 1 1 On fixe ǫ= ⌊(y1 + y2 )/2⌋. et on résoud le problème (Pǫ ). Soit x∗ ∈ S la solution optimale de (Pǫ ). Et z ∗ = (f1 (x∗ ), f2 (x∗ )) sa représentation dans l’espace des critères. la figure 2.2 Décrit le partitionnement d’une boite. En utilisant les point z ∗ et ǫ, on divise la boite R(y 1 , y 2 ) en cinq rectangle. 19
  • R1 = R(y 1 , z ∗ ) R2 = R(p1 , p4 ) R3 = R(p2 , p6 ) R4 = R(p3 , p7 ) R5 = R(p5 , y 2 ) Fig. 2.2 – Partitionnement d’une boite avec : ∗ 1 z1 ǫ+1 y1 ǫ p1 = 1 , p2 = 1 , p3 = ∗ , p4 = ∗ , y2 y2 z2 z2 2 ǫ+1 y1 ǫ p5 = ∗ , p6 = ∗ et p7 = 2 z2 − 1 z2 y2 Il est a noté que les points p2 et p5 ont leurs premières coordonnées décalées d’une unité vers la droite de ǫ, et que la seconde coordonné du point p5 est aussi décalé d’une unité vers le bas. Ceci est du au fait qu’aucun vecteur non dominé faisable puisse avoir des 20
  • coordonnés fractionnaires. Il est a noté aussi que les points pi , i = 1, .., 7, ne sont pas nécessairement des vecteurs faisables. [2] ont énoncé et démontré les propriétés suivantes : (1) (R2 ∪ R3 ) ∩ YE ⊆ {z ∗ }. (2) R4 ∩ YE ⊆ {z ∗ }. (3) YE ∩ R(y 1 , y 2 ) ⊆ R1 ∪ R5 . 1 (4) a(R1 ) + a(R5 ) ≤ 2 a(R(y 1 , y 2 )). Les propriétés (1) et (2) implique que les boites R2 , R3 , et R4 peuvent être éliminées de la collection vu qu’elles ne contiennent aucun vecteur non dominé. La propriété (3) confirme que l’ensemble des vecteurs non dominé sera toujours inclus dans les boites, et enfin la quatrième présente la rapidité de convergence de la méthode vers la précision ∆. Fig. 2.3 – Résultat du partitionnement d’une boite 21
  • 2.4 La version a posteriori de la méthode des boites Nous présentons dans cette section la version a posteriori de la méthode des boites. Dans cette version une nouvelle valeur ǫ est fixée à chaque itération. Cette valeur est déterminée de la même façon que dans l’exemple précédent i.e : ǫ = ⌊(y1 + y2 )/2⌋ où y 1 et 1 1 y 2 sont respectivement le coin supérieur gauche et le coin inférieur droit de la plus large boite de la collection. Pseudo code de la version a posteriori Input : Un problème d’optimisation bicritère, ∆ > 0 ; Output : Rep ⊆ YE avec une précision ∆ ; Etape 1 : /* Initialisation de l’algorithme */ S = ∅ ; //Ensemble des boites. Rep = ∅ ; //La Représentation. Etape 2 : /* Calcul de la boite initiale */ Calculer z 1 et z 2 avec l’approche lexicographique ; Calculer a(R(z 1 , z 2 )) ; Rep = {z 1 , z 2 } ; S = {R(z 1 , z 2 )} ; Etape 3 : /* Boucle pricipale */ Tantque S = ∅ faire choisir la plus large des boites R(y 1 , y 2 ) ∈ S ; S = S − {R(y 1 , y 2 )} ; résoudre Pǫ avec ǫ = ⌊(y1 + y2 )/2⌋ et obtenir une solution obtimale z ∗ ∈ YE ; 1 1 Rep = Rep ∪ {z ∗} ; Si a(R(y 1 , z ∗ )) > ∆ Alors S = S ∪ {R(y 1 , z ∗ )} ; FinSi Si a(R(p5 , y 2 )) > ∆ Alors S = S ∪ {R(p5 , y 2 )} ; FinSi FinTantque [2] ont démontré qu’au bout d’un nombre fini d’étape, la version a posteriori se termine et que tous les points représentés sont des vecteurs non dominés. La complexité est en : O(T1 + (a(R(y1 , y2 ))/∆)T2 ) T1 est le temps nécessaire pour calculer la boite initiale. T2 est le temps nécessaire pour résoudre Pǫ . Il est a noté que T1 et T2 dépendent fortement du problème considéré. 22
  • 2.5 La version a priori de la méthode des boites Dans la version a priori, au lieu de calculer la prochaine valeur ǫ après chaque itération, on calcule des valeurs équidistantes de ǫ a priori. Ce calcul est basé sur la valeur de la précision ∆. Le résultat sera une ∆-représentation pour toute valeur de ∆. Soit : 1 2 1 ǫj =⌊z1 + (j/k + 1)(z1 − z1 )⌋ Soit : z j ; j = 1, .., k, l’image de la solution optimale pour un problème (Pǫj ).Dans cette ˆ version de la méthode les points z j ; j = 1, .., k, ne sont pas forcément différents. ˆ Soit les points pj ; j = k, .., 1 tel que : pk = (ǫk + 1, z2 − 1). ˆk j j p = (ǫj + 1, z2 − 1) Si z j+1 = z j . ˆ ˆ ˆ pj = z j Sinon. ˆ L’ensemble des points {pj } sera utilisé pour définir les boites, cependant il ne représente pas nécessairement des solutions réalisables. On en conclu que : k−1 YE ⊆ R(z 1 , z 1 ) ∪ ˆ j=1 R(pj , z j+1 ) ∪ R(pk , z 2 ) ˆ Fig. 2.4 – Version a priori de la méthode des boites 23
  • Pseudo code de la version a priori Input : Un problème d’optimisation bicritère, ∆ > 0 ; Output : Rep ⊆ YE avec une précision ∆ ; Etape 1 : /* Initialisation de l’algorithme */ Rep = ∅ ; //La Représentation. Etape 2 : /* Calcul de la boite initiale et du Pas */ Calculer z 1 et z 2 avec l’approche lexicographique ; Calculer a(R(z 1 , z 2 )) ; Rep = {z 1 , z 2 } ; k = ⌈a(R(z 1 , z 2 ))/∆⌉ − 1 ; Etape 3 : /* Boucle pricipale */ Pour i = k à 1 faire 1 2 1 ǫj = ⌊z1 + (j/k + 1)(z1 − z1 )⌋ ; résoudre Pǫj et obtenir une solution obtimale z j ; ˆ Rep = Rep ∪ {ˆj } ; z FinPour Les problèmes (Pǫj ) sont résolus de droit à gauche vu que c’est plus pratique et rapide que de faire de gauche à droite. Effectivement la solution optimale d’un problème (Pǫj ) peut être optimale pour les problèmes (Pǫi ) i = 1, .., j − 1, et par conséquent on risque d’en ignorer certaines. 2.6 Qualités de la représentation Cardinalité 1 2 Le nombre de point de la représentation est au plus 2⌈log2 (a(R(z ,z ))/∆⌉ + 1 pour la ver- sion a posteriori de la méthode des boites et est de ⌈a(R(z 1 , z 2 )/∆⌉ + 1 pour la version a priori de la méthode. Ces deux valeurs sont les valeurs des pires cas, en pratique le nombre de points est bien inférieur vu que des solutions peuvent être optimales pour plusieurs problèmes (Pǫ ) simultanément. Une particularité de la méthode est que l’on peut avoir la cardinalité désirée. Ceci en reformulant les algorithmes des deux versions de manière à avoir en entrée une cardinalité désirée N au lieu de la précision ∆. La précision sera ainsi en fonction de la cardinalité souhaitée N tel que : ∆ = a(R(z 1 , z 2 ))/(N − 1) pour la version a posteriori. ∆ = a(R(z 1 , z 2 ))/(N − 2) pour la version a priori. 24
  • Précision Une définition courante de la précision d’une approximation (représentation) Rep est un pourcentage ǫ de la distance entre tous vecteurs non dominés et le point de la représen- tation le plus proche. Les points représentatifs des boites générées par les deux versions de la méthode atteignent un pourcentage ǫ tel que : ǫ = maxy∈Rep, y∈R(z,y) {(y1 − z1 )/y1 } avec y le point représentatif de la boite R(z, y). Les deux versions de la méthode sont exactes si la valeur de ∆ et suffisamment petite. L’erreur de représentation Soit erreurRep l’erreur de représentation de l’approximation Rep : erreurRep = maxz∈Rep miny∈YE z − y Dans les deux versions de la méthode, seules les vecteurs non dominés sont générés, par conséquent l’erreur de représentation sera toujours nulle. Densité d’un cluster A la fin de chacune des versions de l’algorithme, il est possible de réduire le nombre de points de chaque boite. Cette réduction permettra de diminué la cardinalité tout en maintenant la précision ∆ de la représentation. 25
  • Chapitre 3 Application au Q|ri, pi = p|Cmax, Lmax 3.1 la méthode des boites pour le problème Q|ri , pi = p|Cmax , Lmax Nous détaillons dans ce paragraphe l’application de la méthode des boites au problème Q|ri , pi = p|Cmax , Lmax . La version de la méthode utilisé et la version a priori. On commence par déterminer la boite initiale en calculant les deux solutions s1 et s2 des problèmes Q|ri , pi = p|lex(Lmax , Cmax ) et Q|ri , pi = p|Lex(Cmax , Lmax ) respective- ment. On calcule en suite k le nombre des valeurs équidistantes ǫj . k = ⌈a(R(s1 , s2 ))/∆⌉ − 1 Une fois k fixé on pourra calculer les ǫj tel que : ǫj = ⌊s1 + (j/k + 1)(s2 − s1 )⌋ 1 1 1 26
  • Le problème Pǫj que nous devrons résoudre à chaque itération est : Q|ri , pi = p, Lmax ≤ ˜ ǫj |Cmax qui est équivalant au Q|ri , pi = p, di = di + ǫj |Cmax . La résolution de ce dernier se fera avec une recherche dichotomique à travers des résolu- ˜ tion successive de problèmes de décision Q|ri , pi = p, di |−. Cette recherche dichotomique se fait sur un intervalle [LBCmax , U BCmax ]. Ainsi pour une valeur δ ∈ [LBCmax , U BCmax ] on aura a résoudre un problème Q|ri , pi = ˜ ˜ ˜ p, di , Cmax ≤ δ|− qui est équivalent au problème Q|ri , pi = p, di ’ = min(di , δ)|−. Si le problème est faisable alors δ = U BCmax sinon δ = LBCmax . La recherche s’arrête lorsque U BCmax − LBCmax = 1. Nous aurons obtenu une solution ∗ optimale Cmax = U BCmax , et un Lmax qui correspond à cette solution. 27
  • Pseudo code : Input : Un problème d’optimisation bicritère, ∆ > 0 ; Output : Rep ⊆ YE avec une précision ∆ ; Etape 1 : /* Initialisation de l’algorithme */ Rep = ∅ ; //La Représentation. Etape 2 : /* Calcul de la boite initiale et du Pas */ Calculer s1 ;// solution pour Q|ri , pi = p|lex(Lmax , Cmax ) Calculer s2 // solution pour Q|ri , pi = p|lex(Cmax , Lmax ) Calculer a(R(s1 , s2 )) ; Rep = {s1 , s2 } ; k = ⌈a(R(s1 , s2 ))/∆⌉ − 1 ; Etape 3 : /* Boucle pricipale */ Pour i = k à 1 faire 1 2 1 ǫj = ⌊z1 + (j/k + 1)(z1 − z1 )⌋ ; Pour i = 1 à n faire ˜ di = di + ǫj ; FinPour calculer les bornes LBCmax et U BCmax , Tant que U BCmax − LBCmax ≥ 1 faire U BCmax +LBCmax δ= 2 ; Pour i = 1 à n faire ˜ ˜ di ’=min(di , δ) ; FinPour ˜ Si Q|ri , pi = p, di ’|− est faisable Alors U BCmax = δ ; Sinon LBCmax = δ ; FinSi FinTantque ∗ Cmax = U BCmax ; déterminer Lmax ; ∗ z j = (Cmax , Lmax ) ; ˆ Rep = Rep ∪ {ˆj } ; z FinPour L’inconvénient de l’algorithme si dessus est qu’il nécessite la résolution des problèmes ˜ Q|ri , pi = p|Lmax et Q|ri , pi = p, di |− qui sont des problèmes ouverts. 3.2 ˜ Le problème de faisabilité Q|ri, pi = p, di|− Pour pouvoir utiliser la méthode des boites pour le problème Q|ri , pi = p|Cmax , Lmax ˜ , il nous faut résoudre le Q|ri , pi = p, di |− en temps polynomial. L’objectif est de pouvoir déterminer pour une instance donnée l’existence d’un ordonnancement faisable ou pas. 28
  • Si les vitesses des machines sont identiques, nous nous retrouvons avec le problème ˜ à machine parallèle identique P |ri , pi = p, di |−. [7] propose un algorithme exacte en O(n3 log(log(n))) pour le résoudre. L’algorithme de Simons est une combinaison entre les règles ERD-FAM (Earliest Release Date first on the Fastest Available Machine ) et EDD-FAM (Earliest Due Date first on the Fastest Available Machine). En s’inspirant directement de l’algorithme de Simons, Monsieur T’KINDT Vincent ˜ a proposé l’algorithme Qdec pour résoudre le Q|ri , pi = p, di |−. Nous décrirons cet al- gorithme en détaille après avoir présenté le modèle mathématique pour le problème en question. 3.2.1 Modèle mathématique Variables : 1 si la tache i placée sur la machine j. • yi,j = 0 sinon. . yi,j ∈ {0, 1}. 1 si la tache i est placee avant la tache k. • xi,k = , xi,k ∈ {0, 1}. 0 sinon. • ti : date de début de la tache i. ti ∈ R+ . Contraintes : • xi,k + xk,i =1 ∀i, k = 1, .., n i=k m • j=1 yi,j =1 ∀i = 1, .., n. ti + p m 1 ˜ ≤ di • j=1 Vj yi,j ∀i = 1, .., n. • ti ≥ ri ∀i = 1, .., n. m 1 ∀i, k = 1, .., n i = k • ti +p j=1 Vj yi,j ≤ tk +(3−xi,k −yk,i −yi,j )HV ∀j = 1, .., m 29
  • 3.2.2 Pseudo code de Qdec Etape 1 : /* Initialisation de l’algorithme */ T = {1, ..., n} ; // T est l’ensemble des taches triées par ordre croissant des ri . A = ∅ ; // A est triés par ordre croissant des di . ˜ B = ∅ ; // B est l’ensembles des barrières bi,j,t . ˆ M Cj = 0, ∀j = 1, ..., m ; σ = ∅; Etape 2 : /* Boucle principale */ Tant que (|T ∪ A| = 0) Faire select = f alse ; Tantque !(select) Faire t11 = mini∈(A∪T )−B ri ; ˆ t12 = minbi,j,t ∈B t ; //tel que la tache i n’a pas été déja sélectionner ˆ Si t11 ≤ t12 Alors t1 = t11 ; barrier=false ; Sinon t1 = ri ; barrier=true ; FinSi M p M p j est tel que max(Cj , t1 ) + Vj = min1≤k≤m (max(Ck , t1 ) + Vk ) ; Si !(barrière sur i,j) Alors select=true ; FinSi FinTant que ; M t2 = Cj ; t = max(t1 , t2 ) ; Si (barrier) Alors Déplacer de T vers A toutes les taches disponibles à t ; Sinon Déplacer de (T − B) vers A toutes les taches disponibles à t ; FinSi Soit i = A[1] la première tache disponible avec la plus petite deadline ; p ˜ Si t + Vj ≤ di Alors M p Ordonnancer i sur la machine j à t : Cj = t + Vj , σ = σ ∪ {i} et A = A − {i} ; Si (barrier) Alors B = B − {bi,j,t } ; ˆ FinSi Sinon ˜ ˜ Soit ℓ la dérnière tache ordonnancer tel que dℓ > di ; Soit C= {les taches ordonnancer entre ℓ et i} ∪ {i} ; T = T + C+A ; σ = σ − C−{ℓ} ; A = ∅; B = B ∪ {bℓ,j,mink∈C rk } ; M Actualiser les Cj FinSi FinTant que ; 30
  • Exemple considerons l’instance suivante : ˜ n = 6, m = 2, p = 4, V1 = 1, V2 = 2, [ri ] = [0; 1; 1; 4; 5; 7] et [di ] = [3; 6; 12; 10; 9; 9]. M 1. Première itération :. T = {1, ..., 6}, A = ∅, Cj = 0,B = ∅, σ = ∅. t1 = t11 = 0, j = 2, t2 = 0 et t = 0. A = {1} et T = {2, ..., 6}. M La tache 1 est ordonnancée sur la machine 2 à t=0 ⇒ A = ∅, σ = σ ∪ {1}, C2 = 2. 2. Deuxième itération. t1 = t11 = 1, j = 2, t2 = 2 et t = 2. A = {2, 3} et T = {4, 5, 6}. M la tache 2 est ordonnancée sur la machine 2 à t=2 ⇒ A = {3}, σ = σ ∪ {2}, C2 = 4. 3. Troisième itération. t1 = t11 = 1, j = 1, t2 = 0 et t = 1. A = {3} et T = {4, 5, 6}. M la tache 3 est ordonnancée sur la machine 1 à t=1 ⇒ A = ∅, σ = σ ∪ {3}, C1 = 5. 4. Quatrième itération : t1 = t11 = 4, j = 2, t2 = 4 et t = 4. A = {4} et T = {5, 6}. M la tache 4 est ordonnancée sur la machine 2 à t=4 ⇒ A = ∅, σ = σ ∪ {4}, C2 = 6. 5. Cinquième itération : t1 = t11 = 5, j = 2, t2 = 6 et t = 6. A = {5} et T = {6}. M la tache 5 est ordonnancée sur la machine 2 à t=6 ⇒ A = ∅, σ = σ ∪ {5}, C2 = 8. 31
  • 6. Sixième itération : t1 = 7, j = 2, t2 = 8 et t = 8. A = {6} et T = ∅. ˜ la tache 6 ne peut étre placée sur la machine 2 vu qu’elle finirais à t= 10 > d6 = 9. M ℓ = 4, C= {5; 6}, A = ∅, σ = σ − {4, 5}, C2 = 4, T = {4; 5; 6}, B = {(4, 2, 5)}. 7. Septième itération : t11 = 5, t12 = 5, t1 = t11 = 5, barrier=f alse, j = 2, t2 = 4 et t = 5. A = {5}, T = {4; 6}, et B = {(4, 2, 5)}. M la tache 5 est ordonnancée sur la machine 2 à t=5 ⇒ A = ∅, σ = σ ∪ {5}, C2 = 7. 8. Huitième itération : t11 = 7, t12 = 5, t1 = r4 = 4, barrier=true, j = 1, t2 = 5 et t = 5. A = {4} et T = {6}. M la tache 4 est ordonnancée sur la machine 1 à t=5 ⇒ A = ∅, σ = σ ∪ {4}, C1 = 9, et B = ∅. 9. Neuvième itération : t1 = t11 = 7, j = 2, t2 = 7 et t = 7. A = {6} et T = ∅. M la tache 6 est ordonnancée sur la machine 2 à t=7 ⇒ A = ∅, σ = σ ∪ {6}, C2 = 9. L’algorithme s’arrête, il a trouvé une solution faisable Contre exemple : considerons l’instance suivante : 32
  • ˜ n = 4, m = 2, p = 4, V1 = 1, V2 = 2, [ri ] = [0; 1; 3; 5] et [di ] = [3; 5; 6; 7]. l’algorithme Qdec fera erreur sur cette instance et dira qu’elle est infaisable. il ordon- nancera les taches [1; 2; 3] sur la machine 2 et ne pourra pas placer la tache 4 sur aucune des machines. le diagramme de Gantt suivant illustre une solution faisable pour ce problème : Qdec n’est pas exacte. une raison évidente de cette anomalie est l’utilisation du principe ERD − F AM dans Qdec, il est aisé de démontrer qu’avec des ri croissant uniformément et une différence assez importante des vitesses des machines, ERD − F AM placera tous les travaux sur la machine la plus rapide et ne pourra exploiter les autres machines. Ce constat nous a poussé à faire une version de Qdec utilisant le principe ERD − F M : Earliest Realese Date f irst on the F irst available M achine. Le résultat est plus intéressant mais l’algorithme n’est pas exact. 33
  • 3.2.3 Pseudo code de la deuxième version de Qdec : Etape 1 : /* Initialisation de l’algorithme */ T = {1, ..., n} ; // T est l’ensemble des taches triées par ordre croissant des ri . M = {1, ..., n} ;// M est triés par ordre croissant des Cj .M AJ = ∅ ; // AJ est triés par ordre croissant des di .˜ AM = ∅ ; // AM est triés par ordre décroissant des Vj ’s B = ∅ ; // B est l’ensembles des barrières bi,j,t ˆ M Cj = 0, ∀j = 1, ..., m ; σ = ∅; Etape 2 : /* Boucle principale */ Tant que (|T ∪ AJ| = 0) Faire select = f alse ; Tant que !(select) Faire t11 = mini∈(AJ∪T )−B ri ; ˆ t12 = minbi,j,t ∈B t ;//tel que la tache i n’a pas été déja sélectionner ˆ Si t11 ≤ t12 Alors t1 = t11 ; barrier=false ; Sinon t1 = ri ; barrier=true ; FinSi Déplacer de M vers AM toutes les machines disponibles à t= t1 ; Si (|AM | = 0) Alors Soit j = AM [1] //la plus rapide des machines disponibles Sinon Soit j = M [1] //la première machine qui sera disponible ; FinSi Si !(barrière sur i,j) Alors select=true ; FinSi FinTant que ; M t2 = Cj ; t = max(t1 , t2 ) ; Si (barrier) Alors Déplacer de T vers AJ toutes les taches disponibles à t ; Sinon Déplacer de (T − B) vers AJ toutes les taches disponibles à t ; FinSi Soit i = AJ[1] la première tache disponible avec la plus petite deadline ; p ˜ Si t + V ≤ di Alors j M p Ordonnancer i sur la machine j à t : Cj = t + Vj , σ = σ ∪ {i} et AJ = AJ − {i} ; Si (barrier) Alors B = B − {bi,j,t } ; ˆ FinSi Sinon //placer la tache sur la FAM M p M p j est tel que max(Cj , t1 ) + Vj = min1≤k≤m (max(Ck , t1 ) + Vk ); t2 = M Cj ; t = max(t1 , t2 ) ; p ˜ Si t + V ≤ di Alors j M p Ordonnancer i sur la machine j à t : Cj = t + Vj , σ = σ ∪ {i} et AJ = AJ − {i} ; Si (barrier) Alors B = B − {bi,j,t } ; ˆ FinSi Sinon ˜ ˜ Soit ℓ la dérnière tache ordonnancer tel que dℓ > di ; Soit C = {les taches ordonnancer entre ℓ et i} ∪ {i} ; T = T + C + AJ ; σ = σ − C−{ℓ} ; AJ = ∅ ; B = B ∪ {bℓ,j,mink∈C rk } ; Actualiser les CjM FinSi FinSi FinTant que ; 34
  • Exemple Reprenons le contre exemple précèdent ˜ n = 4, m = 2, p = 4, V1 = 1, V2 = 2, [ri ] = [0; 1; 3; 5] et [di ] = [3; 5; 6; 7]. M 1. Première itération :. T = {1, ..., 4}, M = [2; 1],AJ = ∅,AM = ∅, Cj = 0,B = ∅, σ = ∅. t1 = t11 = 0, AM = [2; 1], j = 2, t2 = 0 et t = 0. AJ = {1} et T = {2, 3, 4}. M La tache 1 est ordonnancée sur la machine 2 à t=0 ⇒ AJ = ∅, σ = σ ∪ {1}, C2 = 2. 2. Deuxième itération. t1 = t11 = 1,AM = [1], j = 1, t2 = 0 et t = 1. AJ = {2} et T = {3, 4}. M la tache 2 est ordonnancée sur la machine 1 à t=1 ⇒ AJ = ∅, σ = σ ∪ {2}, C1 = 5. 3. Troisième itération. t1 = t11 = 3,AM = ∅,M = [2; 1], j = 2, t2 = 2 et t = 3. AJ = {3} et T = {4}. M la tache 3 est ordonnancée sur la machine 2 à t=3 ⇒ AJ = ∅, σ = σ ∪ {3}, C2 = 5. 35
  • 4. Quatrième itération : t1 = t11 = 5,AM = [2; 1], j = 2, t2 = 5 et t = 5. AJ = {4} et T = ∅. M la tache 4 est ordonnancée sur la machine 2 à t=5 ⇒ AJ = ∅, σ = σ ∪ {4}, C2 = 7. Contre exemple : considerons l’instance suivante : ˜ n = 2, m = 2, p = 12, V1 = 2, V2 = 3, [ri ] = [0; 2] et [di ] = [6; 7]. Dans cet exemple, les deux version de l’algorithme placerons la tache 1 sur la machine 2 et ne pourrons pas placer la tache 2, le résultat retourné est que le problème est infaisable alors qu’on peut observé une solution réalisable sur la deuxième figure. 36
  • 3.3 Expérimentation numérique La compagne de tests utilisés pour évaluer les deux versions de l’algorithme Qdec est la suivante : Le nombre de travaux n prend ses valeurs dans l’ensemble {8; 9; 10; 11; 12}. Le nombre de machines m prend ses valeurs dans l’ensemble {2; 3; 4; 5; 6}. Pour générer les données, nous utilisons un paramètre R qui nous permet de maîtriser ˜ la distribution des dates de débuts au plus tôt ri et des dates de fin impératives di . R prend ses valeurs dans l’ensemble {0.2; 0.4; 0.6; 0.8; 1.0; 1.2; 1.4; 1.6}. Pour chaque triplet (n, m, R) nous générons 50 instances, ce qui nous fait 400 instances pour un nombre de travaux et de machines (n, m)fixé. Au total nous avons évalué 10000 instances différentes. Nous présentons les résultats dans deux tableaux. Dans le premier nous nous intéres- sons au nombre d’instances erronées par nombre de travaux. La première colonne repré- sente le nombre de travaux, la seconde et la troisième correspondent au nombre d’instances erronées par la première et la seconde version de Qdec respectivement, la quatrième dé- signe le nombre d’instance erroné par les deux algorithmes. Dans le second tableau nous nous intéressons au nombre d’instances erronées par nombre de machines. La première colonne représente le nombre de machines, la seconde et la troisième correspondent au nombre d’instances erronées par la première et la seconde version de Qdec respectivement, la quatrième désigne le nombre d’instances erronées par les deux algorithmes. Il est à noter qu’une instance erronée est un problème faisable pour le quel l’algorithme ne trouve pas un ordonnancement faisable, jamais l’inverse. 37
  • Nombre de travaux Erreur Qdec1 Erreur Qdec2 Erreur commune 8 21/2000 12/2000 9/2000 9 30/2000 23/2000 23/2000 10 33/2000 16/2000 13/2000 11 34/2000 26/2000 26/2000 12 41/2000 31/2000 30/2000 Total 159/10000 108/10000 101/10000 Tab. 3.1 – Résultats en fonction du nombre de travaux. Nombre de machines Erreur Qdec1 Erreur Qdec2 Erreur commune 2 103/2000 67/2000 65/2000 3 44/2000 36/2000 33/2000 4 11/2000 5/2000 3/2000 5 1/2000 0/2000 0/2000 6 0/2000 0/2000 0/2000 Total 159/10000 108/10000 101/10000 Tab. 3.2 – Résultats en fonction du nombre de machines. D’après les résultats présentés dans les deux tableaux précédents nous déduisons le taux d’erreur global atteint 1,59% et 1,08% pour la première version et la deuxième respectivement. Même si cette valeur et relativement petite, il est évident qu’elle n’est pas borné, plus il y aura de taches a ordonnancer plus l’alogorithme aura a prendre des décisions, eventuellements des mauvaises. 38
  • Conclusion Ce travail de recherche a porté sur l’échantillonnage de l’ensemble des optima de pareto à travers l’application de la méthode des boites, malheureusement le travail expérimental n’a pas pu aboutir à cause de l’absence d’algorithmes polynomiaux nécessaires pour cer- taines étapes. Cette absence est le premier résultat expérimentale sur le quel nous avons abouti, on ˜ ne sait pas s’il existe un algorithme pour résoudre le Q|ri , pi = p, di |−, et on n’a pas pu démonter qu’il n’en existe pas, le problème est ouvert ! ! ! Pour moi personnellement, ce travail fus une expérience très enrichissante, ça ma permis de me familiarisé avec le domaine de l’ordonnancement et de l’optimisation mul- ticritère et a suscité en moi de la curiosité envers ce domaine dont je ne soupçonnai pas l’existence il y a tous juste un an. A la suite de ce travail, plusieurs perspectives peuvent être envisagées, à commencer par étudier expérimentalement l’application de la méthode des boites sur un autre problème, éventuellement le P |ri , pi = p|Cmax , Lmax . Mais aussi faire une étude comparative entre cette méthode d’échantillonnage et les autres méthodes existantes. Un autre point très ˜ important, la détermination de la complexité du problème de décision Q|ri , pi = p, di |−. 39
  • Bibliographie [1] G.J. Kyparisis C. Koulamas. Makespan minimization on uniform parallel machines with release times. European Journal of Operational Research, 157 :262–266, 2004. [2] H. W. Hamacher C. R. Pedersen, S. Ruzika. Finding representative systems for discrete bicriterion optimization problems. Operations Research Letters, 35 :336–344, 2007. [3] M.M. Dessouky. Scheduling identical jobs with unequal ready times on uniform parallel machines to minimize the maximum lateness. Computers and Industrial Engineering, 34(4), 1998. [4] M.R.Garey D.S.Johnson. Computers and intractability : A guide to the theory of np-completeness. Freeman, New York, 1979. [5] V. T’kindt J.C.Billaut. L’ordonnancement multicritère. Presses Universitaires de Tours, 2000. [6] J.K.Lenstra S.L.van de Velde M.I. Dessouky, B.J.Lageweg. Scheduling identical jobs on uniform parallel machines. Statistica Neerlandica, 44(3) :115–123, 1990. [7] B. Simons. Multiprocessor scheduling of unit-time jobs with arbitrary release times and deadlines. SIAM Journal on Computing, 12(2) :294–299, 1983. [8] M.I. Dessouky S.K. Verma, M.M. Dessouky. Flowshop scheduling with identical jobs and uniform parallel machines. European Journal of Operational Research, 109 :620– 631, 1998. [9] V. T’kindt. L’ordonnancement multicritère : Théorie, modèles et algorithmes. hdr. 2005. 40