Les algorithmes évolutionnistes

Transcription

Les algorithmes évolutionnistes
Les algorithmes évolutionnistes
INF6953
Les algorithmes évolutionnistes (1)
1
Métaheuristiques et algorithmes évolutionnistes
•
Les métaheuristiques recherche locale consistent fondamentalement à faire
évoluer une configuration de référence (configuration courante) – en la
remplaçant itérativement par une nouvelle configuration choisie dans son
voisinage.
•
Il existe une famille de métaheuristiques qui consiste à faire évoluer un
ensemble de solutions (population) : ces techniques sont appelées les
algorithmes évolutionnistes.
INF6953
Les algorithmes évolutionnistes (1)
2
Les algorithmes évolutionnistes
•
•
Les algorithmes évolutionnistes sont déjà anciens et ils sont issus
historiquement de trois «écoles»
les algorithmes génétiques (GA pour Genetic Algorithm)
Les strategies évolutives (ES pour Evolution Strategies)
La programmation évolutive (EP Evolutionary Programming)
Les algorithmes génétiques ont été introduits et étudiés notamment par
Holland et Goldberg. Ils s’inspirent de la théorie de l’évolution des espèces de
Darwin.
INF6953
Les algorithmes évolutionnistes (1)
3
L’inspiration darwinienne
•
-
•
-
Selon la génétique et la théorie de l’évolution
Un enfant hérite son patrimoine génétique pour moitié de sa mère et pour
moitié de son père (reproduction sexuée).
Les enfants ne sont pas identiques aux parents car des altérations des gènes
peuvent se produire (mutations).
Parmi les mutations, certaines peuvent être favorables et d’autres défavorables.
Il naît beaucoup de descendants : mais seuls les individus les mieux adaptés
pourront survivre et transmettre leurs gènes à leur tour à leur descendance.
Dans ce modèle, on observe que
Le hasard joue un rôle moteur pour produire de nouveaux individus différents
de leurs parents.
La sélection naturelle effectue le tri entre les variations favorables et les autres.
INF6953
Les algorithmes évolutionnistes (1)
4
Principe d’un algorithme évolutionniste
•
Les algorithmes génétiques (et les algorithmes évolutionnistes en général)
s’inspirent de la théorie de l’évolution
•
Pour résoudre un problème d’optimisation (avec un espace de recherche et une
fonction d’évaluation), un algorithme génétique fait évoluer itérativement une
population de configurations.
•
-
A chaque itération (génération) :
Des opérateurs de variation (mutation et croisement) permettent
d’engendrer de nouvelles configurations (les enfants) à partir des
configurations de la population courante (les parents).
Les configurations obtenues peuvent être bonnes ou non selon la fonction
d’évaluation. Un opérateur de sélection élimine les configurations les moins
bonnes.
-
INF6953
Les algorithmes évolutionnistes (1)
5
Schéma d’un algorithme évolutionniste
•
Un algorithme évolutionnaire engendre une population initiale P de µ
individus, puis fait évoluer itérativement la population P (générations).
• A chaque génération :
1) Sélection pour la reproduction : on choisit dans la population courante P les
λ individus qui deviendront les parents (mating pool P’).
2) Opérateurs de variation : on applique le croisement et la mutation aux
individus de P’ et on obtient une population P’’ de λ enfants.
3) Évaluation : on évalue la performance des éléments de P’’ (enfants).
4) Sélection pour la survie : on choisit parmi éléments de P (population
courante) et de P’’ (enfants) les µ individus qui constitueront la population P
de la génération suivante.
INF6953
Les algorithmes évolutionnistes (1)
6
Plusieurs types d’algorithmes évolutionnistes
•
Le schéma d’algorithme évolutionnistes peut s’«instancier» de différentes
manières.
•
-
Des cas particuliers sont :
L’algorithme génétique générationnel
L’algorithme génétique stationnaire (steady state)
L’algorithme (µ, λ)-ES (stratégie d’évolution)
L’algorithme (µ + λ)-ES (stratégie d’évolution)
L’algorithme EP (programmation évolutionnaire)
INF6953
Les algorithmes évolutionnistes (1)
7
Évolution de la diversité
•
•
•
La population tend à devenir de plus en plus homogène au cours de la
recherche
On parle de diminution de la diversité (ou perte de la diversité).
Quand la population est constituée d’individus très semblables, la diversité est
épuisée. Il est alors généralement inutile de continuer la recherche.
L’épuisement de la diversité peut constituer un critère d’arrêt de l’algorithme.
Quand la diversité est épuisée et que l’algorithme n’a pas obtenu des solutions
jugées suffisamment bonnes, on parle de convergence prématurée.
INF6953
Les algorithmes évolutionnistes (1)
8
La sélection
•
Le rôle de la sélection consiste à favoriser les individus avec la meilleure
évaluation, soit pour devenir des parents, soit pour être conservés dans la
population.
•
-
Intensité de la sélection
La sélection peut être plus ou moins intense (biais plus ou moins important
accordé au meilleur)
Sélection trop faible : pas de convergence (marche aléatoire)
Sélection trop forte : convergence prématurée
-
INF6953
Les algorithmes évolutionnistes (1)
9
Opérateurs de sélection
•
-
Techniquement, la sélection peut intervertir à deux niveaux :
Lors de la sélection pour la reproduction (étape 1)
Lors du remplacement (étape 4)
•
-
Sélection pour la reproduction
On peut introduire un biais (ou non) pour favoriser les meilleurs individus afin
de devenir des parents (entrer dans P’).
•
-
Sélection pour la remplacement
On peut introduire un biais (ou non) pour favoriser les meilleurs individus de
P’’ (et éventuellement de P) pour survivre (entrer dans la population P de la
génération suivante).
INF6953
Les algorithmes évolutionnistes (1)
10
Sélection et élitisme
•
Un algorithme évolutionniste est dit élitiste s’il garantit la survie du meilleur
individu de la population d’une génération à la suivante.
•
En général, on considère qu’il est préférable de ne pas perdre le meilleur
individu de la population. Au besoin, on peut prendre des mesures spécifiques
pour garantir la survie du ou des meilleurs individus de la population.
INF6953
Les algorithmes évolutionnistes (1)
11
Tirage à la roulette
•
-
Lors du tirage d’un individu à la roulette (roulette biaisée), un individu S est
sélectionné selon une probabilité proportionnelle à S.
La probabilité de choisir l’individu S est donc f(S)/Σj f(Sj)
Si on tire n individus, l’espérance de S d’être choisi est n.f(S)/Σj f(Sj)
•
-
Pression sélective = probabilité de sélection du meilleur / probabilité moyenne
Pression sélective trop forte : le meilleur prend le dessus trop rapidement
Pression sélective trop faible : pas de sélection (marche aléatoire)
•
Inconvénient de la roulette : on contrôle mal la pression sélective qui peut
être élevée ou non, selon les circonstances (variance élevée)
Il est possible que seuls des individus de mauvais qualité soient sélectionnés
Un individu de très bonne qualité peut être sélectionné au détriment des autres
-
INF6953
Les algorithmes évolutionnistes (1)
12
Tirage à la roulette : variantes
•
-
Reste stochastique
Sélection déterministe sur la partie entière
Un individu S est sélectionné E ( n.f(S) / Σj f(Sj) ) fois
Puis roulette sur le reste
Effet : cela réduit la variance
•
-
Troncation
Sélection à la roulette parmi les k meilleurs
Effet : cela augmente la pression sélective
INF6953
Les algorithmes évolutionnistes (1)
13
Tirage à la roulette : mise à l’échelle
•
-
L’idée
Transformer f de manière linéaire
g=αf+β
•
-
Technique
Régler α et β pour que la pression sélective égale une valeur fixée (et tronquer
les valeurs négatives).
INF6953
Les algorithmes évolutionnistes (1)
14
La sélection selon le rang (ranking)
•
-
Ranking
Sélection des individus selon leur rang
Par exemple, g(ième) = n – i
Remarque : la valeur exacte de f n’est pas prise en compte
•
-
Remarque
Les techniques de sélection par tournoi (présentées plus loin) sont également
des techniques basées sur le rang.
INF6953
Les algorithmes évolutionnistes (1)
15
Le tournoi
•
-
Tournoi déterministe binaire
Choix uniforme de 2 individus, puis choix du meilleur de l’échantillon
•
-
Tournoi déterministe
Paramètre : taille k du tournoi (k entier >=2)
Choix uniforme de k individus, puis choix du meilleur de l’échantillon
Effet : quand k > 2, pression sélective plus forte que le tournoi binaire
•
-
Tournoi binaire stochastique
Paramètre : taux t compris entre 0.5 et 1
Choix de deux individus, puis choix du meilleur avec une probabilité t
Effet : quand t < 1, pression sélective plus faible que le tournoi binaire déterm.
INF6953
Les algorithmes évolutionnistes (1)
16
Algorithme génétique générationnel
•
Un cas particulier d’algorithme évolutionniste est l’algorithme génétique
générationnel.
•
-
Dans l’AG générationnel
la sélection pour la reproduction (étape 1) s’effectue par échantillonnage
stochastique (roulette biaisée ou tournoi).
Lors d’une génération, on produit µ enfants (λ=µ).
Les µ enfants constituent la nouvelle population (étape 4).
-
INF6953
Les algorithmes évolutionnistes (1)
17
AG générationnel
•
•
•
•
•
•
// Construction de la population initiale
P := {}
Pour i = 1 à n faire
- Construire aléatoirement un individu S
- Ajouter S à P
Évaluer les individus de la population
// Boucle des générations
Répéter
•
•
<effectuer une génération pour produire une nouvelle population P>
Jusqu’à <critère de fin>
Renvoyer le meilleur individu trouvé
INF6953
// population de taille n
Les algorithmes évolutionnistes (1)
18
AG générationnel : une génération
// Étape 1 : Choix des parents : ensemble P’ (mating pool)
- P’:={}
- Répéter n fois
- Sélectionner S dans P (par roulette ou tournoi)
- Ajouter S à P’
INF6953
Les algorithmes évolutionnistes (1)
19
AG générationnel : une génération
// Étape 2 : production des enfants (P’’)
- P’’:={}
- Répéter n/2 fois
- Choisir aléatoirement P1 et P2 dans P’ et retirer P1 et P2 de P’
- Selon une probabilité p,
- croiser S1 et S2 pour obtenir O1 et O2
- Sinon O1:= P1 et O2 :=P2
- Muter O1 et O2
- Ajouter O1 et O2 à P’’
INF6953
Les algorithmes évolutionnistes (1)
20
AG générationnel : une génération
// Étape 3 : évaluation des enfants
- Pour tout individu S de P’’ faire
- Évaluer S
// Étape 4 : remplacement
- P:=P’’
INF6953
Les algorithmes évolutionnistes (1)
21
AG générationnel
•
-
Paramètres
n = taille de la population
pc : probabilité de croisement d’un individu
pm : paramètre de la mutation (probabilité de modifier un gène)
+ Paramètres pour la sélection (tournoi ou roulette)
•
-
Remarque
La sélection intervient à l’étape 2 (choix des parents).
L’étape 4 (P := P’’) ne joue pas de rôle de sélection.
INF6953
Les algorithmes évolutionnistes (1)
22
Les stratégies d’évolution (ES)
•
-
Les algorithmes ES (evolution strategies) se caractérisent par
Étape 2 : Sélection uniforme
µ parents donnent λ enfants
Remplacement : (µ, λ)-ES ou (µ + λ)-ES
•
-
Remplacement
(µ, λ)-ES : prochains parents = µ meilleurs parmi les λ enfants
(µ + λ)-ES : prochains parents = µ meilleurs parmi les µ parents + λ enfants
•
-
Remarque
L’étape 2 ne joue pas de rôle de sélection
L’étape 4 (remplacement) joue le rôle de sélection (de manière déterministe)
INF6953
Les algorithmes évolutionnistes (1)
23
AG stationnaire (steady state)
•
L’AG stationnaire se caractérise par le fait que, à chaque génération, on ne
choisit que deux parents et on ne produit qu’un enfant
•
-
Par exemple
Sélectionner les deux parents par tournoi de taille k
Remplacer un parent par l’enfant
INF6953
Les algorithmes évolutionnistes (1)
24
L’algorithme EP
•
-
L’algorithme EP = Evolutionary Programming
Sélection uniforme
Chaque parent produit 1 enfant (par mutation seulement, pas de croisement)
Remplacement : Sélection de n individus (parmi les n parents + n enfants) par
tournoi EP (de taille k)
•
-
Tournoi EP pour le remplacement (étape 4)
Pour chaque individu S de P union P’’, faire
- Choix uniforme de k-1 individus dans P union P’’
- Score de S := le nombre d’individus battus
Choisir les µ individus de meilleurs scores pour constituer P
-
INF6953
Les algorithmes évolutionnistes (1)
25