Algorithmes à population
Transcription
Algorithmes à population
Optimisation Combinatoire (Méthodes approchées) VI. Algorithmes à Population (Les bases) Algorithmes à Population ● Idée principale ● 'Amélioration' d'un ensemble de solutions ● Recombiner des solutions ● Orienté exploration Algorithme à Population Population Initiale ● Initialisation ● Random ● Heuristique ● Hybrides Condition d'arrêt ● ● Statique ● CPU ● Nombre d'itérations ● Nombre d'évaluations Adaptative ● Nombre d'itérations sans amélioration ● Une certaine qualité atteinte Algorithmes évolutionnaires (EA) ● ● ● Les années 60 ! Inspirés par le méchanisme d'évolution d'une population dans un environnement Méchanisme d'évolution ● Opérateurs de variations pour la diversité – ● Mutation, Croisement Opérateurs de sélection et de remplacement pour diminuer la diversité → intensification EAs – les bases EAs – template EAs – Les bases ● Sélection ● ● Reproduction ● ● Quels parents choisir ? Quels opérateurs utiliser ? Comment générer des nouveaux individus → Offsprings ? Remplacement ● Comment modifier la population courante en fonction des enfants (offspring) EAs- Sélection ● Règle de base ● ● ● Plus un individu est meilleur, plus il a de chance d'être parent Intensification de la population Les individus de moins bonne qualité ne devraient pas être éliminés ● Ces individus peuvent porter des gênes utiles ● Diversification EAs – Sélection ● Roulette Wheel ● Stochastic Universal Sampling EAs – Sélection ● Les individus sont triés selon leurs fitness ● ● On déterminie alors leurs rangs On sélectionne les individus selon leurs rangs au lieu d'utiliser leurs fitness ● Biaiser les individus qui ont des fitness très bonnes par rapports aux autres individus EAs – Sélection ● Tournoi ● Taille du tournoi (typiquement =2) EAs – Opérateurs de variations/reproduction ● Crossover ● ● ● Hérédité : un individu hérite du matériel génétique de ses parents Validité : produire des solutions valides Mutation ● ● Ergodicité : toute solution est atteignable Localité : même idée que les opérateurs de voisinages EAs – N-point crossover ● Discrete representation ● Valeurs réelles EAs – Order based crossover ● ● Choisir une partie du premier parent et la copier dans le offspring Copier les gênes manquants du deuxième parent ● Quel premier parent utiliser ? ● Quel ordre lors de la copie ? EAs – order based crossover EAs – Mutation ● ● On peut avoir plusieurs opérateurs de mutations Au moins un opérateur de mutation doit pouvoir nous amener vers toutes solutions ● ● La taille de la mutation est importante ● ● Ergodicité Intensification Vs Diversification La mutation est souvent contrôlée par une probabilité → fréquence de mutation (e.g. une génération sur 10) ● Toutes la population/offspring ou non ? EAs – Mutation ● ● Exemple : représentation discrète ● Changer la valeur d'une variable ● Choisir aléatoirement deux variables et les swaper ! Perturber certaines valeurs en ajoutant du bruit de façon aléatoire (e.g., selon une gaussienne) EAs – Remplacement ● ● ● Générationnel ● Le remplacement concerne toute la population ● Les offsprings remplacent la population entière Steady state ● À chaque génération, un seul offspring est généré ● Il remplace par exemple le moins bon dans la population (mu,lambda) algorithms ● Stochastique Vs Déterministes ● Élitisme, e.g., on garde toujours le(s) meilleurs individus Algorithmes Mémétiques ● ● Les algorithmes génétiques de base peuvent souffrir d'un manque d'intensification Idée générale pour remédier à cela: ● ● Ajouter un méchamisme de réparation après les étapes d'initialisation, de reproduction (crossover, mutation) Une recherche locale (une heuristique à solution unique ! ) → Memetic Algorithms (MA) MA – template de base ● Des variantes peuvent exister selon où et quand le méchanisme de réparation est appliqué ! Déterminer une population initiale P ; Réparer P (en utilisant une recherche locale) ; RÉPETER /* Reproduction */ ● Générer un ensemble P de nouveaux individus par crossover ; c ● Réparer P (en utilisant une recherche locale) ; c ● ● /* Mutation */ Générer un ensemble Pm de mouveaux individus par mutation ; Réparer Pm (en utilisant une recherche locale) ; /* Remplacement */ ● Créer une nouvelle population à partir de P, P et P ; c m JUSQU'À Condition d'arrêt ; Exemple d'algo génétique – SMTWTP ● ● Population initiale : ● Taille N ● Random + heuristiques (EDD, MDD, etc) Crossover ● Position-based ● On choisit k positions distinctes au hasard, e.g. k=N/2 ● ● On copie les jobs (d'un parent) aux k positions et on remplit le reste avec les jobs manquant de l'autre parent (dans l'ordre de leur apparition) On crée N nouveaux individus (pas de remplacement encore) GA – SMTWTP ● Mutation ● ● ● ● ● Swap On choisit aléatoirement deux positions et on les échange On mute M individus choisit aléatoirement, e.g., M=p.N : une fraction p de la population On a M nouveaux individus Remplacement ● Élitiste ● On garde les meilleurs individus GA – SMTWTP P ← population initiale ; G ← nombre maximal de génération ; Pour g=1 à G faire Pc ← vide ; Pour i=1 à N/2 faire Choisir deux parents p et p' distincts de façon aléatoire uniforme dans P ; (o,o') ← CROSSOVER(p,p'); Ajouter o et o' à Pc; Fin Pour; Pm ← vide ; Pour i=1 à M Faire Choisir un parent p de façon uniforme aléatoire dans P ; m ← MUTATION(p); Ajouter m à Pm; Fin Pour; Mettre à jour P en retenant les meileurs individus de P, Pc et Pm; Fin Pour; Exemple d'algo mémétique – SMTWTP ● Crossover (order based) ● ● On copie un fragment du premier parent, et on remplit le reste avec les jobs manquant dans l'ordre de leur apparition dans le second parent On génère crate . M nouveaux individus – ● ● Mutation crate : crossover rate; M : taille de la population ● Swap ● On applique la mutation avec une probabilité pmut Local Search ● e.g., hill-climbing avec voisinage Insertion (ou swap) MA – SMTWTP P ← population initiale de taille M ; RÉPÉTER Po ← vide ; Pour i = 1 à crate . M Faire (p,p') ← Selectionner deux parents ; o ← CROSSOVER(p,p') ; SI Rnd(0,1) < pmut Alors o ← MUTATION(o) ; Fin Si ; o ← LocalSearch(o) ; Ajouter o à Po ; Fin Pour ; P ← REMPLACEMENT(P, Po) ; JUSQU'À condition d'arrêt ; Travaux Pratiques ● Implémenter un algorithme génétique pour le SMTWTP ● Observer/analyser les performances obtenues en fonction des : – – différents paramêtres (taille de la population, etc) différentes stratégies ● ● ● ● Sélection des parents Méchanisme de remplacement Etc Même chose en utilisant un algorithme Mémétique !