Algorithmes génétiques David E. Goldberg, Genetic algorithms in Search, Optimization and Machine Learning, Addison-Wesley, 1989
Téléphoner à la campagne
Téléphoner à la campagne
Téléphoner à la campagne
Téléphoner à la campagne
Téléphoner à la campagne
Téléphoner à la campagne maximum... …local !
Recherche opérationnelle Quelques définitions
Définition d'un problème Fitness (à optimiser) "La" solution Espace des solutions
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 ?
Conflit exlporation / exploitation Résolution ? Risquer l'exploration d'une solution tirée au hasard ? Améliorer les solutions connues ? Conflit exlporation / exploitation
Tout 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 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é 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é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...
Par une approche évolutionniste Jouer à tétris ! Par une approche évolutionniste
Le problème à résoudre "Lâcher" les pièces (tétris) et faire une forme compacte. Problème de placement.
Fitness Elle définit le problème à résoudre. On a le choix ! 12
Codage 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 solution Insertion d'une pièce : on numérote les possibilités. Ex : pour 1 11 12 2 3 18 10
Codage d'une solution Insertion d'une pièce : on numérote les possibilités. 18 30 26 32 14 8 16 34 9
Choisir une solution au hasard 18 30 26 32 14 8 16 34 9 10 3 29 14 7 2 27 13 1 Taille de l'espace des solutions : (12...10) 343016981432263018 = 26820125487267840000 Les compter à 2GHz, ça prend environs 425 ans !
Population
Individu Une solution possible est appelée un individu. Il a : 11 1 10 14 3 4 7 6 12 Un code Génotype / Chromosome Fitness Phénotype Une valeur Un "aspect"
Individu Génotype Phénotype Fitness
Population On se donne une foule d'individus pour explorer l'espace des solutions… … mais leur nombre reste ridiculement petit.
Reproduction / Sélection
Reproduction/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élection Génération n A 9 B 2 C 4 D E 1 F 7 G 3 H F 7 D 9 A 9 D 9 B 2 A 9 A 9 G 3 Génération n+1 Génération n+2 D 9 A G 3 Génération n+3 D 9 A
Reproduction/sélection Tendance à l'uniformité (clones du meilleur). Pas de création de solution nouvelle.
Mutation
Mutation 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.
Mutation 11 1 10 14 3 4 7 6 F = 11 1 10 14 3 4 7 6 F' = Ou 11 1 10 14 3 4 7 6 F = 11 1 10 14 22 4 7 3 6 F' =
Crossing-over C'est ce qui différencie les algorithmes génétiques du reste de la recherche opérationnelle.
Crossing-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é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étris Site de crossing-over 11 1 10 14 3 4 7 6 F = 12 9 G 5 8 3 1 13 11 5 = 4 8
Crossing-over pour tétris 11 14 3 4 6 10 F 7 10 7 3 = 1 12 9 G 5 8 3 1 13 11 5 = 4 8
Crossing-over pour tétris 11 14 3 4 6 10 F 7 10 7 3 = 1 12 ? ? G 5 3 ? 1 13 ? ? = 8 4 5 9 8 11
Crossing-over pour tétris 11 14 3 4 6 10 F 7 10 7 3 = 1 12 G 5 3 1 13 = 8 4 5 9 8 11
Crossing-over pour tétris 10 F 7 10 7 3 = 1 11 14 3 4 6 12 G 5 3 1 13 = 8 4 5 9 8 11
Crossing-over pour tétris 10 F 7 10 7 3 = 1 11 14 3 4 6 12 G' 15 3 1 13 = 8 4 5 9 8 11
Crossing-over pour tétris 4 5 9 8 11 10 F 7 10 7 3 = 1 11 14 3 4 6 12 G' 15 3 1 13 = 8
Crossing-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…)
Reproduction Crossing-over Mutation Résumé Reproduction Crossing-over Mutation
Fitness sharing Création de niches écologiques pour favoriser le diversité de la population.
Fitness sharing But : maintenir la diversité, lutter contre l'uniformisation de la reproduction. Moyen : limiter les ressources...
Fitness 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 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 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.
Fitness sharing 3 Sans partage 2
Fitness sharing 3 Avec partage Niches écologiques 2
Programmation génétique
Programmation 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
Liens avec la biologie ? Effet Baldwin ? Catastrophes évolutionistes ? Discussion Liens avec la biologie ? Effet Baldwin ? Catastrophes évolutionistes ?