Télécharger la présentation
Publié parGermaine Boisseau Modifié depuis plus de 10 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.