1 / 36

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

Laboratoire d’Informatique Fondamentale de Lille. Parallel Cooperative Optimization Research Group. TP sur MOEO (Optimisation Multi-Objectif) pour l’ordonnancement flow-shop bi-critère. M 1. M 2. M 3. Cmax. Le flow-shop multi-objectif. N jobs à ordonnancer sur M machines

tangia
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. M1 M2 M3 Cmax 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 _ T

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

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

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

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

  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. I (A,B) ε+ I (B,A) ε+ Indicateur epsilon

  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 • ./FlowShopEA -B=benchmarks/020_05_01.txt • Renommer le fichierFlowShopEA.statusenFlowShopEA.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 // 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 : • 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. 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 http://guimoo.gforge.inria.fr/

  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 : • 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

More Related