La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Parallel Cooperative Optimization Research Group

Présentations similaires


Présentation au sujet: "Parallel Cooperative Optimization Research Group"— Transcription de la présentation:

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

2 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

3 La dominance Pareto Solution Pareto Solution dominée T Cmax But : Trouver un ensemble Pareto de bonne qualité en termes de convergence et de diversité

4 Représentation des individus
Séquencement des jobs sur une machine M1 M2 M3

5 Opérateur de croisement
Croisement 2 points Point 1 Point 2 Parent 1 Parent 2 Enfant

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

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

8 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

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

10 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

11 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

12 Indicateur epsilon I (A,B) ε+ I (B,A) ε+

13 Méthode de sélection multi-objectif

14 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 */

15 Pour commencer... cd ~/TP_MOEO/flow-shop/
Fichier principal : FlowShopEA.cpp *.h : fichiers des composants benchmarks/* : jeux de données

16 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 */

17 É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

18 Évaluation des objectifs (2)
Fonctions d'évaluation FlowShopEval.h : dans le constructeur : // nombre d'objectifs unsigned nObjs = 2; // minimiser les 2 objectifs vector<bool> bObjs(nObjs, false); // positionner les variables eoVariableParetoTraits::setUp (nObjs, bObjs);

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

20 Tester make Renommer le fichier FlowShopEA.status en FlowShopEA.param
./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

21 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 */

22 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);

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

24 Archive PO* (3) Élitisme Sharing
// créer le mode de sélection (random, roulette, ...) eoRandomSelect<FlowShop> select; // ajouter eoSelectNumberFromPopAndArch<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 Sharing eoParetoSharing<FlowShop> sharing(NICHE_SIZE, DISTANCE); NICHE_SIZE = taille de la niche DISTANCE = distance euclidienne

25 Manipulations But : Étapes :
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 ()

26 Comment évaluer ces résultats ?

27 a Graphical User Interface for Multi Objective Optimization
GUIMOO a Graphical User Interface for Multi Objective Optimization

28 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

29 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)

30 Les écrans (2) La liste des fronts Pareto :
Sélection de 1 ou plusieurs fronts (touche CTRL maintenue)

31 Les écrans (3) Le contenu des fichiers

32 Les métriques Mise à disposition de différents types de métriques

33 Génération de rapports
Les formats d’exportation

34 Exemple de visualisation 2D

35 Exemple de visualisation 3D

36 Manipulations But : Étapes :
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


Télécharger ppt "Parallel Cooperative Optimization Research Group"

Présentations similaires


Annonces Google