Procedure principale
3.5 Evaluation bi-critere
3.5.4 Notre approche
Maintenant que nous avons expose les rudiments de l'optimisation bicritere et donne quelques exemples d'application, nous exposons ci-apres l'approche que nous proposons pour traiter notre probleme d'ordonnancement.
Nous supposons, dans cette partie, que nous avons a disposition un Oracle per-mettant d'ordonnancer, selon un certain critere de recherche, un ensemble de t^aches sur un ensemble de processeurs non lies avec temps de changement entre les t^aches dependant de la sequence. Les methodes proposees pour traiter ce pro-bleme sont detaillees dans les parties 3.6 et 3.7, mais il est necessaire avant de les exposer, de determiner les besoins d'optimisation.
Ainsi, la premiere question a se poser lors de l'optimisation d'un probleme est celle du critere a optimiser ou, plus generalement, celle de la caracterisation de la solution optimale. Dans notre probleme d'ordonnancement, la denition de la meilleure solution va dependre en quelque sorte du resultat. En eet, si la me-thode utilisee pour la resolution indique que le probleme est realisable, c'est-a-dire qu'il existe un ensemble d'ordonnancements respectant la periode (cet ensemble pouvant ^etre reduit a un seul element), la solution optimale sera celle de moindre co^ut, parmi les elements de cet ensemble. Par contre, si la methode ne met pas en evidence de solution realisable, il n'est pas possible de denir quelle sera la meilleure solution, et nous preferons, dans ce cas, donner un ensemble de solu-tions non dominees par rapport aux deux criteres temps et co^ut. Si deux solusolu-tions sont egales sur les deux criteres et non dominees par aucune autre solution, nous en choisissons arbitrairement une pour faire partie de l'ensemble des solutions optimales. Nous introduisons alors la notion de solution optimale pour notre pro-bleme.
Denition 5
La ou les solutions optimales a notre probleme verient l'une des conditions suivantes :1. Cmax()T et 8 tq Cmax()T; Co^ut() > Co^ut()
2. 8; Cmax() > T et (Co^ut()Co^ut() ou Cmax()Cmax())
Ainsi, l'optimalite des solutions est clairement denie, et la comparaison entre deux solutions 1 et 2 sera faite selon le schema suivant qui nous permet de determiner, parmi un ensemble de solutions candidates, la ou les solutions opti-males telles qu'elles ont ete denies dans la denition 5.
3.5. EVALUATIONBI-CRIT
ERE 91
SiCmax(1)T
alors SiCmax(2)T
alors Si Co^ut(1)Co^ut(2) alors garder 1, rejeter 2
sinon garder 2, rejeter 1
sinon garder 1, rejeter 2
sinon Si Cmax(2)T
alors garder 2, rejeter 1
sinon Si Cmax(1)Cmax(2) alors si Co^ut(1)Co^ut(2)
alors garder 1, rejeter 2
sinon garder 1 et 2
sinon si Co^ut(1)Co^ut(2) alors garder 1 et2
sinon garder 2, rejeter 1
Schema de comparaison entre deux solutions.
Maintenant que nous avons deni ce qu'etaient les solutions optimales de notre probleme, il reste a savoir comment obtenir un ensemble de solutions candidates. Nous avons vu precedemment (paragraphe 3.4.3) qu'il n'etait pas possible de pro-ceder a une enumeration complete de l'ensemble des solutions et que seules des methodes heuristiques sont applicables lorsque la taille du probleme augmente. Les methodes, que nous proposons plus loin, se basent sur un critere, a determi-ner, pour proceder a l'ordonnancement. Il semble important que ce critere, qui va determiner une direction de recherche et dont va dependre les choix dans la construction de la solution, tienne compte des deux aspects temps et co^ut. Ainsi, nous avons choisi de lineariser les deux aspects dans une m^eme fonction objectif [48], construite de la facon suivante:
f = Cmax+ (1,)A (3.16) avec 0 et A representant la somme des co^uts.
A =X
i2JCpm(i)
im +X
j2JCcm(i)
i(j);j (3.17)
ou m(i) est le processeur qui execute i.i(j) est la t^ache precedant j.
Remarque 1
Cette fonction objectif, telle qu'elle est denie ci-dessus deter-mine pour les methodes de construction de l'ordonnancement, une direction derecherche. Ce n'est en aucun cas la fonction d'evaluation des solutions. Cette dis-tinction, entre le critere utilise pour la recherche de solution et la performance des solutions se retrouve dans [13], ou une somme ponderee de sept parametres est utilisee par l'heuristique, alors que la performance des solutions est mesuree selon dix criteres.
Pour la mise en uvre d'une telle fonction objectif, deux problemes se posent: la normalisation des valeurs du temps et du co^ut et la determination du poids . En eet, pour pouvoir comparer deux composantes d'une m^eme fonction objectif, il est important que ces composantes varient selon une m^eme echelle. Pour cela, Belton et Elder [13] proposent d'utiliser dans leur fonction objectif linearisant plusieurs criteres, des valeurs des donnees remise a l'echelle dans un m^eme inter-valle. Pour chacune des types de donnees, ils translatent les intervalles [min;max] en l'intervalle [0;100]. Ainsi, chacun des criteres a un m^eme niveau de priorite. Cette methode est facilement applicable lorsque la fonction objectif est composee d'une combinaison de criteres simples. Or, dans notre probleme, ce n'est pas le cas, puisque le critereA est compose d'une somme de deux donnees: les co^uts de production et les co^uts de changement (voir l'equation 3.17). Or il existe un ratio entre ces deux co^uts, qu'il est indispensable de conserver et qui serait perdu si l'on translatait chacun des deux co^uts dans un m^eme intervalle.
Ainsi, nous avons choisi une autre approche pour normaliser le temps et le co^ut. Nous utilisons les bornes inferieures calculees selon 3.3.1 et 3.3.2 et divisons les temps par la borne inferieure du makespan et les co^uts par la borne inferieure calculee sur les co^uts. Ainsi, interviennent dans la fonction objectif, non pas les valeurs reelles du temps et du co^ut (qui peuvent ^etre d'ordre tres dierent) mais leur importance relative en fonction des bornes, ce qui donne du sens a la com-paraison.
Le second probleme a traiter consiste a determiner les valeurs du coecient , c'est-a-dire de determiner l'importance a donner a chacun des criteres. A priori, il n'est pas possible de savoir s'il faut privilegier l'aspect temporel ou l'aspect -nancier pour obtenir les solutions que nous avons denies comme optimales pour notre probleme (cf denition 5). Ainsi, nous proposons une procedure iterative qui va permettre, en fonction du resultat trouve a l'iteration precedente, de re-ajuster les poids, de facon a se diriger au mieux vers les solutions optimales. Cette procedure fonctionne sur le principe suivant: si la periode semble facile a respec-ter, c'est-a-dire, si a l'iteration precedente, une solution realisable a ete trouvee, il est possible de diminuer l'in uence du temps dans la recherche de solutions et d'augmenter le poids associe aux co^uts (en diminuant). Au contraire, si lors de l'iteration precedente, aucune solution realisable n'est trouvee, il est necessaire d'augmenter de facon a privilegier les aspects temporels dans la recherche de
3.5. EVALUATIONBI-CRIT
ERE 93
solution et esperer de trouver une solution realisable. En fait, cette procedure iterative simule le comportement que pourrait avoir un decideur face aux solu-tions donnees par les dierentes iterasolu-tions. En fonction de la solution trouvee, le decideur choisira d'augmenter (ou de diminuer) l'importance donnee au temps par rapport aux co^uts de facon a se diriger vers ce qu'il pense ^etre la meilleure so-lution. C'est ce que fait cette procedure, en modiant systematiquement le poids en fonction des solutions proposees.
Le schema de la procedure est detaille ci-dessous.
Initialisations
Nbiter = 0.
Executer l'Oracle avec = 0:5.
Aectations
TantqueNbiter < Nmax
Si CmaxT alors = =2. sinon, SiCmax > T alors = (1 + )=2. FinSi FinSi
Executer l'Oracle, sauver la ou les meilleures solutions Nbiter = Nbiter + 1
FinTantque
Schema iteratif modiant les valeurs de
en fonction des ordonnancements obtenus.
ou: Cmax : Duree totale de l'ordonnancement. T : Longueur de la periode.
Nbiter : Nombre d'iterations.
Nmax : Nombre maximal d'iterations.
Dans cette procedure, nous considerons qu'il existe un Oracle permettant d'af-fecter un ensemble de t^aches sur des processeurs paralleles, moyennant un critere de recherche multicritere de la formeTemps + (1,)Co^uts.
Nous proposons de construire cet Oracle, a partir de deux composantes: une heuristique de construction, permettant de creer une premiere solution, et une procedure d'amelioration, permettant, a partir d'echanges locaux, d'ameliorer la qualite de cette premiere solution.
Ces deux composantes sont decrites dans les deux sections suivantes. Pour l'heu-ristique de construction, nous proposons trois methodes dierentes. Pour la proce-dure d'amelioration, nous proposons une proceproce-dure basee sur des echanges locaux et etudions si l'application de cette procedure aux dierentes solutions des heu-ristiques de construction a un comportement dierent. Ainsi, nous recherchons le meilleurcouple, heuristique de construction et procedure d'amelioration, a utiliser pour constituer l'Oracle d'aectation.