Introduction. GEAL Bibliothèque Java pour écrire des algorithmes évolutionnaires. Objectifs. Simplicité Evolution et coévolution Parallélisme



Similar documents
Langages Orientés Objet Java

Licence Informatique Année Exceptions

Optimizing and interfacing with Cython. Konrad HINSEN Centre de Biophysique Moléculaire (Orléans) and Synchrotron Soleil (St Aubin)

Introduction au BIM. ESEB Seyssinet-Pariset Economie de la construction contact@eseb.fr

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2010 AUDIT OF COMPRESSED WORK WEEK AGREEMENTS 2012 SUIVI DE LA

Remote Method Invocation

Thursday, February 7, DOM via PHP

RAPPORT FINANCIER ANNUEL PORTANT SUR LES COMPTES 2014

«Object-Oriented Multi-Methods in Cecil» Craig Chambers (Cours IFT6310, H08)

Introduction ToIP/Asterisk Quelques applications Trixbox/FOP Autres distributions Conclusion. Asterisk et la ToIP. Projet tuteuré

Brief description of the paper/report. Identification

Memory Eye SSTIC Yoann Guillot. Sogeti / ESEC R&D yoann.guillot(at)sogeti.com

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE DISPOSAL OF PAVEMENT LINE MARKER EQUIPMENT 2009

Reconstruction d un modèle géométrique à partir d un maillage 3D issu d un scanner surfacique

Méthodes ensemblistes pour une localisation robuste de robots sous-marins

Advanced Software Engineering Agile Software Engineering. Version 1.0

Les fragments. Programmation Mobile Android Master CCI. Une application avec deux fragments. Premier layout : le formulaire

Troncatures dans les modèles linéaires simples et à effets mixtes sous R


Qu est-ce que le Cloud? Quels sont ses points forts? Pourquoi l'adopter? Hugues De Pra Data Center Lead Cisco Belgium & Luxemburg

Sun Management Center Change Manager Release Notes

POB-JAVA Documentation

TP : Système de messagerie - Fichiers properties - PrepareStatement

ACP-EU Cooperation Programme in Science and Technology (S&T II) / Programme de Coopération ACP-UE pour la Science et la Technologie

site et appel d'offres

direction participative / gestion participative / gestion participative par objectifs / «management» participatif

Note concernant votre accord de souscription au service «Trusted Certificate Service» (TCS)

Office of the Auditor General / Bureau du vérificateur général FOLLOW-UP TO THE 2007 AUDIT OF THE ENVIRONMENTAL COMMITMENTS IN THE OTTAWA 20/20

REQUEST FORM FORMULAIRE DE REQUÊTE

Holinger AG / Holinger Group Facts and Figures Holinger SA / Groupe Holinger Faits et chiffres 2011

REQUEST FORM FORMULAIRE DE REQUÊTE

Machine de Soufflage defibre

Veritas Storage Foundation 5.0 Software for SPARC

Operation Structure (OS)

TP N 10 : Gestion des fichiers Langage JAVA

Etudes de cas en OCL avec l outil USE 2

Audit de sécurité avec Backtrack 5

TP1 : Correction. Rappels : Stream, Thread et Socket TCP

2012 Syllabus. Vocal Revisions September 2015

Solaris 10 Documentation README

CSS : petits compléments

Future Entreprise. Jean-Dominique Meunier NEM Executive Director Nov. 23, 2009 FIA Stockholm

HEALTH CARE DIRECTIVES ACT

Applying this template to your existing presentation

Regulatory Compliance Statement

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM 2016 APPLICATION FORM

Modifier le texte d'un élément d'un feuillet, en le spécifiant par son numéro d'index:

Interfaces de programmation pour les composants de la solution LiveCycle ES (juillet 2008)

ESMA REGISTERS OJ/26/06/2012-PROC/2012/004. Questions/ Answers

Sun StorEdge A5000 Installation Guide

REQUEST FORM FORMULAIRE DE REQUETE

Another way to look at the Project Une autre manière de regarder le projet. Montpellier 23 juin - 4 juillet 2008 Gourlot J.-P.

STAGE YOGA & RANDONNEES à MADERE

Les Broadcast Receivers...

niveau : 1 ere année spécialité : mécatronique & froid et climatisation AU : Programmation C Travaux pratiques

Monitoring Open Source pour Java avec JmxTrans, Graphite et Nagios

GRADUATION REQUIREMENTS 9.1 Graduation Requirements

TP : Configuration de routeurs CISCO

Sun Enterprise Optional Power Sequencer Installation Guide

Account Manager H/F - CDI - France

Classification automatique d images par arbres de décision

Calcul parallèle avec R

PIXEL-PLANES: A VLSI-ORIENTED DESIGN FOR 3-D RASTER GRAPHICS. H. Fuchs and J. Pou1ton. University of North Carolina at Chapel Hill

CB Test Certificates

N1 Grid Service Provisioning System 5.0 User s Guide for the Linux Plug-In

General Certificate of Education Advanced Level Examination June 2012

MD. ALI KHAN. and THE MINISTER OF CITIZENSHIP AND IMMIGRATION REASONS FOR ORDER AND ORDER

Technical Service Bulletin

The Register of the Domain of the State A Revolution in the Registration of Land Rights

Join the Bilingual Revolution today! French-English Dual Language Programs. In New York City Public Schools

Contracts over $10,000: 1 April 2013 to 30 September 2013 Contrats de plus de $ : 1er avril 2013 au 30 septembre 2013

STUDENT APPLICATION FORM (Dossier d Inscription) ACADEMIC YEAR (Année Scolaire )

Sun StorEdge RAID Manager Release Notes

Hours: The hours for the class are divided between practicum and in-class activities. The dates and hours are as follows:

Thailand Business visa Application for citizens of Hong Kong living in Manitoba

Upgrading the Solaris PC NetLink Software

AgroMarketDay. Research Application Summary pp: Abstract

CERN EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH

VIREMENTS BANCAIRES INTERNATIONAUX

Enterprise Informa/on Modeling: An Integrated Way to Track and Measure Asset Performance

Sun Management Center 3.6 Version 5 Add-On Software Release Notes

Product / Produit Description Duration /Days Total / Total

Post-Secondary Opportunities For Student-Athletes / Opportunités post-secondaire pour les étudiantathlètes

In-Home Caregivers Teleconference with Canadian Bar Association September 17, 2015

Page intentionally left blank

NUNAVUT HOUSING CORPORATION - BOARD MEMBER RECRUITMENT

Short Form Description / Sommaire: Carrying on a prescribed activity without or contrary to a licence

Fondation Rennes 1. Atelier de l innovation. Fondation Rennes 1. Fondation Rennes 1 MANAGEMENT AGILE. Fondation Rennes 1 ET INNOVATION

State of Maryland Health Insurance Exchange

System Requirements Orion

Guidance on Extended Producer Responsibility (EPR) Analysis of EPR schemes in the EU and development of guiding principles for their functioning

Transcription:

GEAL 1.2 Generic Evolutionary Algorithm Library http://dpt-info.u-strasbg.fr/~blansche/fr/geal.html 1 /38

Introduction GEAL Bibliothèque Java pour écrire des algorithmes évolutionnaires Objectifs Généricité Simplicité Evolution et coévolution Parallélisme 2 /38

Fonctionalités Algorithmes génétiques, Évolution différentielle et Optimisation par essaims particulaires Évolution classique ou coévolution coopérative Évolution darwinienne, lamarckienne et baldwinienne Optimisation multi-objectif (combinaison de critères, approche Pareto) Parallélisme (threads, P2P-MPI) Interactivité 3 /38

Les bases Classes principales Génotype, Phénotype, Solution Évaluation Options La reproduction Génotypes prédéfinis ReproductionFactory et ReproductionManager Le reste Conditions d arrêts Observation de l évolution Modification de l environnement Apprentissage hybride Algorithmes simples Diagramme UML (presque) complet La suite 4 /38

Classes principales 5 /38

Classes principales Classes principales EvolutionEngine EvolutionaryAlgorithm : algorithme évolutionnaire CoevolutionaryAlgorithm : coévolution coopérative Classes abstraites Méthode Object [] evolve () : exécute l algorithme et renvoie les meilleures solutions GealConstants Contient toutes les constantes utiles 6 /38

Génotype, Phénotype, Solution Génotype et phénotype Genotype et Phenotype Interfaces Genotype : représentation d une solution pour la reproduction Phenotype : représentation d une solution pour l évaluation Une méthode : boolean equals (Object object) Une classe peut implanter les deux 7 /38

Génotype, Phénotype, Solution Du génotype au phénotype EvolutionaryAlgorithm Phenotype getphenotype (Genotype genotype) : transforme un génotype en un phénotype Par défaut : renvoie le génotype (cast) Phenotype [] getphenotypes (Genotype genotype) : plusieurs phénotypes pour une génotype 8 /38

Génotype, Phénotype, Solution Du génotype au phénotype CoevolutionaryAlgorithm Phenotype getphenotype (Genotype genotype, int populationindex) : transforme un génotype en un phénotype d une population Par défaut : renvoie le génotype (cast) Phenotype [] getphenotypes (Genotype genotype, int populationindex) : plusieurs phénotypes pour une génotype 8 /38

Génotype, Phénotype, Solution Du phenotype à la solution EvolutionaryAlgorithm Object getsolution (Phenotype phenotype) : transforme un phénotype en une solution Par défaut : renvoie le phénotype CoevolutionaryAlgorithm Object getsolution (Phenotype [] phenotypes) : transforme un ensemble de phénotypes en une solution Pas d implantation par défaut 9 /38

Évaluation Gestion de l optimisation Sens de l optimisation (constantes entières) GealConstants.OPTIMIZATION_MIN GealConstants.OPTIMIZATION_MAX 10 /38

Évaluation Gestion de l optimisation Sens de l optimisation void setsinglefitnessevaluation (int optimization) : un seul critère d évaluation void setmeanfitnessevaluation (int optimization, int nbcriteria) : valeur moyenne des évaluations void setweightedmeanfitnessevaluation (int optimization, double... weights) : moyenne pondérée void setproductfitnessevaluation (int nbcriteria) : produit des évaluations void setparetofitnessevaluation (int... optimizations) : approche multi-objectif 10 /38

Évaluation Évaluation d une solution EvolutionaryAlgorithm abstract double [] evaluate (Phenotype phenotype) : évaluation d un phénotype CoevolutionaryAlgorithm abstract double [] evaluate (Phenotype [] phenotypes) : évaluation d un ensemble de phénotypes Pour simplifier double [] createfitness (double... fitness) : facilite l écriture 11 /38

Options Options de l algorithme void setnbindividuals (int nbindividuals) : 100 par défaut void setparallelization (int type, int nbprocessus) : GealConstants.PARALLELIZATION_THREADS ou GealConstants.PARALLELIZATION_P2PMPI void setnbpopulations (int nbpopulations) : coévolution coopérative 12 /38

Génotypes prédéfinis 13 /38

Génotypes prédéfinis Génotypes prédéfinis Vector Tableau de réels Order Permutation (liste d entier dans un ordre aléatoire) Trees Arbres représentant des opérations mathématiques (programmation génétique) 14 /38

Génotypes prédéfinis Vector setvectorreproduction (int type, int nbdimensions) : évolution ou coévolution (toutes les populations) setvectorreproduction (int type, int nbdimensions, int populationindex) : coévolution GealConstants.GENOTYPE_VECTOR_GENETIC_ROULETTE_WHEEL GealConstants.GENOTYPE_VECTOR_GENETIC_TOURNAMENT GealConstants.GENOTYPE_VECTOR_DIFFERENTIAL GealConstants.GENOTYPE_VECTOR_PSO 15 /38

Génotypes prédéfinis Order void setorderreproduction (int type, int size) : évolution ou coévolution (toutes les populations) void setorderreproduction (int type, int size, int populationindex) : coévolution GealConstants.GENOTYPE_ORDER_GENETIC_ROULETTE_WHEEL GealConstants.GENOTYPE_ORDER_GENETIC_TOURNAMENT 16 /38

Génotypes prédéfinis Trees void settreesreproduction (int type, int inputsize, int nbtrees, int depth) : évolution ou coévolution (toutes les populations) void settreesreproduction (int type, int inputsize, int nbtrees, int depth, int populationindex) : coévolution GealConstants.GENOTYPE_TREES_GENETIC_ROULETTE_WHEEL GealConstants.GENOTYPE_TREES_GENETIC_TOURNAMENT inputsize : nombre de variables d entrée nbtrees : nombre d arbres (variables de sortie) depth : profondeur des arbres aléatoires 17 /38

ReproductionFactory et ReproductionManager 18 /38

ReproductionFactory et ReproductionManager Génotype spécifique ReproductionManager Classes abstraites de génération de génotypes Opérations en rapport avec la méthode : GeneticReproductionManager DifferentialReproductionManager PsoReproductionManager ReproductionFactory Une méthode : ReproductionManager getreproductionmanagerinstance () 19 /38

ReproductionFactory et ReproductionManager Exemple : reproduction génétique GeneticReproductionManager abstract Genotype newgenotype () abstract Genotype crossover (Genotype parent1, Genotype parent2) abstract Genotype mutation (Genotype genotype) 20 /38

ReproductionFactory et ReproductionManager Configuration void setreproduction (ReproductionFactory reproductionfactory) : évolution ou coévolution (toutes les populations) void setreproduction (ReproductionFactory reproductionfactory, int populationindex) : coévolution void setreproduction (ReproductionFactory [] reproductionfactories) : coévolution 21 /38

Conditions d arrêts 22 /38

Conditions d arrêts Conditions usuelles void setmaxgenerations (int maxgenerations) void setmaxtime (long maxtime) void terminate () : termine à la fin de la génération courante 23 /38

Conditions d arrêts Conditions particulières TerminationCriterion Interface Méthode : boolean terminate (EvolutionEngine evolutionengine) Rajouter une condition d arrêt : void addterminationcriterion (TerminationCriterion terminationcriterion) 24 /38

Observation de l évolution 25 /38

Observation de l évolution Observateur Monitor Interface void view () : appelée à chaque génération par l algorithme void print (String string) : appelée régulièrement par l algorithme pour afficher l état d avancement Rajouter un observateur : void addmonitor (Monitor monitor) 26 /38

Observation de l évolution Informations accessibles Front de Pareto Object [] getparetosolutions : ensemble des solutions du front de Pareto double [][] getparetofitness () : évaluation de chaque solution de front de Pareto selon chaque critère 27 /38

Modification de l environnement 28 /38

Modification de l environnement Environnement variable Objectifs Modification de la fonction d évaluation au cours du temps (exemple : suivi d un objet dans une vidéeo) Parallélisme : propagation des modifications aux autres processus EnvironmentModification Classe représentant une modification de l environnement Aucune méthode prédéfinie, dépend entièrement du problème 29 /38

Modification de l environnement Propagation et prise en compte d une modification Modifiable Interface L algorithme évolutionnaire doit implanter l interface Méthodes EnvironmentModification createenvironmentmodification () : envoie des modifications void processenvironmentmodification (EnvironmentModification modification) : réception et traitement des modifications 30 /38

Apprentissage hybride 31 /38

Apprentissage hybride Optimization locale EvolutionaryLifeTimeLearning Interface Méthode : Phenotype lifetimelearning (Phenotype phenotype) Définir une méthode d apprentissage locale : void setlifetimelearning (EvolutionaryLifeTimeLearning evolutionarylifetimelearning) 32 /38

Apprentissage hybride Optimization locale CoevolutionaryLifeTimeLearning Interface Méthode : Phenotype [] lifetimelearning (Phenotype [] phenotypes, int populationindex) Définir une méthode d apprentissage locale : void setlifetimelearning (CoevolutionaryLifeTimeLearning coevolutionarylifetimelearning) 32 /38

Apprentissage hybride Apprentissage lamarckien LamarckianLearning Interface Inopérant sans optimization locale Méthode : Genotype lamarckianlearning(phenotype phenotype) Définir une méthode d apprentissage lamarckien : void setlamarckianlearning(lamarckianlearning lamarckianlearning) 33 /38

Algorithmes simples 34 /38

Algorithmes simples Cas simples Caractéristiques du problème Génotype = phenotype = solution = tableau de réels Un unique critère d évaluation à maximiser Algorithme génétique SimpleEvolutionaryAlgorithm Étend EvolutionaryAlgorithm Méthode : abstract double evaluate (double [] array) Exécuter l algorithme et renvoyer la meilleure solution : double [] getsolution () 35 /38

Diagramme UML (presque) complet 36 /38

Statégies de remplacement plus variées pour les algorithmes génétiques Arbres génériques (pas que des formules mathématiques) Modification dynamique du nombre de populations en coévolution coopérative 37 /38

Questions 38 /38