Métaheuristiques populationnelles Algorithmes évolutionnaires · 2011-11-07 · Probleme du sac...
Transcript of Métaheuristiques populationnelles Algorithmes évolutionnaires · 2011-11-07 · Probleme du sac...
[email protected] 2/195
Algorithmes génétiques
(cours de C. Pellegrini)
Quel est le dispositif de résolution de problèmes le plus puissant de l'univers?
Le cerveau humain qui inventa "la roue, l'agriculture, New York, les guerres, etc." (d'après D. Adams)
[email protected] 3/195
Algorithmes génétiques
(cours de C. Pellegrini)
Quel est le dispositif de résolution de problèmes le plus puissant de l'univers?
Le cerveau humain qui inventa "la roue, l'agriculture, New York, les guerres, etc." (d'après D. Adams)
Le mécanisme de l'évolution qui créa le cerveau humain (d'après Darwin)
[email protected] 6/195
Algorithmes génétiques● L'évolution biologique a engendré des individus
● Complexes● Adaptatifs● Autonomes
● D'autres mécanismes que le simple raisonnement sur un monde entièrement connu
● S'inspirer de la théorie de l'évolution● Darwin
[email protected] 8/195
Théorie de l'évolution Darwin 1809-1882● Théorie de l’évolution
● Au fur et à mesure des générations, espèce évolue● Les espèces et individus sont en compétitions● Seuls les ’mieux’ adaptés à leur environnement survivent et
se reproduisent en transmettant leur caracteristiques● Ceux qui se reproduisent le plus voient leur proportion
grandir dans la population.
● Deux idées● Survie et descendance des plus adaptés.● Transmission aux enfants des caractères utiles.
[email protected] 11/195
3 approches● Apparues independamment jusque 1990
● Stratégies d'evolution – Apprentisage parametres continus
● Programmation évolutionnaire – Faire évoluer des automates
● Algorithmes genetiques – Comprendre les mecanismes de l'adaptation
● Désormais trés mélangé● Algo évolutionnaire● Abus de langage algorithmes genetiques
[email protected] 12/195
Principe d'un algorithme génétique● Principe général● Opérateur de selection● Opérateur de variation● Boucle générationnelle● Exemples
[email protected] 13/195
Analogie avec le vivant● Éléments
● un chromosome = un code (string)● un gene = un morceau du code● un phenotype = un morceau de la solution● un individu = une solution● selection = garder les meilleures● reproduction = combinaison de solution
● Algorithme● Les individus sont des solutions● Ensemble des individus : population● Une itération : generation
[email protected] 14/195
Elements à décrire● Codage d'un individu● Les perturbations de son génome● La selection naturelle● La boucle générale
[email protected] 15/195
Codage de l'individu (génome)
● Lien entre genotype et phenotype● Peut etre plus ou moins complexe
[email protected] 16/195
Codage de l'individu (génome)
● Lien entre genotype et phenotype● Peut etre plus ou moins complexe
Cas simpleProbleme du sac à dos
[email protected] 17/195
Codage de l'individu (génome)
● Lien entre genotype et phenotype● Peut etre plus ou moins complexe
Cas simpleProbleme du sac à dos
0 1 1 0 1 0 0 1Génome
Phénotype
Génome
Contenu du sac
Liste objets dans le sac
[email protected] 18/195
Codage de l'individu (génome)
● Lien entre genotype et phenotype● Peut etre plus ou moins complexe
Cas simpleProbleme du sac à dos
0 1 1 0 1 0 0 1Génome
Phénotype
Génome
Cas plus "complexe"Probleme de fitting
Contenu du sac
1.0 2.4 5.4 3.2
Equation de fonction
Liste objets dans le sac Paramètres de la fonction
[email protected] 19/195
Codage de l'individu (génome)
● Lien entre genotype et phenotype● Peut etre plus ou moins complexe
Cas simpleProbleme du sac à dos
0 1 1 0 1 0 0 1Génome
Phénotype
Génome
Cas plus "complexe"Probleme de fitting
Contenu du sac
1.0 2.4 5.4 3.2
Equation de fonction
Liste objets dans le sac Paramètres de la fonction
Lien (genome → phenotype) trés important
Car on va modifier le genome et observer le phenotype
Ce lien encapsule les influences du génome
[email protected] 20/195
Opérateurs de variation (transmission génome)
● Individus transformés de génération en génération
● Deux opérateurs de variation● Mutation: Opérateur de mutation
– Transforme un individu en un autre● Cross-Over: Opérateur de croisement
– Inspiré reproduction sexuée– Un nouvel individu à partir de deux autres
● Les opérateurs de modification● Définissent des voisinages de recherche● Liés au codage des individus
[email protected] 21/195
Opérateurs de selection (séléction naturelle)
● Individus evoluent sous deux opérateurs de selection● Selection: Selection pour la reproduction
– Lesquels pourront se reproduire● Remplacement: Selection pour remplacement
– Lesquels constitueront la génération suivante
● Idée● La selection favorise les meilleurs
– Biais● Par rapport fonction objectif
– Fonction de fitness
[email protected] 22/195
Boucle générationnelle● Qui permet de passer d'une population à une autre
● Étape● Selection des parents pour reproduction● Croisement et mutation● Evaluation des performances des enfants● Selection pour la survie
● Jusqu'a un critère d'arret
[email protected] 23/195
Exemple jouet● Rechercher optimal d'une fonction
● Entier dans [0..15,0..15]
sin( x2+ y2).(10−( x2+ y2))
[email protected] 24/195
Un exemple jouet● Solution
● (x,y) codé sous 1 octet
● Population : ● ensemble de 4 individus
● Opérations● Mutation, Cross-over
● Selection: garde les 4 meilleurs
sin( x2+ y2).(10−( x2+ y2))
0 1 0 1 1 1 0 0x y
( 5 , 12 )
0 0 0 1 1 1 0 0
0 1 1 1 1 0 0 0
0 1 0 1 1 1 1 0
0 1 0 0 1 1 1 0
[email protected] 25/195
Representation
x y
x y
x y
génotype phénotype
sin( x2+ y2).(10−( x2+ y2))
x y
[email protected] 26/195
Representation
x y
x y
x y
sin( x2+ y2).(10−( x2+ y2))
génotype phénotype
x y
[email protected] 27/195
Representation - selection
x y
x y
x y
sin( x2+ y2).(10−( x2+ y2))
génotype phénotype
x y
[email protected] 28/195
Algorithme – vue generale
sin( x2+ y2).(10−( x2+ y2))
0 0 1 0 1 1 1 0
0 1 1 0 0 0 1 0
1 0 1 0 1 0 0 0
1 1 0 0 1 1 0 1
Population
[email protected] 29/195
Algorithme – vue generale
sin( x2+ y2).(10−( x2+ y2))
0 0 1 0 1 1 1 0
0 1 1 0 0 0 1 0
1 0 1 0 1 0 0 0
1 1 0 0 1 1 0 1
Population
Evaluation
[email protected] 30/195
Algorithme – vue generale
sin( x2+ y2).(10−( x2+ y2))
0 0 1 0 1 1 1 0
0 1 1 0 0 0 1 0
1 0 1 0 1 0 0 0
1 1 0 0 1 1 0 1
Population
Evaluation
1 1 0 0 1 1 0 10 0 1 0 1 1 1 0
Selection
[email protected] 31/195
Algorithme – vue generale
sin( x2+ y2).(10−( x2+ y2))
0 0 1 0 1 1 1 0
0 1 1 0 0 0 1 0
1 0 1 0 1 0 0 0
1 1 0 0 1 1 0 1
Population
Evaluation
1 1 0 0 1 1 0 10 0 1 0 1 1 1 0
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
Selection
Mutation
[email protected] 32/195
Algorithme – vue generale
sin( x2+ y2).(10−( x2+ y2))
0 0 1 0 1 1 1 0
0 1 1 0 0 0 1 0
1 0 1 0 1 0 0 0
1 1 0 0 1 1 0 1
Population
Evaluation
1 1 0 0 1 1 0 10 0 1 0 1 1 1 0
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
0 1 1 11 0 0 10 1 1 01 0 1 0
Selection
Mutation
Cross-Over
[email protected] 33/195
Algorithme – vue generale
sin( x2+ y2).(10−( x2+ y2))
0 0 1 0 1 1 1 0
1 0 1 0 1 0 0 0
1 1 0 0 1 1 0 1
0 1 1 11 0 0 1
Population
Evaluation
1 1 0 0 1 1 0 10 0 1 0 1 1 1 0
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
0 1 1 11 0 0 10 1 1 01 0 1 0
Selection
Mutation
Cross-Over
Remplacement
[email protected] 34/195
Algorithme – vue generale
sin( x2+ y2).(10−( x2+ y2))
0 0 1 0 1 1 1 0
1 0 1 0 1 0 0 0
1 1 0 0 1 1 0 1
0 1 1 11 0 0 1
Population
Evaluation
1 1 0 0 1 1 0 10 0 1 0 1 1 1 0
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
0 1 1 11 0 0 10 1 1 01 0 1 0
Selection
Mutation
Cross-Over
Remplacement
[email protected] 35/195
Boucle generationnelle//population pop_0 ← popinitiale()
//boucle généraleTant que non fini
//selection reproductionrepro_k ← selection (pop_k)//mutationrepro_k ← mutation (repro_k)
//crossoverPour certains couple (ind1,ind2) de (repro_k)
//nouvel individunouvel_k ← nouvel_k U crossover (ind_1,ind _2)
Fin pour
//nouvelle populationpop_k+1=pop_k U nouvel_k//remplacementpop_k+1=filtre(pop_k+1)
Fin tant que
[email protected] 36/195
Boucle generationnelle - métaheuristique//population pop_0 ← popinitiale()
//boucle généraleTant que non fini
//selection reproductionrepro_k ← selection (pop_k)//mutationrepro_k ← mutation (repro_k)
//crossoverPour certains couple (ind1,ind2) de (repro_k)
//nouvel individunouvel_k ← nouvel_k U crossover (ind_1,ind _2)
Fin pour
//nouvelle populationpop_k+1=pop_k U nouvel_k//remplacementpop_k+1=filtre(pop_k+1)
Fin tant que
selection
mutation
crossover
filtre
[email protected] 37/195
Boucle generationnelle - métaheuristique//population pop_0 ← popinitiale()
//boucle généraleTant que non fini
//selection reproductionrepro_k ← selection (pop_k)//mutationrepro_k ← mutation (repro_k)
//crossoverPour certains couple (ind1,ind2) de (repro_k)
//nouvel individunouvel_k ← nouvel_k U crossover (ind_1,ind _2)
Fin pour
//nouvelle populationpop_k+1=pop_k U nouvel_k//remplacementpop_k+1=filtre(pop_k+1)
Fin tant que
selection
mutation
crossover
filtre
initialisation
Condition arret
Choix couples
Nouvelle pop
Qui mute
[email protected] 38/195
Boucle generationnelle - métaheuristique//population pop_0 ← popinitiale()
//boucle généraleTant que non fini
//selection reproductionrepro_k ← selection (pop_k)//mutationrepro_k ← mutation (repro_k)
//crossoverPour certains couple (ind1,ind2) de (repro_k)
//nouvel individunouvel_k ← nouvel_k U crossover (ind_1,ind _2)
Fin pour
//nouvelle populationpop_k+1=pop_k U nouvel_k//remplacementpop_k+1=filtre(pop_k+1)
Fin tant que
selection
mutation
crossover
filtre
initialisation
Condition arret
Choix couples
Nouvelle pop
Qui mute
Codage
Fitness
Fitness
Codage
Codage
[email protected] 39/195
Representation individu
[email protected] 40/195
Plusieurs représentations possibles● Dépend du probleme
● Representation● Discrete Binaire● Discrete séquence ordonnée● Continue● Arbre● Automate● ....
[email protected] 41/195
Représentation discrete● Alphabet binaire
● Codage plus ou moins direct
● Lien genotype/phenotype plus ou moins complexe
0 1 0 [...] 1 0 1
Entier
Réel
Autre chose ….
Chaine de caractères
phénotype
génotype
[email protected] 42/195
Représentation par sequence ordonnée● Ex (1, 5, 6, 3, 2, 4)
● Problemes adaptés● TSP : permutation de villes● Affectation quadratique : liste des lieux● Etc ..
● Garantir qu'on reste dans une séquence autorisée● Ex : Opérateur et permutation
[email protected] 43/195
Représentation valeur réelles● Réel
● Un réel – Non codé en binaire
● Plusieurs réels– Un vecteur [ x1, x2 , x3, x4 ]
● Exemple● Optimisation de fonction
[email protected] 44/195
Représentation par arbre● Individu sont representés par des arbres
● Exemple : expression symbolique● Calcul de surface d'un cercle
*
π *
r r
[email protected] 45/195
Opérateurs de variations
[email protected] 46/195
Opérateurs de variation● Objectifs
● Faire évoluer les solutions
● Deux types opérateurs ● Mutation● Crossover
● Différents dans● Leur fonctionnement● Leur objectif
[email protected] 47/195
Opérateur de mutation● Fonction Mutation: Individu → Individu
● Objectif● Aider exploration
– Genere de nouvelles structures● Eviter d'etre piege dans local
– Maintien diversité
● Propriétés attendues● Fournir solutions valides● Etre controlé (exploration/exploitation)● Parcourir tout l'espace de recherche (connexité)
[email protected] 48/195
Opérateurs de mutation classiques● Dépendent du codage de l'individu
● Classiques● Binaire
– Flipping, Interechange, Reversing, Mutation probability● Continu
– Ajout de bruit● Permutation
– Échange● Structure de données arborescentes
– Échange de noeuds
[email protected] 49/195
Opérateurs de mutation binaires● Flipping
● Inverser un bit d'une représentation binaire
● Aléatoire● inverser bit avec une probabilité faible
● Interechange / insertion● Échanger deux valeurs ou inserer
● Reversing● Retourner à partir d'une valeur
0 1 0 1 1 0 1 1
0 1 0 0 1 0 1 1
0 1 0 1 1 0 1 1
0 1 1 1 1 0 0 1
0 1 0 1 1 0 1 10 1 0 1 1 0 1 1
0 1 0 1 1 01 1
0 1 0 1 1 0 1 1
1 1 0 0 1 0 1 0
[email protected] 50/195
Opérateurs de mutation binaires● Flipping
● Inverser un bit d'une représentation binaire
● Fait une exploration liée au codage● Ex codage d'un entier
0 1 0 1 1 0 1 1
0 1 0 0 1 0 1 1
0 1 0 1 1 0 1 1
1 1 0 1 1 0 1 1+/- 128
0 1 0 1 1 0 1 1
0 1 0 0 1 0 1 1+/- 16
0 1 0 1 1 0 1 1
0 1 0 1 1 0 1 0+/- 1
[email protected] 51/195
Opérateurs de mutation continus● Ajouter bruit aleatoire selon distribution Gaussienne
● Moyenne = 0 ● ecart type σ donné
[email protected] 52/195
Opérateurs de mutation continus● Ajouter bruit aleatoire selon distribution Gaussienne
● Moyenne = 0 ● ecart type σ donné
[email protected] 53/195
Opérateurs de mutation continus● Ajouter bruit aleatoire selon distribution Gaussienne
● Moyenne = 0 ● ecart type σ donné
[email protected] 54/195
Opérateurs de mutation continus● Ajouter bruit aleatoire selon distribution Gaussienne
● Moyenne = 0 ● ecart type σ donné
[email protected] 55/195
Opérateurs de mutation permutations● Rester dans espace des solutions
● Resultat doit etre premutation
● Echange de deux valeurs
0 1 5 6 2 7 4 8
0 1 4 6 2 7 5 8
[email protected] 56/195
Opérateurs de mutation arbre● Échanger un noeud par noeud meme type
-
+ 4
2 1
-
- 4
2 1
-
+ 1
2 1
[email protected] 57/195
Opérateur de cross-over● Fonction cross-over: Individu x Individu → Individu
● Deux individus produire un nouvel enfant
● Objectif● Améliorer solutions
– Combiner● Tirer parti des avantages
– Conservant des morceaux
● Propriétés attendues● Hériter de quelque chose● Produire solution valides
[email protected] 58/195
Opérateur de cross-over exemples● Single point crossover● Multipoint crossover● Uniform crossover● Arithmetic crossover
● CrossOver permutation● Crossover arbres
[email protected] 59/195
Opérateur de cross-over exemples● Single point crossover
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
0 0 1 1 1 1 1 01 1 0 0 01 0 1
[email protected] 60/195
Opérateur de cross-over exemples● Multi-point crossover
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
0 0 1 0 0 1 1 0 1 1 0 1 1 1 0 1
[email protected] 61/195
Opérateur de cross-over exemples● Uniform crossover
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
? ? ? ? ? ? ? ?
[email protected] 62/195
Opérateur de cross-over exemples● Uniform crossover
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
? ? ? ? ? ? ? ?
50% 50%
[email protected] 63/195
Opérateur de cross-over exemples● Uniform crossover
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
0 ? ? ? ? ? ? ?
50% 50%
[email protected] 64/195
Opérateur de cross-over exemples● Uniform crossover
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
0 ? ? ? ? ? ? ?
50% 50%
[email protected] 65/195
Opérateur de cross-over exemples● Uniform crossover
0 0 1 1 1 1 1 0 1 1 0 0 0 1 0 1
0 1 0 0 1 1 1 0
[email protected] 66/195
Opérateur de cross-over exemples● Arithmetic crossover
2 5 2 4 6 1 7 3 4 5 8 1 5 3 7 1
? ? ? ? ? ? ? ?
[email protected] 67/195
Opérateur de cross-over exemples● Arithmetic crossover
2 5 2 4 6 1 7 3 4 5 8 1 5 3 7 1
3 ? ? ? ? ? ? ?
(2+4)/2
[email protected] 68/195
Opérateur de cross-over exemples● Arithmetic crossover
2 5 2 4 6 1 7 3 4 5 8 1 5 3 7 1
3 5 5 2 5 2 7 2
[email protected] 69/195
Opérateur de cross-over exemples● Crossover permutations
2 1 5 4 6 8 7 3 4 5 8 1 6 3 7 2
[email protected] 70/195
Opérateur de cross-over exemples● Crossover permutations
2 1 5 4 6 8 7 3 4 5 8 1 6 3 7 2
2 1 5 1 6 3 7 3
[email protected] 71/195
Opérateur de cross-over exemples● Crossover permutations
2 1 5 4 6 8 7 3 4 5 8 1 6 3 7 2
2 1 5 1 6 3 7 3
Ce n'est plus une permutation
[email protected] 72/195
Opérateur de cross-over exemples● Crossover permutations
2 1 5 4 6 8 7 3 4 5 8 1 6 3 7 2
2 1 5 4 6 8 7 32 1 5 1 6 31 - Insertion
[email protected] 73/195
Opérateur de cross-over exemples● Crossover permutations
2 1 5 4 6 8 7 3 4 5 8 1 6 3 7 2
2 1 5 4 6 8 7 32 1 5 1 6 31 - Insertion
2 1 5 4 8 72 5 1 6 32- Suppression doublons
[email protected] 76/195
Operateur crossover arbre● Echanger des sous-arbre
*
π *
r +
r r
+
r *
2 r
*
2 r
*
π
+
r *
r +
r r
[email protected] 77/195
Opérateurs de Selection
[email protected] 78/195
Selection● Caracteristiques de la selection
● Pression de selection● Dérive genetique
● Opérateurs de selection
[email protected] 79/195
Pression de selection● Sans variation, Proportion Individus + adaptes augmente
● Definition pression de selection● temps de domination
– Temps pour que la population soit remplacée par le meilleur individu juste avec selection
● Intensité de selection– Rapport difference performance moyenne entre enfants sur
Variance performance parents
[email protected] 80/195
Pression de selection● Sans variation, Proportion Individus + adaptes augmente
● Definition pression de selection● temps de domination
– Temps pour que la population soit remplacée par le meilleur individu juste avec selection
● Intensité de selection– Rapport difference performance moyenne entre enfants sur
Variance performance parents
● Lié à la présence d'un meilleur individu● Trop de pression ==> convergence prématurée
[email protected] 81/195
Dérive génétique● La population tend vers une population homogène
● Même si tous les individus ont meme performance
● Dérive génétique● Temps atteindre état absorbant
– Lié à la taille population● Variation de la performance population avec des parents de
performance identique– Lié à la variance de la selection
● Lié à l'aspect stochastique des opérateurs● Dérive genetique conduit à une perte de diversité
[email protected] 82/195
Selection de reproduction● Selection proportionnelle
● Roulette (RWS)● Stochastic Universal Sampling (SUS)
● Selection par rang
● Selection par tournoi
● Selection boltzman
[email protected] 83/195
Selection de reproduction● Selection proportionnelle
● Chaque individu à un score par rapport à sa performance
● Score si
● Avec lambda taille populationsi=
λ
∑i=1..n
f i. f i
13 15 20 5 10 16
[email protected] 84/195
Selection de reproduction● Selection proportionnelle
● Chaque individu à un score par rapport à sa performance
● Score si
● Avec lambda taille populationsi=
λ
∑i=1..n
f i. f i
13
0,975
15
1,125
20
1,5
6
0,45
10
0,75
16
1,2
Nombre moyen d'individus dans la population finale
[email protected] 85/195
Selection de reproduction● Selection roulette (RWS roulette wheel selection)
● Probabilité selectionner individu proportionnelle à son score
130,975
151,125
201,5
60,45
100,75
161,2
0 1 2 3 4 5 6 7
ind 1ind 2ind 3ind 4ind 5ind 6
[email protected] 86/195
Selection de reproduction● Selection roulette (RWS roulette wheel selection)
● Probabilité selectionner individu proportionnelle à son score
● Selection trop aléatoire● Bons peuvent ne pas etre conserves● Dérive génétique des moyens
130,975
151,125
201,5
60,45
100,75
161,2
ind 1ind 2ind 3ind 4ind 5ind 6
[email protected] 87/195
Selection de reproduction● Selection SUS (Stochastic universal sampling)
130,975
151,125
201,5
60,45
100,75
161,2
0 1 2 3 4 5 6 7
[email protected] 88/195
Selection de reproduction● Selection SUS (Stochastic universal sampling)
130,975
151,125
201,5
60,45
100,75
161,2
0 1 2 3 4 5 6 7
Offset
[email protected] 89/195
Selection de reproduction● Selection SUS (Stochastic universal sampling)
130,975
151,125
201,5
60,45
100,75
161,2
0 1 2 3 4 5 6 7
1Offset
[email protected] 90/195
Selection de reproduction● Selection SUS (Stochastic universal sampling)
130,975
151,125
201,5
60,45
100,75
161,2
0 1 2 3 4 5 6 7
1 1 1 1 1Offset
[email protected] 91/195
Selection de reproduction● Selection SUS (Stochastic universal sampling)
● Un seul tirage aléatoire
● Variance plus faible● Chaque individu entre E(s
i) et E(s
i)+1
● Individu meilleur conservé au moins une fois
130,975
151,125
201,5
60,45
100,75
161,2
0 1 2 3 4 5 6 7
[email protected] 92/195
Pression de selection proportionnel● Pression de selection
● p=max (f) / moyenne(f)
● Possible d'ajuster● Par des transformations linéaires● Par des transformations exponentielles
– Selection de metropolis e(-f/T)– Modifier T
[email protected] 93/195
Selection selon le rang● Chaque individu possède un rang
● On définit une valeur individu● Independant de performance
– r --> rang du parent– µ --> nombre parents– p --> variable liée à la pression de selection
● Sélection proportionnelle par rapport f'
f ' (x )=(1− rμ)p
[email protected] 94/195
Selection par tournoi● Principe
● Repartir individus dans tournoi● Garder les vainqueurs
[email protected] 95/195
Selection par tournoi● Tournois deterministe
● Groupe de k avec/sans remise● Garde le meilleur de chaque groupe
Performance
[email protected] 96/195
Selection par tournoi● Tournois deterministe
● Groupe de k avec/sans remise● Garde le meilleur de chaque groupe
[...]
Performance
[email protected] 97/195
Selection par tournoi● Tournois deterministe
● Groupe de k avec/sans remise● Garde le meilleur de chaque groupe
● Pression de selection dépend de k● Plus k est grand, plus on garde les meilleurs
● Habituellement n trés grand par rapport à k
[...]
Performance
[email protected] 98/195
Selection par tournoi● Tournois stochastiques
● Groupe de 2● Probabilité de gagner du plus performant est p [0,5..1]
Performance
[email protected] 99/195
Selection par tournoi● Tournois stochastiques
● Groupe de 2● Probabilité de gagner du plus performant est p [0,5..1]
● Pression de selection est liée à p
● P peut dépendre des performances● Selection Metropolis● Rapporche du recuit simulé
[email protected] 100/195
Selection de remplacement● Plusieurs stratégies de remplacement
● Remplacement générationnel– Tous les enfants remplacent les parents
● Remplacement strategie evolution (µ/λ) ES– Garde les µ meilleurs des λ enfants
● Remplacement stationnaire– Change un ou deux parents par un/deux enfants– Evite evolution trop brutale
● Remplacement élitiste– Garder au moins le meilleur individu– Assure augmentation performance
● D'autres
[email protected] 101/195
Exemple
[email protected] 102/195
Exemples● Optimisation combinatoire● Evolution de loi de controle● Evolution de morphologie● Evolution de créature artificielle
[email protected] 103/195
Ex1 - Optimisation combinatoire● Exemple
● Probleme du voyageur de commerce
[email protected] 104/195
Ex1 - Optimisation combinatoire● Exemple
● Probleme du voyageur de commerce
● Individu● Une permutation
● Mutation● Inverser deux villes
● Combinaison● Combinaison de permutation
[email protected] 105/195
Ex2 - Loi de controle● Apprendre des poids d'un réseau de neurone
● avec un algorithme genetique
● Exemple simpliste● Machine de braitenberg
[email protected] 106/195
Ex2 - Loi de controle● Apprendre des poids d'un réseau de neurone
● avec un algorithme genetique
● Exemple simpliste● Machine de braitenberg
● Appareillage● Capteurs: senseurs de lumière● Moteur: rotation des roues
[email protected] 107/195
Ex2 - Comportement simple● Se diriger vers la lumière
● Machines de Braitenberg● Relier directement moteur et capteurs
[email protected] 108/195
Ex2 - Comportement simple● Se diriger vers la lumière
● Machines de Braitenberg● Relier directement moteur et capteurs
+
[email protected] 109/195
Ex2 - Comportement simple● Se diriger vers la lumière
● Machines de Braitenberg● Relier directement moteur et capteurs
+
[email protected] 110/195
Ex2 - Comportement plus complexe● La machine doit approche la lumière
● mais rester à une certaine distance
● Lien plus complexe entre capteur et moteur● Fonction lie capteur --> moteur● Exemple réseau de neurones
Capteur 1
Capteur 2
Moteur 1
Capteur 2 Moteur 2
[email protected] 111/195
Ex2 - Comportement plus complexe● Population ? Indidvidus ? Etc ???
[email protected] 112/195
Ex2 - Comportement plus complexe● Individus ?
● Un code du réseau, à savoi poids des connexions + seuils● Population ?
● Plusieurs individus
● Evaluation ?● Executer la machine et compter temps dans zone souhaitée
● Variation● Mutation : modifier un poids● Combinaison : melanger des poids
[email protected] 113/195
Ex2 - Lois de controle + equations de force● Mélange
● Steering behaviours– http://www.red3d.com/cwr/steer/
● Algorithmes génétiques
Vitesse
but
Vitesse future
Accélération
[email protected] 114/195
Ex2 - Lois de controle + equations de force● GACS (Flacher 2005)
[email protected] 115/195
Ex2 - Lois de controle + equations de force● GACS (Flacher 2005)
[email protected] 116/195
Ex2 - Lois de controle + equations de force● GACS (Flacher 2005)
[email protected] 117/195
Ex2 - Lois de controle + equations de force● GACS (Flacher 2005)
Probleme : capturer des moutons
[email protected] 118/195
Ex3 - Apprentissage de biomorph● Apprentissage de biomorph
● http://www.rennard.org/alife/french/gavintr.html
● Biomorph● Origine de Dawkins (1976)● Simule developpement embryonnaire
[email protected] 119/195
Ex3 - Apprentissage de biomorph● Apprentissage de biomorph
● http://www.rennard.org/alife/french/gavintr.html
● Biomorph● Origine de Dawkins (1976)● Simule developpement embryonnaire
● Algorithme de dessin récursif● Raisonne par direction● Codé par génome
nord
nord-
est
nord/
oues
t
nord
est nord
ouest
[email protected] 120/195
Ex3 - Biomorph● Gènes
– 8 gènes codent une direction● Élongation + angle
– 9é gène code itérations
Iteration ++ Modifie axe NE et NO
Lien complexe
Genome → phenotype
[email protected] 121/195
Ex3 - Biomorph● Gènes
– 8 gènes codent une direction● Élongation + angle
– 9é gène code itérations
Iteration ++ Modifie axe NE et NO
Lien complexe
Genome → phenotype
Demo
Apprendre une structure
[email protected] 122/195
Ex4 - Karl sims● Evolution de créature virtuelle
● http://www.karlsims.com/evolved-virtual-creatures.html
Apprendre à nager Apprendre à sauter Apprendre à atteindre
[email protected] 124/195
Ex4 - Karl Sims● Apprentissage du controle
● Cf article● Proche réseau neurone
[email protected] 125/195
Ex4 - Karl Sims● Évolution forme + controle
● Meilleures formes pour résoudre une tâche
[email protected] 126/195
Autre exemple● Tri par algo genetique (probleme jouet)
● Minimiser une fonction– x^2+y^2 avec x+y=7
● Trouver le plus grand cercle sans qu'il ne rencontre des points donnés
● Probleme de coloration de graphe / surface
[email protected] 127/195
Pourquoi ca marche ?● Dilemne exploration / exploitation
● Ou se fait il ???
[email protected] 128/195
Pourquoi ca marche ?● Dilemne exploration / exploitation
● Opérateurs de variation– Mutation == exploration– Combinason == exploitation
● Opérateur de selection– Pression de selection et dérive génétique
● Controlable● Mais pas/peu de théorie de convergence
[email protected] 129/195
Pourquoi ca marche ?● Deux grands principes d'explication
● Théorie des schémas – Motifs plus interessants que d'autres– Ceux la qui se répetent
● Building blocks– Fait meilleurs schémas en combinant schémas élémentaires
● Contradiction ● Schémas peuvent etre coupés
– interactions faibles entre genes ?● Building blocks
– interaction forte entre gènes.
[email protected] 130/195
Pourquoi ca marche ?● Peu de pouvoir explicatif
● Comme la plupart des métaheuristiques
● Oppose généralité et compréhension● Utilise beaucoup aléatoire
[email protected] 131/195
Programmation génétique
[email protected] 132/195
Programmation génétique ● Un programme qui évolue tout seul ?
[email protected] 133/195
Programmation génétique ● Un programme qui évolue tout seul ?
● Meme idée● Population de programmes● Un programme = genome● Faire évoluer la population
● Question● Comment coder un programme ?
[email protected] 134/195
Programmation génétique - codage● Deux types de codage
● Arbres● Automates
[email protected] 135/195
Programmation génétique - arbre● Codage arbre – programmation génétique (koza)
● Définir noeud terminaux● Instructions
● Définir noeuds intermediaires– Séquences instr1 puis instr2– If (cond) instr1 sinon instr2– Boucle (cond) instr1
sequence
Boucle (a<10)a ← 0
a=a+1
[email protected] 136/195
Programmation génétique - arbre● Un individu
● Un arbre
● Opérateur Mutation ● changer un noeud pour noeud de meme type
● Opérateur combinaison● Échanger des sous arbres échangeable
[email protected] 137/195
Programmation génétique - automate● Codage automate – algorithme évolutionnaire
● Noeuds et arcs
● Chaque noeud possède● Une action● Une transition vers un noeud suivant
– Éventuellement conditionnée
Action a Action b
Action c
[email protected] 138/195
Programmation génétique - automate● Machine de turing
● Bandeau de 0 et de 1● Un automate décrit comportement
– État interne x observation ==> état interne– État interne x observation ==> (move,write)
● Comportement● État 0● Tant que non fini
– Observe ruban– Action<- action[etat,obs]– Etat <- etat[etat,obs]
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
[email protected] 139/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S0
[email protected] 140/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S0
[email protected] 141/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S0
11B 0 B B
S0
[email protected] 142/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S0
[email protected] 143/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S0
11B 0 B B
S0
[email protected] 144/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S0
[email protected] 145/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S0
11B 0 B B
S1
[email protected] 146/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S1
[email protected] 147/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 0 B B
S1
S2
11B 1 B B
[email protected] 148/195
Programmation genetique - automate● Machine de turing
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
11B 1 B B
S2
stop
[email protected] 149/195
Programmation genetique - automate● Machine de turing
● Opérateur
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
[email protected] 150/195
Programmation genetique - automate● Machine de turing
● Opérateur● Mutation : modifier
– L'ecriture– État d'arrivée– Deplacement
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
[email protected] 151/195
Programmation genetique - automate● Machine de turing● Opérateur
● Mutation● Combinaison
– Mélanger matrice de transition de deux machines
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
État dep
S0
S1
obs
vide01
vide01
ecrire
vide00
110
deplacer
gauchegauchedroite
gauchegauchegauche
nEtat
S2S0S0
S2S2S1
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
État dep
S0
S1
obs
vide01
vide01
ecrire
vide01
110
deplacer
gauchedroitedroite
gauchegauchegauche
nEtat
S1S0S0
S2S2S1
Etc [...]
[email protected] 152/195
Exemple programmation génétique● Programmer le comportement d'une fourmi
● Santa fé trail (Koza)
[email protected] 153/195
Santa fé trail● Chemin de nourriture● Une fourmi
● Capacités● 3 actions
– Devant, gauche, droite● Perception
– Nourriture devant elle ou non
[email protected] 154/195
Santa fe trail● Quand la fourmi passe devant une capsule, elle la mange
● Objectif ● trouver le "meilleur" comportement fourmi
● Questions ?● Meilleur ?● Difficultés ?● Comportement ?● Algorithme ?
[email protected] 155/195
Santa fe trail● Meilleur comportement
● Critère à optimiser fonction de fitness
● Idée quantité de nourriture● Mais ?
[email protected] 156/195
Santa fe trail● Meilleur comportement
● Critère à optimiser fonction de fitness
● Idée quantité de nourriture● Mais ● Pourquoi ne pas parcourir ?
● Contrainte temps limité● Plus petit que chemin
[email protected] 160/195
Santa fe trail● Difficultés
● Situations différentes
La fourmi a la meme perception
[email protected] 161/195
Santa fe trail● Difficultés
● Situations différentes
● Une solution● Faire toute la liste d'actions
● Mais long et peu generique
● Trouver un compromis● Taille programme● Résultats obtenus
[email protected] 162/195
Santa fe trail● Représentation à base d'arbre
● Noeuds terminaux● Actions de base
● Noeuds non terminaux● Séquence de noeuds
● Conditionnelles– Vue nourriture
Move left right
Prog3Prog2
if
alors sinon
[email protected] 164/195
Santa fe trail● Exemple de programme
● Execution● Nourriture --> avance
if
move left
[email protected] 165/195
Santa fe trail● Exemple de programme
● Execution● Nourriture --> avance
if
move left
[email protected] 166/195
Santa fe trail● Exemple de programme
● Execution● Pas Nourriture --> left
if
move left
[email protected] 167/195
Santa fe trail● Exemple de programme
● Execution● Pas Nourriture --> left
if
move left
[email protected] 168/195
Santa fe trail● Exemple de programme
● Execution● Pas Nourriture --> left
if
move left
[email protected] 169/195
Santa fe trail● Exemple de programme
● Execution● Nourriture --> devant
if
move left
[email protected] 170/195
Santa fe trail● Exemple de programme
● Execution● Nourriture --> devant
if
move left
[email protected] 171/195
Santa fe trail● Exemple de programme
● Execution● Pas Nourriture --> left
if
move left
[email protected] 172/195
Santa fe trail● Exemple de programme
● Execution● Pas Nourriture --> left
if
move left
[email protected] 173/195
Santa fe trail● Exemple de programme
● Execution● Pas Nourriture --> left
if
move left
[email protected] 174/195
Santa fe trail● Exemple de programme
● Execution● Pas Nourriture --> left
if
move left
[email protected] 175/195
If
Move Prog3
left Prog2Prog2
if
Move left
Moveif
Move right
Prog2
right Prog2
left right
Santa fe trail● Algo genetique
● Structure arbre --> resultat de Koza
[email protected] 176/195
If
Move Prog3
left Prog2Prog2
if
Move left
Moveif
Move right
Prog2
right Prog2
left right
Santa fe trail● Algo genetique
● Structure arbre --> resultat de Koza
inutile
[email protected] 177/195
Programmation evolutionnaire● Santé fe trail
[email protected] 178/195
Programmation evolutionnaire● Santé fe trail
Deux transitions de chaque état
Etat interne
[email protected] 179/195
Programmation evolutionnaire● Santé fe trail
● 1 → observation● Move → action● State 00 → etat arrivée
Transition 2
● 0 → observation● Left → action● State 10 → etat arrivée
Transition 1
Deux transitions de chaque état
Etat interne
[email protected] 180/195
Programmation evolutionnaire● Automate représenté par tableaux
● Tableau actions– Etat x observation --> action dans [1..3]
● Tableau de transitions– Etat x observation --> nouvel état dans [1..n]
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
[email protected] 181/195
Programmation evolutionnaire● Que fait cet automate ?
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
[email protected] 182/195
Programmation evolutionnaire● Que fait cet automate ?
● Fourmi qui ● Si voit nourriture, avance● Sinon regarde à gauche puis à droite
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
[email protected] 183/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
[email protected] 184/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
S0
[email protected] 185/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
S0
[email protected] 186/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
S0
[email protected] 187/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
S0
[email protected] 188/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
S0
[email protected] 189/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
S1
[email protected] 190/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
S1
[email protected] 191/195
Programmation evolutionnaire
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
S0
[email protected] 192/195
Programmation evolutionnaire● Automate représenté par tableaux
● Mutation
● Combinaison
[email protected] 193/195
Programmation evolutionnaire● Automate représenté par tableaux
● Mutation● Changer action, nouvel état
● Combinaison● Mélanger deux automates
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
Etat s0 Etat s1 Etat s2 Etat s30 1 0 1 0 1 0 1
ActionNouvel état
R M L M L M R Ms1 s0 s2 s0 s3 s0 s0 s0
[email protected] 194/195
Programmation evolutionnaire● Demonstration
● 20 états internes, pop de 5, en 50 iterations● Converge vers quelque chose d'interessant
● Depend de ● Structure du chemin● Du nombre d'états interne (expressivité)● De la taille population● Des processus de selection
[email protected] 195/195
Conclusion● Algorithmes génétiques
● Techniques d'optimisation générique (métaheuristique)● Trés souple et trés vaste
● Besoin de définir● Fonction fitness (probleme)● Codage et opérateur de variation (solution)● Mécanismes de selection (dilemne exploration/exploitation)