• Aucun résultat trouvé

Procedures d'amelioration

Procedure principale

3.7 Procedures d'amelioration

 EDURES D'AM  ELIORATION 109

3.7 Procedures d'amelioration

Les heuristiques presentees precedemment se basent sur un indicateur, constitue d'une combinaison lineaire de deux criteres pour ordonnancer un ensemble de t^aches sur un ensemble de processeurs paralleles. Cet indicateur peut, en fait, representer di erents criteres (temps, co^uts, combinaison temps et co^uts) suivant les besoins de l'utilisateur. Elle sert a donner une direction de recherche a l'heu-ristique, mais ne sert en aucun cas a l'evaluation nale des solutions.

Ces methodes sont heuristiques et leur point fort est leur rapidite. Mais l'incon-venient de l'utilisation de telles methodes est que la qualite de leur solution n'est pas garantie et il est interessant de chercher a ameliorer ces solutions. Pour cela, nous proposons de nous inspirer de methodes d'optimisation locale basees sur des echanges de t^aches (methodes r-opt, par exemple | voir 1.4.3.1 |). La methode proposee est de type descente, car elle se dirige toujours vers une meilleure so-lution et n'autorise jamais la soso-lution a se degrader. Nous avons opte pour ce type de methodes, car elles commencent par descendre tres rapidemment. Bien s^ur, ces methodes restent bloquees dans un optimum local, mais elles permettent, lorsque le temps imparti est court, de trouver de bonnes solutions. Les autres me-thodes de voisinage, plus complexes (recherche tabou, recuit simule, algorithmes genetiques,...) sont plus ecaces pour la recherche de solutions globales, mais de-mandent beaucoup plus de temps, et ne progressent pas tres rapidement au debut. C'est donc l'amelioration rapide qui nous a seduit dans les methodes de descente, puisque dans notre resolution du probleme par le schema iteratif faisant varier , nous allons executer plusieurs fois cette procedure d'amelioration (a partir de solution de depart di erentes).

Kedad et al. [83] distinguent, pour un probleme d'ordonnancement sur machines paralleles semblable, deux types d'amelioration a etudier: les ameliorations reali-sees au sein m^emed'une sequence de t^aches (c'est a dire sur un seul processeur) et les ameliorations entre sequences par echange de t^aches, et propose de les mettre en uvre conjointement dans une procedure hybride. Nous nous sommes inspi-res de cette facon de proceder pour proposer egalement une procedure hybride regroupant di erents types d'amelioration.

Au cours de la recherche, la performance de la solution trouvee est calculee en fonction de la de nition de l'optimalite des solutions (De nition 5). La meilleure solution (ou les meilleures, lorsque la periode n'est pas respectee) est gardee en memoire et mise a jour des qu'une meilleure solution est trouvee.

3.7.1 Ameliorations intra-sequences

Au sein d'une sequence, les gains potentiels se trouvent dans la minimisation des temps et co^uts de changement, puisque tout ce qui est relatif a l'a ectation aux machines (temps et co^uts de production, co^uts de distribution) ne peut ^etre modi e par une modi cation de l'ordre d'execution des t^aches sur la machine. La sequence determinee pour chaque processeur par l'heuristique de construction n'est pas forcement optimale et une simple reorganisation des t^aches sur chaque processeur peut permettre de gagner du temps et de diminuer les co^uts en re-ordonnant mieux les t^aches de facon a diminuer les temps et co^uts relatifs aux changements.

Ce probleme, note 1=Sij=F, avec F la fonction objectif visee a ete tres etudiee dans la litterature. Nous citons, comme reference, la these de Artigues [3] qui expose un etat de l'art complet sur les problemes a une machine avec temps de changement, ainsi qu'un article recent de Williams et Wirth [142] qui s'interessent aux changement independant de la sequence.

Ce probleme, comportant des temps de changement dependants de la sequence, peut egalement ^etre assimile au Probleme du Voyageur de Commerce Asyme-trique [32]. Nous ne reportons pas ici de revue detaillee sur la litterature, tant celle-ci est vaste, mais citons neanmoins l'ouvrage de reference de Lawler et al. [93], l'article de Margot [98] qui propose une structure de donnee permettant d'executer une optimisation de type p-opt en O(logn) pour un probleme a n noeuds, et l'article de Gendreau et al. [55] qui exposent leur methode, combinant une procedure d'insertion et d'optimisation, GENIUS. Leur methode d'insertion s'appuie sur le principe que l'insertion d'une ville dans une tournee ne se fait pas forcement entre deux villes adjacentes. Ils proposent deux types d'insertion. De m^eme, pour l'optimisation, ils procedent a des echanges en enlevant une ville d'un tour et en la reinserant ailleurs en suivant leur principe d'insertion.

Nous proposons d'e ectuer le re-ordonnancement au sein des sequences de deux facons di erentes en fonction du nombre de t^aches composant la sequence. Soit le nombre de t^aches est relativement faible ( 10), nous pouvons alors recour-rir a une methode exacte (PSE: Procedure de Separation et Evaluation), soit le nombre de t^aches est eleve, et nous proposons de proceder a des echanges en deplacant une t^ache d'une place a une autre.

La procedure d'echanges intra-sequence proposee est decrite ci-apres et peut ^etre appliquee a toutes les sequences.

3.7. PROC  EDURES D'AM  ELIORATION 111 SiNbProd < Npse

alors executer une procedure de separation et evaluation sinon

NbIter = 0

Tque NbIter < Nmax

Prendre une t^ache et la placer ailleurs (sur la m^eme sequence) Si amelioration ou solution non dominee

alors garder la solution dans les solutions candidates remplacer la sequence courante par celle trouvee

NbIter = 0

sinon NbIter = NbIter + 1 FinSi

FinTque FinSi

Procedure d'echanges intra-sequences

avec:

NbProd : Nombre de t^aches de la sequence.

Npse : Nombre maximal de t^aches pour lequel on fait une PSE. NbIter : Nombre d'iterations depuis la derniere amelioration. Nmax : Nombre maximal d'iterations autorisees, ne donnant pas

d'ameliorations.

3.7.2 Ameliorations inter-sequences

Les a ectations des t^aches aux processeurs sont determinees par une heuristique de construction qui s'appuie sur un indicateur. De cette a ectation, dependent les temps et co^uts relatifs a la production et les co^uts de la distribution. Pourtant il se peut que des t^aches soient a ectees a de mauvais processeurs. En e ectuant des echanges de t^aches entre processeurs, nous pouvons permettre a des t^aches mal placees d'^etre a ectees a de meilleurs processeurs.

Pour e ectuer ces echanges inter-sequences nous procedons en trois etapes: tout d'abord, selection des deux sequences de t^aches concernees, puis choix du type d'echange et en n determination des positions concernees par l'echange.

Nous proposons de proceder a deux types d'echanges (voir gure 3.9):

Tout d'abord, il est possible d'echanger deux t^aches de deux sequences de pro-cesseurs di erents. Les deux t^aches selectionnees echangent leur place respective. Leurs temps d'execution ainsi que les temps de changement les precedant et les

Echange de deux productions 4 3 1 5 6 2 7 8 9 2 3 4 1 5 6 7 8 9 Processeur B Processeur A Processeur B Processeur A 1 5 2 7 8 9 4 3 2 3 4 1 5 6 7 8 9

Echange de deux fins de séquence

6

Fig. 3.9 - Echanges inter-sequences

succedant varient. Il est ainsi possible d'obtenir un meilleurordonnancement pour l'un des deux processeurs, voire pour les deux.

La deuxieme possibilite d'echange consiste a intervertir les ns de sequences de deux processeurs. De nouveau, les temps d'execution et de changement, ainsi que les co^uts di erent. Ce deuxieme type d'echange a l'avantage de pouvoir faire va-rier le nombre de t^aches par processeur et evite de rester dans un voisinage trop restreint.

La procedure d'echange inter-sequence proposee est la suivante: NbIter = 0

TqueNbIter < MaxIter

Selectionner deux processeurs NbEch = 0

TqueNbEch < MaxEch

Proceder a des echanges des deux types Si amelioration ou solution non dominee

alors considerer la solution comme solution candidate remplacer la solution par la nouvelle

FinSi

NbEch = NbEch + 1 FinTque

NbIter = NbIter + 1 FinTque

3.7. PROC  EDURES D'AM  ELIORATION 113 avec:

NbIter : Compteur du nombre d'iterations (selections). MaxIter : Nombre maximal de selections a faire.

MaxEch : Nombre maximal d'echanges a realiser.

NbEch : Compteur du nombre d'echanges executes a partir du couple selectionne.

3.7.3 Performances de la procedure d'amelioration

Dans cette partie, nous experimentons la procedure d'amelioration appliquee aux solutions construites a l'aide des heuristiques. Cette experimentation a deux objectifs: 1) evaluer l'amelioration apportee par l'application de la procedure d'echanges et le temps optimal de recherche, 2) determiner quel est le meilleur couple heuristique de construction - procedure d'amelioration a utiliser dans notre Oracle.

Ainsi, nous avons applique sur plusieurs types de problemes les heuristiques de contruction couplees a la procedure d'amelioration. La encore, nous avons com-mence par etudier le comportement en environnement monocritere.

Les deux gures suivantes 3.10 et 3.11 representent, pour des problemes a 30 processeurs et 200 t^aches, respectivement, l'evolution de la duree totale de pro-duction de la solution courante dans un contexte de minimisation du Cmax et l'evolution du co^ut de la solution dans un contexte de minimisation des co^uts, en fonction du temps, par l'application de la procedure d'amelioration.

200 300 400 500 600 700 800 0 25 50 75 100 125 Tem ps (s) Cmax BORNE ALEA PRIORITES REGRET CIBLE

Fig. 3.10 - Evolution du Cmax en fonction du temps (application de la procedure d'amelioration)

La premiere remarque que nous inspire ces gures est que tres rapidement la solution converge vers un optimum local. Il appara^t alors inutile d'executer la

70000 80000 90000 100000 110000 120000 130000 140000 150000 160000 0 25 50 75 100 125 Tem ps (s) Couts BORNE ALEA PRIORITES REGRET CIBLE

Fig. 3.11 - Evolution du co^ut de la solution en fonction du temps (application de la procedure d'amelioration)

procedure d'amelioration trop longtemps, puisque au bout d'un momentelle n'ap-porte plus d'amelioration.

La deuxieme remarque est que lorsque la solution de depart est mauvaise (cas de la procedure "Alea", par exemple), la procedure d'amelioration met beaucoup de temps (lorsqu'elle y arrive) pour ameliorer la solution et atteindre la qualite de depart des solutions donnees par les autres heuristiques. Il est donc important, de commencer la procedure d'amelioration avec la meilleure solution possible. En n, la troisieme remarque est que lors de l'amelioration, les solutions des dif-ferentes heuristiques restent dans le m^eme ordre. Ainsi, si la solution donnee par l'heuristique des regrets est meilleure dans le cas de la minimisation de la duree totale de production, elle a de fortes chances d'^etre la meilleureapres l'application de la procedure d'amelioration.

3.7.4 Conclusions pour le choix de l'Oracle

Ces di erentes raisons font qu'il semble opportun de choisir comme point de de-part de la procedure d'amelioration la meilleuresolution fournit par les di erentes heuristiques. Il est alors possible d'executer chacune des heuristiques et de selec-tionner la meilleuresolution, mais commenous allons iterer ce processus plusieurs fois, il est preferable, pour gagner du temps et de la memoire,d'executer une seule des heuristiques. Aux vues des resultats, nous proposons de choisir l'heuristique

"Regrets" lorsque la duree totale de production devient l'aspect a privilegier, et l'heuristique"Cible" lorsque ce sont les co^uts qui doivent ^etre privilegies.