• Aucun résultat trouvé

Contributions en programmation par contraintes sur intervalles

4.3 Recherche locale

ne le mentionne pas) que Box-k+multisplit est bien plus robuste que IBB. Si un bloc est mal construit et contient une infinit´e de solutions,Box-k-Revise effectuera un travail inutile sur ce bloc mais limit´e en effort. Rien n’empˆechera d’autres blocs d’apporter leur contraction.

La principale perspective de ce travail me semble ˆetre la s´electionautomatiquede sous-syst`emes

“prometteurs” dans le syst`eme global. Nous pensons qu’une adaptation d’algorithmes de flot ou de graphes prenant en compte les crit`eres de taille de blocs et ρio pourrait mener `a des heuristiques efficaces.

4.3 Recherche locale

J’ai ´egalement fait quelques d´etours vers un domaine assez diff´erent, celui de l’optimisation com-binatoire, en travaillant sur des heuristiques, des m´eta-heuristiques et un probl`eme de placement de rectangles en 2D (strip packing). Les motivations derri`ere ces travaux sont multiples, certaines sont avouables (initialement, le plaisir de relire un article [66] dans ce domaine bien formalis´e sur l’algorithme “Go with the Winners” ; le plaisir enfantin de constater que “¸ca marche” ; le jeu d’intuitions et d’exp´erimentations permettant de faire les bons choix algorithmiques) et d’autres moins (la joie de voir Bertrand basculer des algorithmes g´en´etiques vers la recherche locale ; la fiert´e d’´echanger avec l’inventeur de la m´ethode taboue ; de beaux s´ejours au Chili). Tous les travaux d´ecrits ci-dessous se sont faits en ´etroite collaboration avec Bertrand Neveu. Nous nous pla¸cons, sans perte de g´en´eralit´e, dans l’hypoth`ese de probl`emes de minimisation.

La premi`ere contribution a ´et´e d’am´eliorer l’algorithme incompletGo With the Winners(GWW).

GWW est un algorithme `a population qui baisse un seuil progressivement jusqu’`a ce que toutes les particules (configurations, individus) ne parviennent plus `a descendre vers de meilleures solutions. Entre chaque baisse du seuil, les diff´erentes particules effectuent d’abord une marche al´eatoire de longueur sp´ecifi´ee. Les particules rattrap´ees par le seuil sont alors redistribu´ees sur les autres (leswinners) [67, 68].

L’usage intensif de l’al´eatoire a facilit´e les calculs th´eoriques effectu´es par les auteurs concernant la probabilit´e de trouver une solution ou la r´epartition des particules dans l’espace de recherche.

Il a en revanche des effets n´egatifs sur les performances car la m´ethode manque d’intensification (capacit´e `a descendre vers les solutions de meilleurs coˆuts). Nous avons propos´e une am´elioration de GWWpour le rendre plus comp´etitif. D’abord, le seuil est baiss´e de mani`ere plus sophistiqu´ee, de mani`ere `a pouvoir s’adapter `a des paysages tr`es chahut´es. Ensuite, la marche al´eatoire est remplac´ee par une technique de recherche locale, produisant le sch´ema GWW-LS(GWWwith Local Search). De bons r´esultats ont ´et´e obtenus sur des instances difficiles de coloriage de graphes et d’affectation de fr´equences (CELAR). Deux articles d´ecrivent GWW-LS, l’instance GWW-idw retenue pour nos exp´erimentations et les exp´erimentations elles-mˆemes [224, 225].

GWW-idw poss`ede n´eanmoins 4 param`etres : le nombre de particules, un param`etre utilis´e pour la gestion du seuil, la longueur des marches, un nombre de voisins utilis´e par la recherche locale.

Comme cela faisait trop pour notre compr´ehension, nous avons sorti la m´eta-heuristiqueID walk utilis´ee parGWW-idwpour nous consacrer par la suite `a son ´etude de mani`ere ind´ependante. ID Walk s’av`ere ˆetre une m´etaheuristique aussi simple qu’efficace et constitue probablement la

contribution la plus importante de ces travaux (cf. section suivante).

Pour tester les diff´erents algorithmes, Bertrand Neveu a d´evelopp´e une biblioth`eque en C++, appel´ee INCOP, incluant les principales m´etaheuristiques connues (m´ethode taboue, recuit simul´e, etc), GWW-LS et ID walk. J’ai simplement particip´e au choix d’architecture de la bi-blioth`eque [231]. Cette biblioth`eque sert notamment `a nos d´eveloppements internes en opti-misation combinatoire. Elle a ´et´e n´eanmoins utilis´ee par Christine Solnon pour comparer les m´etaheuristiques classiques `a ses algorithmes de fourmis [271]. Elle est ´egalement int´egr´ee dans les outils ToolBar etToulBar2 maintenus par Simon de Givry.ToolBar etToulBar2 sont des outils d’optimisation compl`ete sp´ecialis´es dans les CSP pond´er´es (WCSP) [252]. INCOP a ´et´e par exemple utilis´e pour trouver un majorant initial lors de la comp´etition de Max-CSP en 2007 [42].

4.3.1 ID Walk

Article publi´e dans les actes du congr`es CP [231] et reproduit au chapitre K.

Auteurs : Bertrand Neveu, Gilles Trombettoni, Fred Glover.

Le principe de larecherche localeconsiste `a chercher la meilleure solution d’un probl`eme d’optimi-sation combinatoire en effectuant unemarche, c’est-`a-dire une suite demouvements´el´ementaires qui modifient laconfigurationcourante. L’ensemble des mouvements possibles `a partir de la confi-guration courante est appel´evoisinage[99]. A la fin de la marche, on retourne la configuration de coˆut le plus bas trouv´ee en chemin. La recherche locale est une approche incompl`ete en ce qu’elle est incapable de garantir dans le cas g´en´eral d’avoir trouv´e une des configurations de meilleur coˆut. La d´efinition du voisinage d´epend de la mod´elisation du probl`eme. Par exemple, pour une formule bool´eenne dont il faut trouver un mod`ele (solution), une configuration c correspond `a une affectation de toutes les variables bool´eennes `a la valeur 0 ou 1 et poss`ede un coˆut ´egal au nombre de clauses viol´ees. Un voisin c0 de c est la configuration c dans laquelle on prend la n´egation d’une seule variable bool´eenne. Dans une autre d´efinition de voisinage plus inten-sifiant, on peut choisir un voisinc0 o`u l’on modifie une seule variable, mais telle que le nombre de clauses viol´ees diminue ou reste ´egal `a celui dec. Si au cours de la marche, on passe par une configuration de coˆut nul, alors on a trouv´e une solution ; dans le cas contraire, on ne peut rien conclure. Les m´etaheuristiques sont des algorithmes applicables `a tout probl`eme combinatoire et qui recherchent toutes `a satisfaire deux crit`eres importants : l’intensification pour descendre prioritairement vers les meilleures configurations et ladiversification pour ne pas rester confin´e dans une seule r´egion de l’espace de recherche.

ID Walk est une m´etaheuristique bas´ee sur la recherche locale. Elle est une alternative aux m´etaheuristiques classiques que sont la m´ethode taboue [99] et le recuit simul´e [169]. Tout comme ses c´el`ebres comp´etititrices, ID Walk poss`ede peu de param`etres. En plus de la lon-gueur de la marche qui est un param`etre d´eterminant plutˆot le temps de calcul (sauf en cas de

4.3. Recherche locale 89 red´emarrage/restart),ID Walkposs`ede un ou deux param`etres. Dans sa version la plus g´en´erale, disponible dans INCOP et d´ecrite dans un r´esum´e `a ROADEF [232], les deux param`etres MaxNeighbors et SpareNeighbors (SpareNeighbors ≤ MaxNeighbors) sont des nombres de voisins candidats, d’o`u son appartenance `a la cat´egorie dite des strat´egies bas´ees sur la liste des candidats (candidate list strategies). En utilisant ses param`etres,ID Walkeffectue un mouvement d’une configuration xvers une configuration x0 de la mani`ere suivante :

1. ID Walk pioche al´eatoirement les voisins candidats un par un et ´evalue leur coˆut. Le premiervoisinx0 avec un coˆut meilleur ou ´egal `a celui dex est accept´e (c’est-`a-dire qu’un mouvemement sera effectu´e de xvers x0).

2. SiMaxNeighborscandidats ont ´et´e rejet´es lors de cette premi`ere boucle, le moins mauvais desSpareNeighbors premiers voisins examin´es est n´eanmoins s´electionn´e

(SpareNeighbors ≤MaxNeighbors).

Deux “instances” imm´ediates de ID Walk sont d´ecrites dans nos articles. Si SpareNeighbors vaut MaxNeighbors, la variante appel´eeID(best), en cas d’´epuisement desMaxNeighbors voi-sins pioch´es, retourne le meilleur d’entre eux (ou plutˆot le moins mauvais). Si au contraire SpareNeighbors vaut 1, la variante appel´eeID(any) retournen’importe lequel d’entre eux.

ID(best)a un point commun avec une des (multiples) variantes de la m´ethode taboue. Il s’agit de l’´etape 2 ci-dessus2. Cependant, les diff´erences sont l’absence de liste taboue et l’´etape 1 ci-dessus.

Sans d´etailler,MaxNeighborsoffre un compromis entre effort d’intensification et diversification.

SpareNeighborsr`egle un degr´e de diversification. Nous avons m´edit´e `a bien d’autres variantes, comprenant des param`etres sp´ecialis´es chacun dans la tˆache d’intensification ou de diversifica-tion, sans grand succ`es en pratique. Nous avons ´egalement cherch´e `a rendreID Walk adaptatif, en vain !

Faute de grives, la proc´edure de r´eglage automatique de param`etres disponible dans INCOP se comporte tr`es bien sur ID Walk. Cette proc´edure est utilis´ee dans une strat´egie (ou m´ eta-m´etaheuristique) de recherche locale qui prend en param`etre une m´etaheuristique et rien d’autre.

Cette recherche locale enchaˆıne des sous-marches de taille croissante effectu´ees par la m´ eta-heuristique avec des valeurs de param`etres fix´es. Chaque sous-marche est pr´ec´ed´ee d’une phase de r´eglage automatique qui balaie l’espace des valeurs des param`etres sur un nombre r´eduit de mouvements.

La proc´edure de r´eglage des param`etres est tr`es robuste sur ID(best) etID(any) car un seul param`etre doit ˆetre r´egl´e et car le balayage dichotomique des valeurs des param`etres ne peut g´en´eralement pas diverger. En effet, une valeur trop faible deMaxNeighbors empˆeche ID Walk d’intensifier sa recherche et produit une mauvaise valeur de l’objectif. De mˆeme pour une valeur trop forte de MaxNeighbors qui ne diversifie pas assez sa recherche. La proc´edure de r´eglage appliqu´ee `a ID Walk (`a deux param`etres) est relativement robuste. La part du r´eglage dans le temps total de la m´eta-m´etaheuristique est de l’ordre de 20% `a 60% du temps selon l’instance trait´ee, la m´etaheuristique utilis´ee, le nombre de param`etres `a r´egler (1 ou 2).

2Des tests sur plusieurs instances sugg`erent d’ailleurs que ce param`etre a plus d’impact sur les performances que la liste taboue !

Ind´ependamment de la proc´edure de r´eglage automatique, retenons un avantage tr`es important deID Walk(par rapport `a une m´ethode utilisant une liste taboue par exemple) : son param`etre MaxNeighbors a un impact tr`es important sur les performances et se r`egle tr`es bien !

ID Walk et ses deux instances ont ´et´e appliqu´es avec succ`es `a de nombreux probl`emes comme le CSP (instances g´en´er´ees al´eatoirement), le coloriage de graphe, l’allocation de fr´equences (CELAR), la variante du carr´e latin spatialement ´equilibr´e ou l’ordonnancement de voitures sur une chaˆıne de montage (car sequencing). C’est ´egalementID(any)(d´esign´e parIDWadans l’outil INCOP) qui est souvent utilis´e dans ToolBar pour calculer un premier majorant [42]. ID(best) a enfin ´et´e utilis´e plus r´ecemment pour traiter une variante d’un probl`eme de placement de rectangles.

4.3.2 Probl`eme du Strip Packing

Ces travaux ont ´et´e d´ecrits dans diff´erents articles [227, 229, 226]. L’article paru dans la revue IJAIT [229] est reproduit au chapitre L. L’article [226], reproduit au chapitre M, r´esume nos derni`eres avanc´ees sur le sujet.

Auteurs : Bertrand Neveu, Gilles Trombettoni, Ignacio Araya, Maria-Cristina Riff.

Ces recherches ont ´et´e men´ees dans le cadre d’une coop´eration avec le Chili (accords entre CONICYT et l’INRIA), en collaboration avec Maria-Cristina Riff. Tout a commenc´e par le choix d’un probl`eme de placement de rectangles, leStrip Packingqui est une variante du c´el`ebre Bin Packingen 2D, variante un peu moins ´etudi´ee que ce dernier.

Le probl`eme consiste `a placer, sans recouvrement, des rectangles de hauteur et largeur donn´ees sur une bande rectangulaire (strip) de largeur donn´ee et de hauteur infinie. Le but consiste `a minimiser la hauteur de bande utilis´ee. Ce probl`eme est parfois pos´e comme un probl`eme de d´ecoupe. Il en existe plusieurs variantes, notamment selon si les op´erations de d´ecoupe doivent ou non se faire sur toute la largeur de la bande (coupe guillotine) ou si l’on peut tourner ou non les rectangles d’un angle de 90 degr´es. Nous avons ´etudi´e le probl`eme de base et sa variante autorisant les rotations de rectangles.

Pour r´esoudre ce probl`eme, nous avons propos´e un algorithme incompletsans aucun param`etre utilisateur, divis´e en deux phases :

1. une heuristique gloutonne produit un premier placement des rectangles sur la bande ; 2. la variante ID(best) de ID Walk, dont le param`etre est r´egl´e automatiquement (cf.

sec-tion 4.3.1), r´epare cette premi`ere solution.

Sur ce probl`eme, ID(best), ID Walk (`a deux param`etres) et la m´ethode taboue implant´ees dans INCOP produisaient `a peu pr`es les mˆemes r´esultats, sensiblement devant le recuit simul´e.

ID(best) a ´et´e choisie pour sa simplicit´e et la facilit´e `a r´egler automatiquement son unique param`etre.

Nous avions conscience que, de mani`ere g´en´erale, la mise en œuvre d’un mouvement ´etait une

´

etape atomique clef dans les algorithmes de recherche locale. Or, l’efficacit´e d’un mouvement repose directement sur l’incr´ementalit´e de la mise `a jour des structures de donn´ees utilis´ees pour

4.3. Recherche locale 91 stocker la configuration courante. C’est pourquoi un important effort a ´et´e fourni pour trouver un mouvement incr´emental. Notre premi`ere id´ee a ´et´e de chercher un mouvement prenant en compte la g´eom´etrie 2D du probl`eme (contrairement `a d’autres approches plus na¨ıves). Cela a produit le mouvement illustr´e `a la figure 4.1.

Fig. 4.1 – Un mouvement de notre algorithme incomplet.

Un rectangle R en haut du placement est enlev´e et replac´e au milieu du placement (figure de gauche). Les rectangles qui intersectent alors R `a sa nouvelle position sont enlev´es (figure du milieu) et replac´es sur la bande avec une heuristique gloutonne (figure de droite).

Il faut comprendre que la plupart des algorithmes de placement de rectangles, complets comme incomplets d’ailleurs, maintiennent une propri´et´e dite Bas-Gauche(BG ; en anglais : Bottom-left) au cours de la recherche, c’est-`a-dire un placement o`u les segments bas et gauche de chaque rectangle touchent le conteneur ou un autre rectangle. La propri´et´e BG limite l’explosion com-binatoire en limitant le nombre de positions possibles pour les rectangles `a placer. On peut en fait montrer que toute solution peut se transformer en une solution BG (de coˆut meilleur ou ´equivalent) en appliquant une simple proc´edure de compactage. Maintenir la propri´et´e BG est simple lors d’un ajout de rectangle, mais s’av`ere plus compliqu´e lors d’un retrait qui peut impacter toute la solution courante.

La principale contribution de notre travail a ´et´e de proposer une approche alternative qui ne respecte pasla propri´et´e BG au cours des mouvements, mais qui maintient plutˆot l’ensemble des trous maximaux, c’est-`a-dire l’ensemble des zones rectangulaires maximales (au sens ensembliste) o`u l’on va pouvoir placer un rectangle. Le nombre total de trous maximaux est en O(n2), o`un est le nombre de rectangles plac´es dans le conteneur. Ce nombre est lin´eaire en pratique comme l’ont montr´e nos exp´erimentations. Les op´erations d’ajout et de retrait de rectangles deviennent alors incr´ementales, ce qui nous a permis de rendre efficace la mise en œuvre du mouvement illustr´e `a la figure 4.1. Notons que cette structure astucieuse est utilisable par tout algorithme de placement de rectangles.

Plus r´ecemment, nous avons am´elior´e notre algorithme en appelant occasionnellement une proc´edure de compactage (d’int´erˆet sensible mais non crucial) et surtout en employant un nou-vel algorithme glouton pour le calcul de la solution initiale comme pour le replacement des rectangles au cours d’un mouvement.

Cet algorithme, appel´eRandomized Best Fit, (RBF) est une variante aussi triviale qu’efficace de la tr`es reconnue heuristique gloutonneBest Fit decreasing. Plutˆot que de d´ecrire formellement ces deux heuristiques, donnons-en une id´ee (un peu simplificatrice) en 3D sur le probl`eme plus connu durangement des valises dans un coffre d’une voiture avant un d´epart en vacances(probl`eme tr`es reconnu par la communaut´e des hommes martyris´es par leur femme) ! L’heuristique classique Best Fitest param´etr´ee par un crit`ere de “taille” pour classer l’ensemble des valises, par exemple le volume ou la hauteur. En partant d’un coin pr´ed´efini du coffre, elle pr´econise de remplir it´erativement l’emplacement “le plus pr`es” du coin avec la premi`ere valise qui peut y rentrer, par ordre de taille d´ecroissante. Quand plusieurs crit`eres de taille semblent donner de bons r´esultats pour une instance donn´ee, une approche courante est de lancerBest Fitsur des essais avec les diff´erents crit`eres, ce qui offre une plus grande diversit´e des solutions. N´eanmoins, pour un essai donn´e, tous les objets sont plac´es avecle mˆeme crit`ere.

Contrairement `a Best Fit, un essai de l’heuristique RBF utilise plusieurs crit`eres de taille. Le crit`ere est simplement pioch´e al´eatoirement `a chaque nouvelle valise plac´ee : le mari demande `a sa femme de tirer `a pile ou face entreplus hauteetplus volumineuse pour savoir sur quel crit`ere il choisira la prochaine valise `a placer.

Au final, notre algorithme de placement sans param`etre utilisateur est bas´e sur ID Walk, un mouvement tr`es ´etudi´e et l’heuristique gloutonne RBF. Sur de nombreuses instances test´ees, il est tr`es comp´etitif avec les meilleures approches incompl`etes connues. Notre approche est tr`es g´en´erale et pourrait ˆetre encore am´elior´ee en trouvant une heuristique gloutonne encore plus efficace (quitte `a investir plus d’effort). Une piste est ´evoqu´ee dans un des articles en annexe.

4.3.3 Bilan sur les m´ethodes incompl`etes d’optimisation combinatoire

Nos diff´erents travaux de recherche sur les m´ethodes incompl`etes d’optimisation combinatoire nous ont donn´e un sentiment sur quelques types d’approches assez diff´erentes : la recherche locale, GRASP, les algorithmes g´en´etiques/´evolutionnaires, GWW. Nous avons obtenu de nom-breux r´esultats positifs avec la recherche locale et ses m´ecanismes d’intensification et de diver-sification (parfois avec red´emarrage). Quand des heuristiques gloutonnes efficaces sont connues pour un probl`eme donn´e (comme les probl`emes de placement de rectangles ou l’ordonnancement de voitures), les m´ethodes de type GRASP (greedy randomized adaptive search procedure) me semblent aussi tr`es pertinentes [82].