• Aucun résultat trouvé

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 de nition de la meilleure solution va dependre en quelque sorte du resultat. En e et, 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 de nir 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.

De nition 5

La ou les solutions optimales  a notre probleme veri ent 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 de nie, 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 de nies dans la de nition 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 de ni 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 de nie ci-dessus deter-mine pour les methodes de construction de l'ordonnancement, une direction de

recherche. 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 e et, 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 di erent) 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 de nies comme optimales pour notre probleme (cf de nition 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 di erentes 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 modi ant 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.

A ectations

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 modi ant 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 forme Temps + (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 di erentes. 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 di erentes solutions des heu-ristiques de construction a un comportement di erent. Ainsi, nous recherchons le meilleurcouple, heuristique de construction et procedure d'amelioration, a utiliser pour constituer l'Oracle d'a ectation.