• Aucun résultat trouvé

Nos exp´eriences ont ´et´e men´ees sur un Pentium III 800MHz avec 384Mb de RAM sous De- bian/Linux et g++ 2.95.4. Les programmes ont ´et´e ´ecrits en C++ en utilisant ILOG CPLEX 7.0 pour la r´esolution des programmes lin´eaires.

La table3.1donne les r´esultats obtenus par relaxation lagrangienne sur les instances KSD `a 30 activit´es, dont les solutions optimales sont toutes connues. Nous avons limit´e nos exp´eriences au mod`ele pr´eemptif des ensembles admissibles suivant le sch´ema destructif. Tout programme lin´eaire est pr´etrait´e par application de l’algorithme de shaving complet, c’est-`a-dire appliqu´e `a toute paire d’activit´es non s´equenc´ees.

Dans les deux premi`eres colonnes, les m´ethodes GC/heur et GC/opt correspondent `a la r´esolution du dual lagrangien par g´en´eration de coupes mais avec des bornes sup´erieures de d´epart diff´erentes : la valeur de la solution obtenue par la m´ethode tabou de Baar et al. [Baar 1998] (heur) et la valeur de la solution optimale (opt). La colonne SG/opt correspond `a la r´esolution du dual lagrangien par la m´ethode du sous gradient, avec une borne sup´erieure ´egale `a la valeur optimale. La colonne BKdonne pour comparaison les r´esultats de la m´ethode de g´en´eration de colonnes de Brucker et Knust.

Pour chacune de ces bornes, nous donnons l’´ecart moyen et maximal par rapport `a l’optimum, le temps de calcul moyen et maximal en secondes, le nombre d’instances v´erifi´ees et enfin le nombre d’instances o`u la borne inf´erieure a ´et´e d´etermin´ee par la programmation lin´eaire.

Tab. 3.1 – Borne destructive de relaxation lagrangienne sur le mod`ele pr´eemptif des ensembles admissibles pour les instances KSD 30

#activit´es GC/heur GC/opt SG/opt BK

moy ∆ opt 0,8% 0,8% 0,65% 1,5% max 18,2% 18,2% 14,13% 11,1% KSD30 moy CPU(1) 10,6 6,7 27,9 0,4 (480) max 289,8 301,7 827,7 4,3 #LB=opt 393 393 400 318 #LB par LP 28 28 92

(1) la borne BK est calcul´ee sur une station Sun Ultra 2 `a 167MHz.

Les bornes bas´ees sur la relaxation lagrangienne obtiennent de tr`es bons r´esultats sur les ins- tances `a 30 tˆaches. Elles sont toutes en moyenne `a moins de 1% de la solution optimale et surpassent

en cela la borne destructive bas´ee sur la g´en´eration de colonnes de Brucker et Knust. Elles dominent ´egalement cette borne pour le nombre d’instances v´erifi´ees. En contrepartie, elles sont moins bonnes dans le pire des cas et surtout elles ont des temps de calcul beaucoup plus ´elev´es. Un des int´erˆets fondamentaux de l’utilisation de bornes destructives est ´egalement illustr´e. La borne obtenue par r´esolution du dual lagrangien au moyen de la g´en´eration de coupes est ind´ependante de la borne sup´erieure (voir colonnes GC/heur et GC/opt). Seul le temps de calcul augmente en fonction de la borne sup´erieure. Les meilleurs r´esultats sont obtenus par la m´ethode du sous gradient avec 400 instances v´erifi´ees sur 480 mais les temps de calcul sont alors tr`es ´elev´es. Il est toutefois possible qu’un meilleur param´etrage de l’algorithme permette d’acc´el´erer la recherche.

La table3.2 donne les r´esultats sur les instances KSD `a 60 tˆaches pour la m´ethode bas´ee sur la g´en´eration de coupes avec une borne sup´erieure ´egale `a la meilleure valeur connue. La colonnne CCP+GC d´esigne les r´esultats avec l’algorithme de shaving complet. La colonne LCP+GC d´esigne les r´esultats sans l’algorithme de shaving, l’ algorithme de filtrage local LCP ´etant appliqu´e seul. Nous comparons nos r´esultats avec la meilleure borne inf´erieure connue sur ce groupe d’instances et propos´ee par Brucker et Knust (colonne BK), avec la relaxation lagrangienne de M¨ohring et al. (colonne MSSU) ainsi qu’avec la meilleure borne inf´erieure connue pour chacune des instances (colonne LB*). Suivant le sch´ema exp´erimental de M¨ohring et al., nous donnons les r´esultats sur les 360 instances dont le param`etre RS (Resource Strength) est strictement inf´erieur `a 1. En effet, toutes les instances telles que RS=1 sont triviales.

Pour chacune des bornes, nous donnons l’´ecart moyen par rapport `a la borne inf´erieure basique du chemin critique, le temps de calcul moyen et maximal, le nombre d’optima trouv´es, le nombre de fois ou la borne propos´ee d´epasse la meilleure borne connue pr´ec´edemment, le nombre de fois ou la borne est d´etermin´ee par la programmation lin´eaire, le nombre d’instances nouvellement ferm´ees par la borne propos´ee et enfin le nombre d’it´erations de l’algorithme (correspondant au nombre total de coupes g´en´er´ees par notre m´ethode et le nombre d’it´erations du sous-gradient pour la m´ethode de M¨ohring).

Tab. 3.2 – Borne destructive de relaxation lagrangienne sur le mod`ele pr´eemptif des ensembles admissibles pour les instances KSD 60

#activit´es CCP+GC LCP+GC MSSU BK LB* moy ∆ LB0 10,6% 9,9% 7,46% 10,34% 10,56% moy CPU(1) 462 410 2,4 5 - max 7880 3342 32 3720 - KSD60 #LB=UB 241 227 ND 221 236 (360) #LB>LB* 43 18 - - - #LB par LP 47 57 - 92 - #New opt 10 2 - - - moy #it 144 190 49 - - max 1982 2184 172 - -

(1) BK est calcul´e sur une station Sun Ultra 2 `a 167MHz. MSSU est calcul´e sur une station Sun Ultra 2 `a 200 Mhz

Les r´esultats confirment la qualit´e des nouvelles bornes propos´ees bas´ees sur la relaxation lagrangienne car sur les 360 instances, nous d´eterminons 43 nouvelles bornes inf´erieures et nous fermons 10 nouvelles instances (j601 7, j603 8, j6021 2, j6021 3, j6033 6, j6037 3, j6037 5, j6037 8, j6037 10 et j6038 8). Avec le shaving, nous obtenons ainsi un meilleur ´ecart par rapport `a la borne inf´erieure du chemin critique et un plus grand nombre d’optima trouv´es que les meilleures bornes connues. Notre temps de calcul est par contre beaucoup plus ´elev´e que celui des bornes BK et MSSU.

La derni`ere ligne montre que notre algorithme comporte beaucoup plus d’it´erations que celui de M¨ohring et al, ce qui est dˆu en partie au sch´ema destructif, provoquant la r´esolution de davantage de programmes lin´eaires. Cela nous montre encore la n´ecessit´e de d´evelopper un algorithme de sous-gradient aussi peu coˆuteux que celui de M¨ohring et al. En supprimant l’algorithme couteux de shaving, le temps de calcul diminue faiblement alors que la qualit´e des r´esultats diminue fortement. La PPC ´etant moins forte, la programmation lin´eaire se d´eclenche plus souvent, le nombre de coupes g´en´er´ees augmentant d’autant. Notre borne reste alors meilleure que celle de M¨ohring et al. mais devient inf´erieure `a la meilleure borne connue. Nous reviendrons au chapitre 4 sur l’impact des algorithmes de propagation de contraintes sur la qualit´e de la borne.

Nous proposons maintenant une analyse plus profonde de ces r´esultats en les ´evaluant en fonc- tion des caract´eristiques N C (la densit´e du graphe du projet), RF (le nombre moyen de ressources requises par chaque activit´e) et RS (indice sur la capacit´e des ressources) des instances KSD (voir section2.4.1). Parmi les instances de KSD30, Mingozzi et al. [Mingozzi 1998] ont identifi´e plusieurs s´eries que la PSE de [Demeulemeester 1992] ne parvenait pas `a r´esoudre. Dans la table3.3, nous donnons, pour chacune de ces s´eries, la d´eviation moyenne en pourcentage de notre borne (relaxa- tion lagrangienne avec sous-gradient) par rapport `a l’optimum, compar´ee `a la borne du chemin critique LB0 et `a la borne LB1 de [Mingozzi 1998].

Tab.3.3 – Relaxation lagrangienne : r´esultats compar´es sur les s´eries « dures » de KSD30

s´erie NC RF RS LB0 LB1 SG 21 1,8 0,50 0,20 25,67 13,55 0,00 25 1,8 0,75 0,20 36,68 9,75 1,07 29 1,8 1,00 0,20 41,56 11,66 4,55 30 1,8 1,00 0,50 8,88 5,34 3,20 31 1,8 1,00 0,70 2,66 0,74 0,95 41 2,1 0,75 0,20 37,24 8,21 0,11 45 2,1 1,00 0,20 36,52 8,26 0,36

Except´e pour la s´erie 31, SG est meilleure que LB1 pour chacune de ces instances. En fait, il semble que les s´eries identifi´ees comme difficiles par Mingozzi et al. ne correspondent pas `a celles pour lesquelles notre m´ethode est moins efficace. Par exemple, SG r´esoud toutes les instances de la s´erie 21 mais est ´eloign´ee en moyenne de 6, 25% de l’optimum pour la s´erie 13. La borne est en r´ealit´e tr`es bonne pour les instances correspondant `a un facteur de ressources bas (RF = 0, 25 ou 0, 5), comme pour la s´erie 21, mais beaucoup moins performante si RF est ´elev´e et RS faible, comme pour les s´eries 13 et 29 (RF = 1 et RS = 0, 2).

Pour mieux appr´ecier le comportement de notre approche en fonction de ces caract´eristiques, nous donnons dans la table 3.4, les r´esultats exp´erimentaux sur les instances de KSD60 corres- pondant `a RS = 0, 2. On rappelle que ce sont les instances consid´er´ees souvent comme les plus difficiles [Brucker 2000] (parmi les instances KSD) et qui poss`edent peu de ressources disponibles et donc de nombreuses disjonctions. Ici, les s´eries sont regroup´ees, pour chaque ligne, en fonction de leur facteur RF . Les colonnes 4, 5, et 6 donnent la d´eviation moyenne par rapport `a la meilleure borne sup´erieure connue pour, respectivement, les bornes LB0, BK et GC (relaxation lagrangienne par g´en´eration de coupes). La colonne 7 reporte le nombre d’instances pour lesquelles GC am´eliore la meilleure borne connue, parmi celles qui sont encore ouvertes (colonne 8).

Il apparaˆıt clairement que le groupe des instances difficiles n’est pas homog`ene et que la qualit´e de notre borne d´epend aussi de RF . On d´etermine par exemple un grand nombre de nouvelles meilleures bornes inf´erieures pour les instances pour des RF faibles (3 sur 3 instances ouvertes

Tab.3.4 – Relaxation lagrangienne : r´esultats compar´es sur les instances KSD60 avec RS=0.2 s´eries RS RF LB0 BK GC #GC>LB* #UB>LB* 1,17,33 0,20 0,25 8,82% 0,99% 0,08% 3 3 60 5,21,37 0,20 0,50 23,40% 8,23% 3,17% 27 30 9,25,41 0,20 0,75 31,51% 9,38% 6,17% 7 30 13,29,45 0,20 1,00 39,90% 7,36% 10,60% 0 30

avec RF = 0, 25 et 27 sur 30 pour RF = 0, 5), mais la borne est bien moins performante pour les instances avec RF = 1 ou RF = 0, 75, o`u les activit´es n´ecessitent en moyenne toutes ou les trois-quarts des ressources pour s’ex´ecuter. La propagation de contraintes, qui est cruciale dans notre sch´ema, s’av`ere moins efficace dans ce cas.

Calcul de Bornes Inf´erieures par

G´en´eration de Coupes

Nous pr´esentons dans ce chapitre, un autre type de bornes inf´erieures pour le RCPSP. La m´ethode g´en´erale est de nouveau bas´ee `a la fois sur la programmation par contraintes et sur la program- mation lin´eaire, mais ici elle applique un degr´e sup´erieur d’int´egration entre les deux solveurs. En effet, nous proposons d’utiliser les m´ethodes ou les r´esultats de la PPC pour d´efinir de nouvelles in´egalit´es valides pour diff´erentes formulations lin´eaires du RCPSP. En ce sens, les coupes g´en´er´ees peuvent ˆetre assimil´ees `a des lin´earisations de la contrainte globale cumulative. Nous calculons de la sorte diff´erentes bornes inf´erieures, dans une approche constructive ou destructive, et pour trois formulations lin´eaires du RCPSP : le mod`ele en temps continu, le mod`ele classique en temps discretis´e et le mod`ele pr´eemptif bas´e sur les ensembles admissibles. Dans le premier mod`ele issu de la formulation disjonctive de Balas, le pr´etraitement et les coupes, tous deux bas´es sur la PPC, sont primordiaux pour compenser la relaxation compl`ete des contraintes d’int´egralit´e et des contraintes de ressources. Nous d´efinissons ainsi de nouvelles in´egalit´es, g´en´er´ees par lifting et exploitant les r´esultats du shaving sur les s´equencements, qui est appliqu´e en pr´etraitement du programme li- n´eaire. `A la suite des lin´earisations de Applegate et Cook [Applegate 1991] pour le probl`eme du job-shop, nous g´en´erons aussi des coupes reprenant le principe du edge-finding et qui s’appliquent directement aux ensembles disjonctifs pr´ecalcul´es par PPC. Nous identifions de la mˆeme fa¸con des coupes bas´ees sur le shaving et les ensembles disjonctifs pour la relaxation continue du mod`ele en temps discretis´e. L’´etude de ces deux mod`eles est bas´ee sur [Demassey 2002,Demassey 2003]. Pour le troisi`eme mod`ele, il s’agit d’une association au travail de Philippe Baptiste sur l’am´elioration de la borne de Brucker et Knust [Brucker 2000] par g´en´eration de coupes bas´ees sur le raisonnement ´energ´etique et la prise en consid´eration des pr´ec´edences et de la non-pr´eemptivit´e. Les r´esultats pr´esent´es ici sont issus de [Baptiste 2004].

Nous d´ecrivons par la suite les in´egalit´es valides que nous avons d´evelopp´ees pour chacun des trois mod`eles lin´eaires : mod`ele en temps continu, mod`ele en temps discretis´e et mod`ele pr´eemptif bas´e sur les ensembles admissibles. Nous analysons ensuite nos r´esultats exp´erimentaux pour cha- cune des bornes inf´erieures ainsi calcul´ees. Comme pr´ec´edemment les bornes sont calcul´ees par une approche constructive ou destructive, on se r´eferera donc au chapitre pr´ec´edent pour les m´ethodes g´en´erales de calcul. Pour les deux premiers mod`eles, seul change le programme lin´eaire et son mode de r´esolution, effectu´ee, non plus par relaxation lagrangienne, mais par relaxation continue et g´en´eration de coupes. Pour le troisi`eme mod`ele, la borne est calcul´ee de fa¸con destructive par g´en´eration de colonnes (voir section3.2.2) mais avec un algorithme de filtrage diff´erent.

On reprend les notations utilis´ees depuis le d´ebut de ce m´emoire, en particulier :

– T l’horizon : `a tout moment, on ne consid`ere que des ordonnancements de dur´ee inf´erieure ou ´egale `a T ;

– bij une distance minimale, ´eventuellement n´egative, entre la date de d´ebut Si de l’activit´e

i et la date de d´ebut Sj de l’activit´e j. La matrice des distances B est calcul´ee `a partir de

T (b(n+1)0 = −T ) par la PPC. Elle est ferm´ee transitivement (bij ≥ bil+ blj) et suppos´ee

consistante (bij+ bji≥ 0). La fenˆetre d’ex´ecution de l’activit´e i est ainsi d´efinie par ESi= b0i

et LFi= pi− bi0;

– D est un ensemble de paires d’activit´es en disjonctions i − j, et C est une clique d’activit´es ou « ensemble disjonctif » compos´e d’activit´es r´eelles toutes en disjonction deux `a deux ; – Bi∼j et Di∼j sont la matrice des distances et l’ensemble des disjonctions retourn´es par le

shaving apr`es avoir impos´e le s´equencement i ∼ j, avec ∼∈ {→, k} (voir section2.2.6). Par exemple, si le s´equencement relatif i → j n’est ni fix´e (bij < pi), ni interdit (bji≤ −pi) dans

la relaxation PPC, alors la distance bi→jhl est au moins aussi grande que bhl et correspond `a

une borne inf´erieure de Sl− Shpour tout ordonnancement r´ealisable S dans lequel l’activit´e

i pr´ec`ede l’activit´e j.

Comme nous avons utilis´e cette technique pour la g´en´eration de certaines in´egalit´es valides, nous revenons, pour commencer, sur la proc´edure g´en´erique de lifting.

4.1

G´en´eration d’in´egalit´es valides par lifting

Le lifting est une technique plutˆot intuitive pour inf´erer des in´egalit´es valides pour l’ensemble S des solutions d’un programme lin´eaire `a partir d’une in´egalit´e v´erifi´ee par seulement une partie des solutions, S0= S ∩ {x = 0} ou S1= S ∩ {x = 1}, o`u x est une variable binaire du programme. Elle

est ainsi d’un usage assez fr´equent et, en particulier pour la lin´earisation de mod`eles disjonctifs, elle permet de d´eterminer, du moins th´eoriquement, les valeurs grand M les plus serr´ees.

Pour illustrer cette technique, on prend l’exemple d’un programme lin´eaire sur x = (x1, . . . , xn)

dansRn, la premi`ere variable x

1´etant une variable binaire sur laquelle est effectu´ee le lifting :

Proposition 7 Soit

n

X

i=2

πixi ≤ π0 (4.1)

une in´egalit´e valide pour S0. Si S1= ∅ alors x

1≤ 0 est valide pour S, sinon

αx1+ n

X

i=2

πixi≤ π0 (4.2)

α = π0− ζ0 et si (4.1) d´efinit une facette de S0, alors (4.2) d´efinit une facette de S.

Sym´etriquement, si (4.1) est maintenant une in´egalit´e valide pour S1, alors : Si S0= ∅ alors

x1≥ 1 est valide pour S, sinon

β(1 − x1) + n

X

i=2

πixi≤ π0 (4.3)

est une in´egalit´e valide pour S pour tout β ≤ π0− ζ1, o`u ζ1= max{Pni=2πixi|x ∈ S0}. De plus, si

β = π0− ζ1 et si (4.1) d´efinit une facette de S1, alors (4.3) d´efinit une facette de S.

La difficult´e repose ´evidemment sur le calcul de ζ qui correspond au meilleur coefficient possible pour la variable lift´ee. Cependant, il est souvent facile de trouver une approximation α ou β, suffisament bonne pour que l’in´egalit´e lift´ee coupe effectivement la solution fractionnaire que l’on souhaite s´eparer.

Le sch´ema4.1pr´esente un exemple pour n = 2 o`u la facette {(0, 2), (1, 4)} de S est d´eduite de la facette {(0, 2)} de S0, par lifting sur la variable x

1. 0 1 1 2 3 4 0 x y1        S0 S1 conv(S) lifting

in´egalit´e valide pour S0

in´egalit´e valide pour S

Fig.4.1 – Exemple de coupe g´en´er´ee par lifting.

Sur ce mˆeme principe, il est possible de lifter simultan´ement sur plusieurs variables `a la fois. Partant, par exemple, d’une in´egalit´e validePn

i=3πixi ≤ π0pour l’ensemble des solutions v´erifiant

x1= 0 et x2= 1, il s’agit de d´eterminer les « plus gros » coefficients α et β faisant de αx1+ β(1 −

x2) +Pni=3πixi≤ π0une in´egalit´e valide pour S, c.-`a-d. qui satisfont :

α ≤ π0− max{pix|x ∈ S, x1= 1, x2= 1}

β ≤ π0− max{pix|x ∈ S, x1= 0, x2= 0}

α + β ≤ π0− max{pix|x ∈ S, x1= 1, x2= 0}

L’in´egalit´e r´esultante peut alors dominer strictement celles obtenues en liftant succesivement sur x1 puis sur x2(de {x ∈ S|x1= 0, x2= 1} `a {x ∈ S|x2= 1} puis `a S) ou inversement sur x2 puis

x1. D’ailleurs, puisque d´eterminer les valeurs ζ de la proposition est un probl`eme g´en´eralement

aussi difficile que le probl`eme initial et qu’on se contente `a la place d’approximations α et β, le lifting successif ne g´en`ere souvent pas les mˆemes in´egalit´es selon l’ordre choisi des variables. Parmi les coupes que nous proposons, plusieurs sont calcul´ees par lifting simultan´e.