36
TP sur MOEO (Optimisation Multi- Objectif) pour l’ordonnancement flow- shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire d’Informatique Fondamentale de Lille

TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Embed Size (px)

Citation preview

Page 1: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

TP sur MOEO (Optimisation Multi-Objectif) pour l’ordonnancement flow-shop bi-critère

Parallel Cooperative

Optimization Research

Group

Laboratoire d’InformatiqueFondamentale de Lille

Page 2: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Le flow-shop multi-objectif N jobs à ordonnancer sur M machines Flow-shop de permutation Critères à optimiser (minimiser) :

Cmax = Date de fin de l'ordonnancement T = Somme des retards

M1

M2

M3

Cmax_T

Page 3: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

La dominance Pareto

But : Trouver un ensemble Pareto de bonne qualité en termes de convergence et de diversité

Solution ParetoSolution dominée

T

Cmax

Page 4: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Représentation des individus Séquencement des jobs sur une machine

M1

M2

M3

Page 5: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Opérateur de croisement Croisement 2 points

Point 1 Point 2

Enfant

Parent 1

Parent 2

Page 6: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Opérateur de mutation (1) Permutation de 2 points (Shift)

Point 1 Point 2

Page 7: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Opérateur de mutation (2) Échange de 2 points (Exchange)

Page 8: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Méthodes de sélection

Quantifier la qualité des solutions

Méthodes de sélection multi-objectif implémentées dans MOEO: Méthode basée sur le rang Pareto NSGA et NSGA-II IBEA

Page 9: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Méthode basée sur le rang Pareto F(x) = nombre de solutions qui

dominent la solution x

Page 10: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

NSGA et NSGA-II Non-dominated Sorting Genetic Algorithm Solutions classées selon différents fronts

Front 1 : solutions non-dominées

Front 2 : solutions dominées par au moins une solution du front 1

Page 11: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

IBEA Indicator-Based Evolutionary

Algorithm Méthode basée sur un indicateur de

qualité I F(x) : calculée à partir des valeurs de

I({x},{y}) Indicateurs implémentés :

Indicateur epsilon Indicateur HD

Page 12: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Indicateur epsilon

I (A,B)ε+

I (B,A)ε+

Page 13: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Méthode de sélection multi-objectif

Page 14: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Implémentation d’un AE multi-objectif

eoEvalFuncCounter<FlowShop> eval; /* évaluation des objectifs */eoInit<FlowShop> init; /* solutions initiales aléatoires */eoGenOp<FlowShop> op; /* opérateurs de variation */

eoPop<FlowShop> pop; /* population */eoArchive<FlowShop> arch; /* archive PO* */ eoContinue<FlowShop> term; /* critère d'arrêt */eoCheckPoint<FlowShop> checkpoint; /* chaque génération (eval,

term)/eoAlgo<FlowShop> algo; /* définition de l'algorithme */

algo(pop); /* application de l'algo à la pop */

Page 15: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Pour commencer...

cd ~/TP_MOEO/flow-shop/

Fichier principal : FlowShopEA.cpp *.h : fichiers des composants benchmarks/* : jeux de données

Page 16: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Implémentation d’un AE multi-objectif

eoEvalFuncCounter<FlowShop> eval; /* évaluation des objectifs */eoInit<FlowShop> init; /* solutions initiales aléatoires */eoGenOp<FlowShop> op; /* opérateurs de variation */

eoPop<FlowShop> pop; /* population */eoArchive<FlowShop> arch; /* archive PO* */ eoContinue<FlowShop> term; /* critère d'arrêt */eoCheckPoint<FlowShop> checkpoint; /* chaque génération (eval,

term)/eoAlgo<FlowShop> algo; /* définition de l'algorithme */

algo(pop); /* application de l'algo à la pop */

Page 17: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Évaluation des objectifs

Performances d'une solution : FlowShopFitness.h :typedef eoParetoFitness<eoVariableParetoTraits>

FlowShopFitness;

eoParetoFitness : Vecteur (1 dimension <=> 1 objectif)

eoVariableParetoTraits : classe statique qui permet de définir les

paramètres liés aux objectifs Nombre d'objectifs Minimisation / Maximisation

Page 18: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Évaluation des objectifs (2)

Fonctions d'évaluation FlowShopEval.h :dans le constructeur :// nombre d'objectifsunsigned nObjs = 2;// minimiser les 2 objectifsvector<bool> bObjs(nObjs, false);// positionner les variableseoVariableParetoTraits::setUp (nObjs, bObjs);

Page 19: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Évaluation des objectifs (3)

Fonctions d'évaluation FlowShopEval.h :operator(_eo) :// créer un objet de type FlowShopFitnessFlowShopFitness fitness;// calcul des valeurs pour les 2 objectifsfitness[0] = tardiness(_eo);fitness[1] = makespan(_eo);// mise à jour des performances_eo.fitness(fitness);

Page 20: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Tester make ./FlowShopEA -B=benchmarks/020_05_01.txt

Renommer le fichier FlowShopEA.status en FlowShopEA.param

Éditer les paramètres (ne pas oublier de supprimer les « # ») ./FlowShopEA @FlowShopEA.param

Page 21: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Implémentation d’un AE multi-objectif

eoEvalFuncCounter<FlowShop> eval; /* évaluation des objectifs */eoInit<FlowShop> init; /* solutions initiales aléatoires */eoGenOp<FlowShop> op; /* opérateurs de variation */

eoPop<FlowShop> pop; /* population */eoArchive<FlowShop> arch; /* archive PO* */ eoContinue<FlowShop> term; /* critère d'arrêt */eoCheckPoint<FlowShop> checkpoint; /* chaque génération (eval,

term)/eoAlgo<FlowShop> algo; /* définition de l'algorithme */

algo(pop); /* application de l'algo à la pop */

Page 22: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Archive PO*

Mise à jour des solutions non-dominées à chaque génération // créer eoArchiveUpdater<FlowShop> updater(arch); // ajouter checkpoint.add(updater);

Sauvegarde des solutions non-dominées à chaque génération // créer eoArchiveFitSavingUpdater<FlowShop> save_updater('Res/Ar',arch,1); // ajouter checkpoint.add(save_updater);

Page 23: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Archive PO* (2)

Calcul de métriques pour l’évaluation des performances: Contribution (Res/Contribution.txt) Entropie (Res/Entropie.txt)

Page 24: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Archive PO* (3) Élitisme

// créer le mode de sélection (random, roulette, ...)eoRandomSelect<FlowShop> select;// ajoutereoSelectNumberFromPopAndArch<FlowShop>

elitism(eoPerf2Worth, select, arch, S_RATE, S_SIZE); S_RATE = probabilité de sélection pour l'archive S_SIZE = nombre d'enfants à générer

SharingeoParetoSharing<FlowShop> sharing(NICHE_SIZE,

DISTANCE); NICHE_SIZE = taille de la niche DISTANCE = distance euclidienne

Page 25: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Manipulations But :

Sauvegarder les fronts Pareto obtenus par NSGA-II et IBEA sur le jeu de données 020_05_01 pour des paramètres identiques

Étapes : Compiler le projet () Éditer le fichier de paramètres pour NSGA-II () Exécuter et sauvegarder le front obtenu () Modifier le fichier de paramètres pour IBEA () Ré-exécuter et sauvegarder le front obtenu ()

Page 26: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Comment évaluer ces résultats ?

Page 27: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

GUIMOO

a Graphical User Interface for Multi Objective Optimization

Page 28: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Objectifs

Proposer un outil graphique de manipulation de fichiers résultats d'optimisation multi-objectif Visualisation des fronts Calcul de métriques permettant de

comparer la qualité des fronts obtenus Logiciels GPL

http://guimoo.gforge.inria.fr/

Page 29: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Les écrans (1) :L'écran principal

Ajouter un front Pareto au

projet

Visualiser les fronts

Titre du projet

Les objectifs avec indication du type d'optimisation (min/ max)

Page 30: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Les écrans (2)

La liste des fronts Pareto : Sélection de 1 ou

plusieursfronts (touche CTRL maintenue)

Page 31: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Les écrans (3)

Le contenu desfichiers

Page 32: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Les métriques

Mise à disposition de

différents types de métriques

Page 33: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Génération de rapports

Les formats d’exportation

Page 34: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Exemple de visualisation 2D

Page 35: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Exemple de visualisation 3D

Page 36: TP sur MOEO (Optimisation Multi- Objectif) pour lordonnancement flow-shop bi-critère Parallel Cooperative Optimization Research Group Laboratoire dInformatique

Manipulations But :

Comparer des résultats des différentes exécutions

Étapes : Créer votre projet

Nom Objectifs

Ajouter les 2 fronts Pareto obtenus grâce à MOEO sur le flow-shop

Visualiser les fronts en 2D Calculer les métriques Contribution et S-

métrique