Sunteți pe pagina 1din 5

3e Confrence Francophone de MOdlisation et SIMulation "Conception, Analyse et Gestion des Systmes industriels"

MOSIM01 du 25 au 27 avril 2001 Troyes (France)

Recherche taboue amliore pour lordonnancement sur machines parallles


Marc Sevaux et Philippe Thomin
LAMIH / SP, CNRS UMR 8530
Universit de Valenciennes Le Mont Houy
F-59313 Valenciennes Cedex 9 France
Ml : Marc.Sevaux@univ-valenciennes.fr
RSUM : Ce papier prsente une mthode de recherche taboue qui permet de rsoudre un problme dordonnancement
sur machines parallles dans lequel lobjectif est de minimiser le poids des jobs en retard. Ce critre particulier est souvent
utilis comme indicateur de performance, base dautres critres comme par exemple la minimisation de la somme des
retards pondrs.
Des modlisations par programmation linaire en nombres entiers ont t dveloppes et peuvent rsoudre de manire
optimale le problme mais seulement pour des instances de petite taille. Une mthode de recherche taboue est alors mise
en place et permet de rsoudre efficacement des instances de plus grande taille. Les solutions obtenues sont compares
celles dune mthode rsolvant le problme par propagation de contraintes.
De plus, dans ce papier, les auteurs se sont intresss une structure de donnes originale qui autorise la flexibilit dans
le placement des jobs. Sur chaque machine seules les squences partielles des jobs sont stockes, les dates dexcution
ntant fixes qu la demande de lutilisateur final. Ce modle de donnes amliore grandement la qualit de la solution
de dpart ncessaire la recherche tabou. Un effort particulier a t fait pour grer dynamiquement la liste tabou et
viter les points de blocage ou les cycles pendant la recherche.
MOTS-CLS : Mtaheuristique, recherche tabou, ordonnancement, machines parallles, flexibilit.

1.

INTRODUCTION

 

) doit tre squenc


Un ensemble de jobs (
sur
machines parallles. Chaque job doit tre excut
sur une des machines et ne peut dmarrer avant sa date de
dbut au plus tt, (release date). Le temps dexcution
de ce job est de
units de temps (processing time).
Une date chue,
(due date) et un poids,
(weight)
sont donns pour chaque job. Si le job se termine aprs
sa date chue, on dit quil est en retard et on positionne
une variable binaire
1, sinon le job est termin
temps et
. Le critre retenu est la minimisation
de la somme des poids des jobs en retard
.
Ce problme est not
dans la littrature
(Graham et al., 1979). Mme rduit deux machines,
ce problme est
-difficile (Garey etJohnson, 1979).
Pour le problme une machine, lui aussi
difficile (Lenstra et al., 1977), une relaxation Lagrangienne (Dauzre-Prs etSevaux, 1999) puis une approche hybride algorithme gntique/recherche locale
(Sevaux etDauzre-Prs, 2000) donnent de trs bons rsultats jusqu 100 jobs.





  
 

"! # $!%&' 
(*)

 
(*)

Dans cette tude, lobjectif consiste squencer les jobs


de faon minimiser le poids des jobs en retard et ceci est
strictement quivalent maximiser le poids des jobs qui
seront termins temps. La remarque suivante est alors
fondamentale pour la suite.
Remarque 1 Les jobs en retard peuvent tre squencs
arbitrairement aprs tous les jobs termins temps. Il
nest donc pas ncessaire de trouver une date de dbut
dexcution pour les jobs qui seront en retard.

Avec cette remarque on pourra trouver des simplifications pour les deux modles de programmation linaire
en nombres entiers ainsi que pour la gestion des donnes
dans la mthode tabou.
Cet article sorganise autour de 5 sections. La section 2.
prsente deux modles de programmation linaire en variables 01 qui permettent une premire approche du problme. Des tests numriques sur ces modles sont dvelopps dans la section 5. et suffisent nous convaincre du
bien fond dune approche par mtaheuristique. La section 3. prsente une structure de donnes originale et dtaille le calcul de la solution initiale servant la recherche
tabou. Dans la section 4., le cur de la recherche tabou est
introduit avec le voisinage, les mouvements tabous et les
raffinements propres la gestion de la liste tabou. Enfin,
des rsultats numriques dans la section 5. viennent tayer
nos propos.
2. PROGRAMMATION LINAIRE EN NOMBRES
ENTIERS
La programmation linaire en nombres entiers permet de
modliser rapidement le problme dordonnancement et
offre une approche intressante dans notre cas. Par contre,
mme avec un code commercial puissant, le problme
reste suffisamment complexe pour ne pas tre rsolu optimalement pour toutes les instances, et surtout celles de
grande taille.
Dans cette section, deux modles de programmation linaire en nombres entiers sont proposs et plusieurs

MOSIM01 du 25 au 27 avril 2001 Troyes (France)

Le premier modle reprend une formulation classique


avec des variables binaires de position (
, si le
job est en position sur la machine , 0 sinon). Le second modle est connu pour tre beaucoup moins efficace
et utilise des variables temporelles (
, si le job
dmarre linstant , 0 sinon). Cependant cette modlisation prsente un intrt dune part pour la formulation
compacte du problme dordonnancement et dautre part
pour les extensions futures de notre travail.

plus dune position et grce la remarque 1, il est possible quun job nait pas de position (il sera donc en retard). La contrainte (3) indique que chaque position sur
chaque machine ne peut tre occupe par plus dun job.
La contrainte (4) impose au job en position
sur
une machine de commencer son excution aprs la fin
de lexcution du job en position sur la mme machine.
La contrainte (5) empche tout dmarrage dun job avant
sa date de dbut au plus tt et la contrainte (6) attribue
une position sur une machine un job si et seulement si
celui-ci peut se terminer avant sa date chue. La contrainte
(7) imposera chaque job, soit de trouver une position
pour sexcuter, soit dtre en retard. On peut aussi remplacer cette contrainte par une contrainte quivalente
loptimum de notre problme
.

2.1.

2.2. Variables indexes par le temps

instances sont rsolues avec ILOG OPL Studio. Pour


quelques instances de petites tailles la solution optimale
a t trouve mais dans la plupart des cas, aprs une heure
de calcul, on ne trouve que des bornes notre problme.
Ces rsultats peu satisfaisants ont motiv notre tude par
les mtaheuristiques.

+ -, . /

23 54 6

Variables de position

 
 8

0]I 

 <, >@?  .^B > ? + -, . I_ [R

`DKE: 

Dans ce modle, on pose


si le job est en retard
(termin aprs sa date chue) et 0 sinon. Une variable binaire
, si le job est en position sur la machine
et 0 sinon. Des variables relles positives
indiquent
la date de dbut dexcution du job en position sur la
machine .

Dans cette modlisation, nous retrouvons les variables binaires


spcifiant si un job est en retard ou non. Les
sont places 1 si le job dmarre
variables binaires
son excution linstant . Evidemment cette modlisation implique de discrtiser lhorizon de temps. Sans tre
restrictif, on peut ne considrer que les instants entiers.

Avec ces variables, le modle de programmation linaire


en nombres entiers sexprime de la manire suivante :

Pour cette modlisation, on aura aussi besoin de calculer un horizon maximum que lon dfinira sans raffinement par
. Mais cause de
la remarque 1, il nest pas ncessaire de trouver une date
de dbut dexcution pour chaque job. Ainsi lhorizon de
temps considrer sarrte-t-il la date de fin dexcution
du dernier job termin temps. Cet instant est born par
la plus grande date chue, soit
.

+ - ,9. :
1

7 , .

<
=
(1)
; ' A
%>@?
sous
contraintes
= < = B + -, .C 
DEF
(2)
, = >< ? .>@?
D 0 F  GH
+ -, .GC 
D 1 : 

%>@? <
(3)
=
75,9.JI K +J -,9.LCM75, N?9O . DD 0 :F    QP  H
%>< ?
(4)
1

=
D 0 F  GH
7 ,9. P + -,9.GR 
D 1 : 

%>< ?
(5)
=
S

W
D
F








75,9.JI  P T 3UV+J -,9.GC D 0 :  GH
%>?
1

(6)
= < = B + -, .XIM F
DEF
 
(7)
, >? .>@ ?
D

F







7 ,9.LR
D 10 :  
GH (8)
DEF GH
+ -,9.LY[Z  H T\
D 0 F  GH
D 1 : 

(9)

T

\
DEF
 Y[Z H
(10)

La fonction (1) exprime directement lobjectif de notre


problme, i.e., la minimisation du poids des jobs en retard. La contrainte (2) stipule que chaque job ne peut avoir

2 54

a
a   bTc$ %>@?9deded < # 'I  %< @> ? 
<
=
g ; ' A@
%>@?
sous
h-=i jk#i contraintes
2To4pI*@ F
i
4l>nm
= < = 4 2 q CM

%>@? q >p4 jkH isN\ ?


23 54 YrZ
 vYwZ  H s\

a  fbAc %>@? deded < 

(11)

DKEF 
D 7 F  a
DKEF  GH
D 7 tu  a
DKEF 

(12)
(13)

(14)
(15)

On retrouve la fonction objectif (11), identique celle du


modle prcdent. La contrainte (12) impose chaque job
de trouver un instant pour dmarrer ou dtre en retard,
comme prcdemment, on peut remplacer cette contrainte
. La contrainte (13) vrifie que
par
pour chaque priode de temps, on ne peut avoir plus de
jobs qui sexcutent simultanment. La prsentation du
problme par cette modlisation est compacte et permet
une premire approche rapide en utlisant des logiciels de
rsolution de programmes linaires en nombres entiers.

7
h i j k i
 4l>xm i 2 o^4 y
I  z R 

MOSIM01 du 25 au 27 avril 2001 Troyes (France)

Avec ce type de variables, la rsolution en 01 est possible condition que lhorizon de temps reste trs limit.
Quand ce nest pas le cas, le nombre de variables crot et
la rsolution aboutit rarement. Par contre, la relaxation linaire donne souvent des bornes de qualit satisfaisante,
mais avec trop de variables, mme celle-ci est affecte. En
revanche, de rcentes tudes montrent que ce type de modlisations peut tre utilis efficacement pour des rsolutions par gnration de colonnes (den Akker et al., 2000).
3.

GESTION DES DONNES ET SOLUTION INITIALE

Cette section prsente tout dabord une structure de donnes originale et innovante qui permet de manipuler une
classe de solutions quivalentes au lieu dune seule solution. Nous montrons ensuite comment cette structure de
donnes permet galement damliorer la solution initiale
de notre recherche tabou.

 est reprsent par son quadruplet


S H K H T H ' 3U . Compte-tenu
de notre problme ma-

Chaque job

chines parallles et de la remarque 1, nous avons opt


pour une reprsentation par listes chanes, avec une liste
par machine et une liste supplmentaire pour les jobs en
retard. Sur chaque machine, la liste dcrit lordonnancement temporel des jobs, i. e., une permutation de jobs qui
seront squencs sur cette machine. Cette structure supporte les insertions et les retraits moindre cot : ces deux
oprations seront ici les seules utilises pour passer dune
solution donne une solution voisine dans la recherche
tabou.
3.1.

Placement lastique

Dans ce contexte, nous ne fixons pas a priori de date de


dbut ou de fin lors du placement des jobs : on appellera
cette mthode le placement lastique.
Dune part, ce mode de placement permet de rduire lespace des solutions. Le placement dun job entre deux
autres une date quelconque de la fentre temporelle impose par ceux-ci ne modifie pas lordonnancement local. Si la fentre de placement est plus large que le temps
dexcution du job, imposer une date de dbut ou de fin
revient choisir une solution parmi plusieurs autres quivalentes.
Dautre part, lintervalle temporel disponible entre deux
jobs conscutifs peut tre utilis au mieux : les dates extrmes que peut occuper un job plac sont contraintes soit
par ses propres limites temporelles ( , , ), soit par les
limites imposes par ses voisins. Le calcul de ces dates de
proche en proche permet dobtenir lintervalle maximum
disponible entre deux jobs.

K T

Enfin, les oprations nulles, cest--dire linsertion dun


job suivi de son retrait, ou linverse, ne modifient pas la
structure de donnes.

En pratique, lobtention dun ordonnancement se fait de


faon squentielle, en assurant le respect des contraintes
temporelles chaque tape, cest--dire linsertion ou le
retrait dun job. Le retrait dun job ne pose jamais de problme, les contraintes sur les jobs restants sont en gnral
relches. En revanche, lors de linsertion, il faut vrifier
le respect des contraintes temporelles. On calcule alors
lintervalle maximum disponible
lemplacement dinsertion, et lon vrifie que celui-ci permet de
placer le nouveau job , cest--dire :

{ 7V|G} ~ H 7V|G53

fbTc S H V7 |G} ~$UnI] C* S A H V7 |G%AU


7V|G} ~ y 7V|G5  vI
37

Pour une insertion en dbut et en fin de liste, on aura respectivement


et
. Dans le cas gnral,
lintervalle maximum est obtenu en calculant la date de fin
au plus tt du job prcdent (
, earliest ending time) et
la date de dbut au plus tard du job suivant (
, latest
starting time).

17

Pour ces deux bornes, le calcul est rcursif ; il se termine


soit en dbut ou en fin de liste, soit lorsquon trouve deux
jobs conscutifs et qui ninteragissent pas (
).
En dfinitive, on a :

 0

37
17

 C_ ,

 f bAc S  H 37 k m- h % UxIK


 ; S  H 1 7 qVAV % U P 

3.2. Solution de dpart


Pour obtenir une solution initiale satisfaisante par rapport
au critre retenu (minimiser le poids des jobs en retard),
nous avons dvelopp une heuristique note
. Cette
heuristique choisit la meilleure insertion des jobs tris selon la rgle
sur toutes les machines.

FG a

FG a

La rgle classique
(weighted shortest processing
time) permet de placer en priorit les jobs de poids fort et
de petite dure. La meilleure insertion pour ce problme
consiste occuper les machines de faon ne pas laisser
de temps mort (idle time) sur celles-ci.
Initialement, les listes dordonnancement des diffrentes
machines sont vides (tous les jobs sont en retard). Pour
chaque job, on recherche sur les diffrentes machines le
plus petit intervalle maximum disponible respectant les
contraintes
. Si aucun intervalle ne permet linsertion, le job reste en retard, et lon passe au suivant. La
complexit de lheuristique
est de
.

S oH oH oU

S n U

4. RECHERCHE TABOUE
4.1. Liste taboue
Le voisinage retenu pour la recherche tabou est lchange
dun job en retard avec un ou plusieurs jobs termins

MOSIM01 du 25 au 27 avril 2001 Troyes (France)

 1

temps. Le retrait dans une liste (sur une machine) tant


toujours possible, nous permuttons jobs conscutifs
dune machine avec un job en retard. Le nombre maximum de jobs que lon va chercher permuter est donn
par
.

 1  |G5s  |G} ~
18

Nous avons test plusieurs critres tabou entre deux extrmes : dun ct lordonnancement complet et de lautre
le poids des jobs en retard. Nous avons en dfinitive retenu
la paire
(somme des poids et somme
des dures des jobs en retard), en excluant toute information sur les jobs termins temps. En effet, il existe
de nombreuses solutions voisines quivalentes (permutations entre machines) qui tendent saturer rapidement la
seul ne suffit
liste tabou. A linverse, le critre
pas : son domaine de valeurs est beaucoup trop restreint
par rapport au nombre de solutions possibles.

S  ' @ H  K  3U

  

4.2.

Liste taboue dynamique

Lun des aspects critiques de lutilisation dune recherche


taboue est la ncessit dajuster la longueur de la liste taboue pour parcourir efficacement lespace des solutions.
Si la liste est trop courte, la recherche finit par explorer un
optimum local de rayon lgrement suprieur. Les diffrentes solutions explores forment un cycle qui va se rpter indfiniment. A linverse, si la liste est trop longue,
tous les mouvements peuvent devenir tabous et sans nouveaux voisins la recherche sarrte, cest un blocage. Le
rglage de la longueur de la liste taboue dpend essentiellement de la topologie de lespace des solutions, pour
laquelle le voisinage et le critre tabou sont nos seuls
lments de mesure. En gnral, la liste tabou doit tre
maintenue une longueur minimale permettant dviter
un cycle.
En cas de blocage, tous les mouvements sont tabous. Cette
situation est facile dtecter. Il suffit de diminuer la longueur de la liste pour autoriser de nouveaux mouvements.
La dtection dun cycle se fait en mmorisant lhistorique des solutions. Le cot mmoire de cet historique reste faible, car le critre tabou est de petite taille
(paire de nombres). On recherche dans cet historique
deux sous-chanes de configurations identiques (mmes
valeurs, mme longueur) et conscutives. Si un tel cycle
est dtect, la longueur de la liste taboue est augmente.
Un cycle, sil existe, est ncessairement dune longueur
suprieure la longueur de la liste taboue. Disposant de
lhistorique, nous pouvons prvoir, donc de rendre tabou, le prochain mouvement. Nous avons galement test
une autre mthode (rendre tabous tous les mouvements
du cycle, en respectant lordre chronologique de lhistorique). Le parcours de lespace des solutions est alors diffrent, mais pas statistiquement meilleur ni pire.

5. RSULTATS NUMRIQUES
Nous prsentons ici une synthse des rsultats obtenus
sur une srie de problmes gnrs par P. Baptiste et al.
(Baptiste et al., 1998), ce qui nous permet de comparer les
rsultats issus dune mthode exacte avec la recherche taboue que nous avons mise en uvre. La mthode exacte a
t dveloppe par P. Baptiste et al. (Baptiste et al., 2000),
elle est base sur la propagation de contraintes. Pour la
. Comme P. Baptiste
suite, cette mthode sera note
et al., nous avons arbitrairement limit le temps de calcul
de chaque instance 600s.

v

Dans ce jeu dinstances, les poids sont compris entre 1


et
, et les instances sont regroupes en sries. Pour
chaque srie
, 30 problmes sont tudis.

|G%

S
%H GH  |G%TU

Dans un premier temps, nous avons effectu des tests


avec les modles de programmation linaire. Certaines
instances du jeu de donnes qui a servi de base cette
tude sont lavantage du modle variables indexes par
le temps. Par exemple, pour une des instances 30 jobs,
3 machines et
, la formulation variables de
position donne en une heure une solution ralisable 749
et une borne infrieure 694. Lautre formulation trouve
la solution optimale, 748, en moins de 15 secondes. Pour
une instance 90 jobs et 6 machines, au bout dune heure,
la premire fomulation ne donne quune borne infrieure
532 alors que la seconde formulation donne une borne
infrieure 678 et une solution ralisable 687. Il nous
reste mener des tests de plus grande envergure avec ces
formulations, notamment pour lobtention de bornes infrieures sur des problmes de grande taille.

 |G% 8

Les tableaux de TAB 1 prsentent une synthse des rsultats lorsque


est meilleur que
( gauche) ou linverse ( droite). Une case du tableau donne, pour une srie de problmes, le nombre de fois o une mthode lemporte sur lautre et lcart moyen de poids. Par exemple, le
tableau
de gauche montre que, pour
et
,
donne une solution meilleure que
pour
8 instances (sur les 30 que compte la srie) et la moyenne
des carts entre les solutions produites par les deux mthodes pour ces 8 instances est de 145.

a

v

ys

a

 |G5 _ 
v

Pour les instances 10 jobs, toutes les solutions optimales


sont trouves, et 76% dentre elles le sont par lheuristique
. Pour
, la solution optimale est trouve dans
94% des cas, et les carts sont dun poids de 2 au plus
quand loptimum nest pas trouv par
.

T

v 
|G%

donne de
Pour les tableaux de TAB 1, lorsque
meilleurs rsultats que
, les solutions sont trs proches
(du mme ordre de grandeur que
). Dans le cas
contraire, la technique dcrite dans (Baptiste et al., 2000)
donne des solutions trs loignes de la solution trouve
par
lorsquelle est interrompue prmaturment.

a

a

Deuxime constat, dune manire gnrale, quand le


nombre de jobs augmente,
lemporte de plus en plus

a

MOSIM01 du 25 au 27 avril 2001 Troyes (France)

ys


:
y


y

T


:
y


y

|G%

1
0
7
0

23.3

0
8
2

145
153

99
0
5
2

1174
1305

 |G%

1
1
25
8

RFRENCES

10

10

1
35
38.9

0
23
12

210
180

99
1
22
12

21
1996
1459

TS meilleur que PPC

ys


:
y


y

T


:
y


y

1
4 1.25
5
1
1
1

4
4
4

10
3.5
1.5
4

 |G%

1
6
1
4

|G%

1
1
1

10
13 2.92
5
3.2
3 3.67

7
9
5

99
13.29
14.3
28.6

99
15 42.4
7
41.6
3
22.3

PPC meilleur que TS


Tableau 1. Nombre dchantillons et carts moyens en cas
de diffrence

souvent. Ceci ne se vrifie pas pour une machine, o


semble tre performante. En revanche, la limite arbitraire de temps de calcul 600s pnalise
partir
de 60 jobs, tandis que
donne une solution de dpart
peut toujours amliorer.
en moins de 0.02s que

v

6.

g
a

v

CONCLUSION

Les rsultats obtenus par notre mthode sont proches de la


solution optimale, lorsque nous disposons de celle-ci. La
plus grande difficult consiste trouver un critre darrt
pour la recherche taboue, cette mthode pouvant continuer
parcourir lespace des solutions mme lorsque la solution optimale a t trouve. Le calcul dune borne infrieure par la relaxation linaire dun modle de programmation linaire en nombres entiers devrait nous permettre
dapporter un dbut de rponse ce problme.
De plus, daures tests devront tre mens sur des instances
plus diversifies que celle dont nous disposons, pour vrifier si la qualit des solutions obtenues par notre mthode
reste identique. Par ailleurs, la formulation base de variables indexes par le temps sera aussi tudie de manire
approfondie pour mettre en place une rsolution exacte
par gnration de colonnes.

Baptiste P., A. Jouglet, C. L. Pape, et W. Nuijten, 2000.


A constraint-based approach to minimze the weighted
number of late jobs on parallel machines. Rapport technique 2000/228, UMR, CNRS 6599, Heudiasyc, France.
Baptiste P., C. L. Pape, et L. Pridy, 1998. Global
constraints for partial CSPs : A case study of resource
and due-date constraints. In Proceeding of the 4th International Conference on Principles and Practices of
Constraint Programming, Pisa, Italy.
Dauzre-Prs S. et M. Sevaux, 1999. Using lagrangean relaxation to minimize the (weighted) number of
late jobs on a single machine. Rapport technique
99/8/AUTO, Ecole des Mines de Nantes, France.
den Akker J. V., C. Hurkens, et M. Savelsbergh, 2000.
Time-indexed formulations for machine scheduling problems : Column generation. INFORMS Journal on Computing, 12 :111124.
Garey M. et D. Johnson, 1979. Computers and Intractability : A Guide to the Theory of NP-Completeness. Freeman, San Francisco, CA, USA.
Graham R., E. Lawler, J. Lenstra, et A. R. Kan, 1979.
Optimization and approximation in deterministic sequencing and scheduling : A survey. Annals of Discrete
Mathematics, 5 :287326.
Lenstra J., A. R. Kan, et P. Brucker, 1977. Complexity
of machine scheduling problems. Annals of Discrete Mathematics, 1 :343362.
Sevaux M. et S. Dauzre-Prs, 2000. Genetic algorithms to minimize the weighted number of late jobs
on a single machine. Rapport technique 2000/51, UMR
CNRS 8530, Lamih/SP, France.

S-ar putea să vă placă și