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 !