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