Projet d’optimisation
Introduction aux algorithmes génétiques
Thibault XAVIER
November 13, 2015
Contents
1 Notions générales et hérédité 3
1.1 Principegénéral ......................... 3
1.2 Lastratégie"1+1" ........................ 3
2 Construction d’un algorithme génétique 6
2.1 Nouvelexemple.......................... 6
2.2 Création et évaluation de la population . . . . . . . . . . . . 7
2.3 Formation des paires . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Croisement, itération et algorithme . . . . . . . . . . . . . . . 9
3 Analyse des résultats et améliorations 11
3.1 Premiertest............................ 11
3.2 Performance de l’algorithme et prévision. . . . . . . . . . . . 12
3.3 Possibilités et champs d’application. . . . . . . . . . . . . . . 15
1
Introduction
Face à des problèmes d’optimisation, plusieurs méthodes numériques ont été
évoquées en cours. Si des résolutions par des méthodes «mathématiques»
(du type gradient conjugué) sont possibles, elles ne sont pas toujours adap-
tées et efficaces pour tous les problèmes. Comment alors peut-on procéder
différemment à une optimisation? Dans les années 50, un groupe de scien-
tifique de l’université du Michigan découvre qu’une réponse peut se trouver
devant nos yeux: la nature. En effet, la nature exprime à elle seule une opti-
misation permanente: les espèces qui vivent aujourd’hui sont celles qui sont
les plus adaptées à leur milieu. Les individus se reproduisent, leur génome
subit des mutations qui leur sont favorables ou pas, puis la sélection na-
turelle fait son office pour nous présenter, après des millions de générations,
cette «solution» qu’est l’ensemble du monde vivant.
De cette observation sont nés les algorithmes génétiques, qui exploitent
exactement le même principe. Une optimisation multi-critères, procédant
par itération, avec mutations et sélection (le vocabulaire de la biologie est
conservé). L’objectif de ce rapport est de faire une introduction à ce type
d’algorithme, d’en présenter les intérêts, et de s’essayer à l’écriture d’un
programme.
Charles Darwin “Quand je pense à mes adorables orchidées, avec leurs
cinq commencements d’anthères, avec leur unique pistil transformé en ros-
tellum, avec toute la cohésion de leurs parties, il me semble incroyablement
monstrueux de regarder une orchidée comme si elle avait été créée telle que
nous la voyons aujourd’hui.
2
Chapter 1
Notions générales et hérédité
1.1 Principe général
Comme énoncé en introduction, le principe d’algorithme génétique s’appuie
sur ce qui est à œuvre dans la nature. Des individus d’une population
s’accouplent, et leurs enfants possèdent un patrimoine génétique issu de leurs
deux parents (héritage). Il peut également survenir un certain nombre
de mutations, aléatoires. Enfin, une sélection est faite sur la nouvelle
génération selon un ou plusieurs critères. L’ensemble du processus est un
processus d’évolution
1.2 La stratégie "1+1"
Commençons par présenter une première stratégie d’évolution, appelée «stratégie
d’évolution 1+1». Cette méthode exploite le concept d’héritage depuis un
parent et de mutation. Un individu parent possède un certain patrimoine
génétique qu’il va transmettre à son enfant, mais chaque gène va subir une
petite mutation aléatoire. On évalue alors la «performance» de l’enfant par
rapport à un ou plusieurs critère. S’il est meilleur que le parent, il survit,
sinon, on revient au parent. De générations en générations, on espère alors
converger vers un individu «optimal» vis à vis des critères fixés.
Appliquons ceci à la minimisation d’une fonction de plusieurs variables
très simple
f=x2+y2+z2(1.1)
dont le minimum 0 est obtenu en (0,0,0)
Nous partons d’un parent [2,3,4], et nous allons créer le premier individu
en procédant à des mutations. Ces mutations sont symbolisés par un tirage
aléatoire de x,y,z d’après une loi normale centrée sur [2,3,4] et de variance
varx,vary,varz qui vont représenter l’amplitude des mutations.
3
Figure 1.1: Tirage proche de l’optimum
On regarde ensuite si l’enfant est plus performant que son parent: si
c’est le cas, on se basera sur lui pour procéder à la génération suivante (c’est
l’étape de sélection).
f(Xchild) < f(Xparent) ?
Le script matlab est fourni en annexe. Le lecteur est invité à le faire
tourner en changeant les données utilisateurs (amplitude des mutations, par-
ent initial et nombre de générations).
On peut faire quelques commentaires sur les résultats donnés par le code.
Le résultat converge vers la solution, mais est sensible à la présence
de minima locaux (ce qui n’est pas le cas pour la fonction choisie,
mais évident d’après la construction de l’algorithme). Pour palier à ce
problème, on peut prendre plusieurs parents initiaux, mais il ne sera
jamais garanti d’avoir atteint le minimum global.
La finesse du résultat obtenu, ainsi que la vitesse de convergence,
dépend du nombre d’itération et de la variance choisie. Au début du
calcul, on améliore le résultat très régulièrement (si le parent initial est
loin de l’optimum), mais petit à petit, la fréquence des améliorations
diminue. En effet proche de l’optimum, il y a peu de chance que le
nouveau tirage soit meilleur, comme l’illustre la Figure 1.1:
4
1 / 17 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !