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
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