Algorithmes génétiquesAlgorithmes génétiques
David E. Goldberg, Genetic algorithms in Search, Optimization and Machine Learning, Addison-Wesley, 1989
Téléphoner à la campagneTéléphoner à la campagne
Téléphoner à la campagneTéléphoner à la campagne
Téléphoner à la campagneTéléphoner à la campagne
Téléphoner à la campagneTéléphoner à la campagne
Téléphoner à la campagneTéléphoner à la campagne
Définition d'un problèmeDéfinition d'un problème
Espace des solutions
Fitness (à optimiser)
"La" solution
Résolution ?Résolution ?
Se déplacer dans l'espace des solutions.
Les évaluer en cours de route. Retenir la meilleure qu'on a trouvée.
… mais comment se déplacer ?
Résolution ?Résolution ?
Risquer l'exploration d'une solution tirée au hasard ?
Améliorer les solutions connues ?
Conflit exlporation / exploitation
Tout explorerTout explorer
C'est la seule façon pour être sûr de trouver la meilleure solution possible.
Ca peut être impossible, même pour des problèmes relativement simples, pour lesquels l'espace des solutions est énorme.
Suivre le gradientSuivre le gradient
C'est ce qu'on a fait avec le téléphone, à la campagne.
C'est ce que fait le chien qui retrouve la source d'une odeur.
Pb : Maxima locaux.
Recuit simuléRecuit simulé
On exploite (gradient), mais on s'autorise à faire des "grands pas" de temps en temps (exploration).
Paramètre de température.
Inspiration de la physique statistique.
Algorithme génétiquesAlgorithme génétiques
On se dote d'une population de solutions.
Pertinent si, ayant deux solutions moyenne, on peut créer une nouvelle solution, meilleure, en combinant les avantages des deux.
Lien avec la génétique...
Le problème à résoudreLe problème à résoudre
"Lâcher" les pièces (tétris) et faire une forme compacte.
Problème de placement.
Codage d'une solutionCodage d'une solution
On a aussi le choix, mais il faut que ce codage possède une "bonne" propriété.
Qu'est-ce qu'une solution possible ?– Choisir un ordre d'insertion des pièces– Insertion : choisir pour chaque pièce une
colonne et une orientation.
Codage d'une solutionCodage d'une solution
Insertion d'une pièce : on numérote les possibilités.
Ex : pour
12310111218
Codage d'une solutionCodage d'une solution
Insertion d'une pièce : on numérote les possibilités.
18302632148163034 9
Choisir une solution au hasardChoisir une solution au hasard
18302632148163034 9
10 3 29 10 147 227 13 1
Taille de l'espace des solutions :
(12...10)343016981432263018= 26820125487267840000
Les compter à 2GHz, ça prend environs 425 ans !
PopulationPopulation
IndividuIndividu
Une solution possible est appelée un individu. Il a :
Un code
Un "aspect"Une valeur
12
11 110 143 4 107 36
Génotype / ChromosomeGénotype / Chromosome
PhénotypePhénotypeFitnessFitness
PopulationPopulation
On se donne une foule d'individus pour explorer l'espace des solutions…
… mais leur nombre reste ridiculement petit.
Reproduction / SélectionReproduction / Sélection
Reproduction/sélectionReproduction/sélection
Population : 10 individus A,B…H Chacun est une solution, dont on
évalue la fitness. On détermine les 10 nouveaux
individus par sélection probabiliste sur la fitness.
Reproduction/sélectionReproduction/sélection
Génération nA9
B2
C4
D9
E1
F7
G3
H1
Génération n+1F7
D9
A9
D9
B2
A9
A9
G3
Génération n+2D9
A9
A9
A9
A9
G3
A9
D9
Génération n+3D9
A9
A9
A9
A9
A9
A9
A9
Reproduction/sélectionReproduction/sélection
Tendance à l'uniformité (clones du meilleur).
Pas de création de solution nouvelle.
MutationMutation
MutationMutation
A chaque génération, tout individu a une probabilité pm d'être un peu modifié aléatoirement.
Ca ressemble à un pas au hasard dans la campagne.
Dépend du codage. Pour tétris, on choisira de permuter deux pièces ou de changer un numéro d'insertion.
MutationMutation
11 110 143 4 107 36F7
=
11 110 143 4 107 36F7
=
11 110 1422 4 107 36F'11
=
11 110 143 410 7 36F'3
=
Ou
Crossing-overCrossing-over
C'est ce qui différencie les algorithmes génétiques du reste de la recherche opérationnelle.
Crossing-overCrossing-over
On fait des couples dans la population.
Les couples d'échangent des morceaux de chromosomes à chaque génération, avec une probabilité pc
Codage et Crossing-over doivent rendre compte du fait qu'on peut assembler des morceaux de solution.
Crossing-over pour tétrisCrossing-over pour tétris
Pour un des partenaires du couple, on définit un morceau de chromosome.
On échange les pièces choisies avec l'autre partenaire.
Crossing-over pour tétrisCrossing-over pour tétris
11 110 143 4 107 36F7
=
4 8 3 598 12 131 11G5
=
Site de crossing-over
Crossing-over pour tétrisCrossing-over pour tétris
110 107 3
11 143 46
F7
=
4 8 3 598 12 131 11G5
=
Crossing-over pour tétrisCrossing-over pour tétris
110 107 3
11 143 46
F7
=
8 312 131
4 598 11
G5
= ?? ?? ?? ?? ??
Crossing-over pour tétrisCrossing-over pour tétris
110 107 3
11 143 46
F7
=
8 312 131
4 598 11
G5
=
Crossing-over pour tétrisCrossing-over pour tétris
110 107 3
11 143 46
F7
=
8 312 131
4 598 11
G5
=
Crossing-over pour tétrisCrossing-over pour tétris
110 107 3
11 143 46
F7
=
8 312 131
4 598 11
G'15
=
Crossing-over pour tétrisCrossing-over pour tétris
110 107 3
11 143 46
=
8 312 131
4 598 11
G'15
=
F7
Crossing-overCrossing-over
Si une solution est moyenne car elle résout une partie du problème…
… elle peut recevoir une partie complémentaire par crossing-over (recombinaison)
Le crossing-over peut aussi être destructif ! (mais il y aura des clones non altérés dans la population…)
Fitness sharingFitness sharing
Création de niches écologiques pour favoriser le diversité de la
population.
Fitness sharingFitness sharing
But : maintenir la diversité, lutter contre l'uniformisation de la reproduction.
Moyen : limiter les ressources...
Fitness sharingFitness sharing
On définit une fonction s de similarité génotypique sur les individus.– s(A,B)=1 si A=B– s(A,B)=0 si A très différent de B– s(A,B)=.5 si A et B se ressemblent
moyennement,– ...
Fitness sharingFitness sharing
Avant la reproduction, on divise les fitness de A par la somme des s(A,I), pour tous les individus I de la population.
S'il y a n clones de A, la fitness de chacuns d'eux est divisée par n, l'union ne fait plus la force.
Fitness sharingFitness sharing
Interprétation : la fitness accordée à une solution est une ressource finie, les solutions identiques se la partagent.
C'est comme si les devait se partager la qualité de réception.
Programmation génétiqueProgrammation génétique
Programmation génétiqueProgrammation génétique
On n'évolue pas le code qui décrit l'individu, mais un programme, à partir duquel il se construit. C'est sur l'individu construit qu'on évalue la fitness.
C'est ce qu'on a fait ici. Exemple : Frédéric Gruau, 1995
DiscussionDiscussion
Liens avec la biologie ?
Effet Baldwin ?
Catastrophes évolutionistes ?
Top Related