SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

Theorie des poutres_resistance_des_mater (1)
Theorie des poutres_resistance_des_mater (1)Theorie des poutres_resistance_des_mater (1)
Theorie des poutres_resistance_des_mater (1)YoussefTrimech
 
Mr phd thesis
Mr phd thesisMr phd thesis
Mr phd thesisAbirHezzi
 
Allocation et adaptation optimales de la puissance dans harq
Allocation et adaptation optimales de la puissance dans harqAllocation et adaptation optimales de la puissance dans harq
Allocation et adaptation optimales de la puissance dans harqJabiMohammed
 
Tkz euclide-screen
Tkz euclide-screenTkz euclide-screen
Tkz euclide-screenemakrizi
 
Cours stochastic processes
Cours stochastic processesCours stochastic processes
Cours stochastic processeszoolyver
 
Report on GPU complex type usage
Report on GPU complex type usageReport on GPU complex type usage
Report on GPU complex type usageCaner Candan
 
Mes connaissance en Anathomie Pathologique
Mes connaissance en Anathomie PathologiqueMes connaissance en Anathomie Pathologique
Mes connaissance en Anathomie PathologiqueSamuelKubuyakubwirwa
 
signal f_sur
signal f_sursignal f_sur
signal f_surWafa Ben
 
Automatisme) www.cours-online.com
Automatisme) www.cours-online.comAutomatisme) www.cours-online.com
Automatisme) www.cours-online.commorin moli
 

La actualidad más candente (20)

Report MyProof
Report MyProofReport MyProof
Report MyProof
 
Rapport final-FIROZI-V2
Rapport final-FIROZI-V2Rapport final-FIROZI-V2
Rapport final-FIROZI-V2
 
Theorie des poutres_resistance_des_mater (1)
Theorie des poutres_resistance_des_mater (1)Theorie des poutres_resistance_des_mater (1)
Theorie des poutres_resistance_des_mater (1)
 
Ft 1751 V1.0 0207
Ft 1751 V1.0 0207Ft 1751 V1.0 0207
Ft 1751 V1.0 0207
 
Cours10
Cours10Cours10
Cours10
 
defour phd
defour phddefour phd
defour phd
 
Mr phd thesis
Mr phd thesisMr phd thesis
Mr phd thesis
 
Allocation et adaptation optimales de la puissance dans harq
Allocation et adaptation optimales de la puissance dans harqAllocation et adaptation optimales de la puissance dans harq
Allocation et adaptation optimales de la puissance dans harq
 
doc
docdoc
doc
 
Tkz euclide-screen
Tkz euclide-screenTkz euclide-screen
Tkz euclide-screen
 
Cours stochastic processes
Cours stochastic processesCours stochastic processes
Cours stochastic processes
 
cours-plaques
cours-plaquescours-plaques
cours-plaques
 
Report on GPU complex type usage
Report on GPU complex type usageReport on GPU complex type usage
Report on GPU complex type usage
 
Mes connaissance en Anathomie Pathologique
Mes connaissance en Anathomie PathologiqueMes connaissance en Anathomie Pathologique
Mes connaissance en Anathomie Pathologique
 
Memoire
MemoireMemoire
Memoire
 
Analyse2 00
Analyse2 00Analyse2 00
Analyse2 00
 
LIPADE_Report
LIPADE_ReportLIPADE_Report
LIPADE_Report
 
signal f_sur
signal f_sursignal f_sur
signal f_sur
 
Automatisme) www.cours-online.com
Automatisme) www.cours-online.comAutomatisme) www.cours-online.com
Automatisme) www.cours-online.com
 
mémoire_dernière_version
mémoire_dernière_versionmémoire_dernière_version
mémoire_dernière_version
 

Destacado

Diagnostic gratuit entreprise en 8 situations
Diagnostic gratuit entreprise en 8 situationsDiagnostic gratuit entreprise en 8 situations
Diagnostic gratuit entreprise en 8 situationsJean-marc SOULIER
 
Y Meheust Vieldvpt Sqop09 Afeit
Y Meheust Vieldvpt Sqop09 AfeitY Meheust Vieldvpt Sqop09 Afeit
Y Meheust Vieldvpt Sqop09 AfeitAFEIT
 
Témoignage Giannoni SQOP09 Afeit
Témoignage Giannoni SQOP09 AfeitTémoignage Giannoni SQOP09 Afeit
Témoignage Giannoni SQOP09 AfeitAFEIT
 
Message pertinent grâce au 4S et QQOQCCP
 Message pertinent grâce au 4S et QQOQCCP Message pertinent grâce au 4S et QQOQCCP
Message pertinent grâce au 4S et QQOQCCPJean-Paul MATHELOT
 
RESOLUTION DU PROBLEME DE LA CARAVANE
RESOLUTION DU PROBLEME DE LA CARAVANERESOLUTION DU PROBLEME DE LA CARAVANE
RESOLUTION DU PROBLEME DE LA CARAVANEcoolmeta
 
Vincent T'KINDT - Aide à la décision multicritère
Vincent T'KINDT - Aide à la décision multicritèreVincent T'KINDT - Aide à la décision multicritère
Vincent T'KINDT - Aide à la décision multicritèreGroupe ARTICQUE
 
Trucs et astuces - arbre de problèmes
Trucs et astuces - arbre de problèmesTrucs et astuces - arbre de problèmes
Trucs et astuces - arbre de problèmesClaude Michaud
 
G Liegois Lean France Sqop09 Afeit
G Liegois Lean France Sqop09 AfeitG Liegois Lean France Sqop09 Afeit
G Liegois Lean France Sqop09 AfeitAFEIT
 
Présentation atelier tubes&co
Présentation atelier tubes&coPrésentation atelier tubes&co
Présentation atelier tubes&coSens&co
 
La méthodologie "8D"
La méthodologie "8D"La méthodologie "8D"
La méthodologie "8D"LeanPerf
 
La conduite de reunion
La conduite de reunionLa conduite de reunion
La conduite de reunionSignos
 
Gp 04 Le Plan Directeur
Gp 04   Le Plan DirecteurGp 04   Le Plan Directeur
Gp 04 Le Plan DirecteurClaude Michaud
 
Analyse arbre
Analyse arbreAnalyse arbre
Analyse arbresusky
 
Lean Kanban France 2015 : Le Kanban explique par bison futé (V1.6)
Lean Kanban France 2015 : Le Kanban explique par bison futé (V1.6)Lean Kanban France 2015 : Le Kanban explique par bison futé (V1.6)
Lean Kanban France 2015 : Le Kanban explique par bison futé (V1.6)Cyrille Deruel
 
raymond aron par Ch bournhonesque
raymond aron par Ch bournhonesqueraymond aron par Ch bournhonesque
raymond aron par Ch bournhonesqueTheillier Damien
 
Résolution de problèmes
Résolution de problèmesRésolution de problèmes
Résolution de problèmesAnass ZAHIM
 

Destacado (20)

Diagnostic gratuit entreprise en 8 situations
Diagnostic gratuit entreprise en 8 situationsDiagnostic gratuit entreprise en 8 situations
Diagnostic gratuit entreprise en 8 situations
 
Introduction à l'évaluation
Introduction à l'évaluationIntroduction à l'évaluation
Introduction à l'évaluation
 
Y Meheust Vieldvpt Sqop09 Afeit
Y Meheust Vieldvpt Sqop09 AfeitY Meheust Vieldvpt Sqop09 Afeit
Y Meheust Vieldvpt Sqop09 Afeit
 
Témoignage Giannoni SQOP09 Afeit
Témoignage Giannoni SQOP09 AfeitTémoignage Giannoni SQOP09 Afeit
Témoignage Giannoni SQOP09 Afeit
 
Message pertinent grâce au 4S et QQOQCCP
 Message pertinent grâce au 4S et QQOQCCP Message pertinent grâce au 4S et QQOQCCP
Message pertinent grâce au 4S et QQOQCCP
 
RESOLUTION DU PROBLEME DE LA CARAVANE
RESOLUTION DU PROBLEME DE LA CARAVANERESOLUTION DU PROBLEME DE LA CARAVANE
RESOLUTION DU PROBLEME DE LA CARAVANE
 
Vincent T'KINDT - Aide à la décision multicritère
Vincent T'KINDT - Aide à la décision multicritèreVincent T'KINDT - Aide à la décision multicritère
Vincent T'KINDT - Aide à la décision multicritère
 
Trucs et astuces - arbre de problèmes
Trucs et astuces - arbre de problèmesTrucs et astuces - arbre de problèmes
Trucs et astuces - arbre de problèmes
 
G Liegois Lean France Sqop09 Afeit
G Liegois Lean France Sqop09 AfeitG Liegois Lean France Sqop09 Afeit
G Liegois Lean France Sqop09 Afeit
 
Mythe et Idéologie
Mythe et IdéologieMythe et Idéologie
Mythe et Idéologie
 
Présentation atelier tubes&co
Présentation atelier tubes&coPrésentation atelier tubes&co
Présentation atelier tubes&co
 
La méthodologie "8D"
La méthodologie "8D"La méthodologie "8D"
La méthodologie "8D"
 
QQOQCCP
QQOQCCPQQOQCCP
QQOQCCP
 
Résolution de probleme
Résolution de problemeRésolution de probleme
Résolution de probleme
 
La conduite de reunion
La conduite de reunionLa conduite de reunion
La conduite de reunion
 
Gp 04 Le Plan Directeur
Gp 04   Le Plan DirecteurGp 04   Le Plan Directeur
Gp 04 Le Plan Directeur
 
Analyse arbre
Analyse arbreAnalyse arbre
Analyse arbre
 
Lean Kanban France 2015 : Le Kanban explique par bison futé (V1.6)
Lean Kanban France 2015 : Le Kanban explique par bison futé (V1.6)Lean Kanban France 2015 : Le Kanban explique par bison futé (V1.6)
Lean Kanban France 2015 : Le Kanban explique par bison futé (V1.6)
 
raymond aron par Ch bournhonesque
raymond aron par Ch bournhonesqueraymond aron par Ch bournhonesque
raymond aron par Ch bournhonesque
 
Résolution de problèmes
Résolution de problèmesRésolution de problèmes
Résolution de problèmes
 

Similar a Box Methode M2 R

recherche operationnelle
recherche operationnelle recherche operationnelle
recherche operationnelle mohamednacim
 
Impl´ementation d’une copule mutilvari´ee.pdf
Impl´ementation d’une copule mutilvari´ee.pdfImpl´ementation d’une copule mutilvari´ee.pdf
Impl´ementation d’une copule mutilvari´ee.pdfNuioKila
 
Cours gestion-de-production
Cours gestion-de-productionCours gestion-de-production
Cours gestion-de-productionRachid Rachido
 
Thèse Quantification sur cône de lumière
Thèse Quantification sur cône de lumièreThèse Quantification sur cône de lumière
Thèse Quantification sur cône de lumièreStéphane Salmons
 
Projet_Monte_Carlo_Dauphine
Projet_Monte_Carlo_DauphineProjet_Monte_Carlo_Dauphine
Projet_Monte_Carlo_DauphineAli Sana
 
Solution générique pour la résolution des problèmes statiques de tournées de ...
Solution générique pour la résolution des problèmes statiques de tournées de ...Solution générique pour la résolution des problèmes statiques de tournées de ...
Solution générique pour la résolution des problèmes statiques de tournées de ...Slimen Belhaj Ali
 
courspython3.pdf
courspython3.pdfcourspython3.pdf
courspython3.pdfDendouga1
 
Manuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMManuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMGrégoire Dupont
 
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Hadjer BENHADJ DJILALI
 
Conception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmationConception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmationAymen Bouein
 
pfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdfpfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdfnesrine haloui
 
OpenERP - Gestion de prix de revient
OpenERP - Gestion de prix de revientOpenERP - Gestion de prix de revient
OpenERP - Gestion de prix de revientTaieb Kristou
 

Similar a Box Methode M2 R (20)

recherche operationnelle
recherche operationnelle recherche operationnelle
recherche operationnelle
 
Cours matlab
Cours matlabCours matlab
Cours matlab
 
Impl´ementation d’une copule mutilvari´ee.pdf
Impl´ementation d’une copule mutilvari´ee.pdfImpl´ementation d’une copule mutilvari´ee.pdf
Impl´ementation d’une copule mutilvari´ee.pdf
 
METHODES NUMERIQUES.pdf
METHODES NUMERIQUES.pdfMETHODES NUMERIQUES.pdf
METHODES NUMERIQUES.pdf
 
Algo
AlgoAlgo
Algo
 
Cours gestion-de-production
Cours gestion-de-productionCours gestion-de-production
Cours gestion-de-production
 
Thèse Quantification sur cône de lumière
Thèse Quantification sur cône de lumièreThèse Quantification sur cône de lumière
Thèse Quantification sur cône de lumière
 
Projet_Monte_Carlo_Dauphine
Projet_Monte_Carlo_DauphineProjet_Monte_Carlo_Dauphine
Projet_Monte_Carlo_Dauphine
 
graphe.pdf
graphe.pdfgraphe.pdf
graphe.pdf
 
Solution générique pour la résolution des problèmes statiques de tournées de ...
Solution générique pour la résolution des problèmes statiques de tournées de ...Solution générique pour la résolution des problèmes statiques de tournées de ...
Solution générique pour la résolution des problèmes statiques de tournées de ...
 
courspython3.pdf
courspython3.pdfcourspython3.pdf
courspython3.pdf
 
Manuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEMManuel du module additionnel RF-LAMINATE pour RFEM
Manuel du module additionnel RF-LAMINATE pour RFEM
 
Introduction à MATLAB
Introduction à MATLABIntroduction à MATLAB
Introduction à MATLAB
 
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
Mémoire Parallélisation d'algorithmes de graphes avec MapReduce sur un cluste...
 
Conception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmationConception et implémentation d'un nouveau langage de programmation
Conception et implémentation d'un nouveau langage de programmation
 
pfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdfpfe_rapport_poste_licence_LFIG.pdf
pfe_rapport_poste_licence_LFIG.pdf
 
Rapport
RapportRapport
Rapport
 
Fourth year internship report
Fourth year internship reportFourth year internship report
Fourth year internship report
 
Poly
PolyPoly
Poly
 
OpenERP - Gestion de prix de revient
OpenERP - Gestion de prix de revientOpenERP - Gestion de prix de revient
OpenERP - Gestion de prix de revient
 

Box Methode M2 R

  • 1. 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
  • 2. 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
  • 3. 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
  • 4. 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.
  • 5. 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.
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. é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
  • 15. Fig. 1.2 – Enumération des optima de pareto stricts en utilisant l’approche ǫ-contrainte 15
  • 16. 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
  • 17. 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
  • 18. 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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
  • 27. 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
  • 28. 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
  • 29. 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
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. ˜ 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
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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