Sunteți pe pagina 1din 16

Universit Paul Sabatier - ENSEEIHT

Option Mthodes dOptimisation

Rapport de projet

Algorithmes gntiques
Nadia Selmani
Table des matires
1 Introduction 3

2 Principe 4

3 Mise en uvre 6
3.1 Codage des donnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.1 Codage binaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2 Codage caractres multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 valuation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Slection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.1 Roue de la fortune . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3.2 N/2 litisme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.4 Slection par tournoi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.5 Croisement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.6 Mutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.7 Critre darrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4 Rsultats - tude de la convergence 11


4.1 Rsultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Influence de la taille de la population . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 Influence de la mutation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

5 Conclusion 14

1
One general law, leading to the advancement of all organic beings, namely, multiply, vary,
let the strongest live and the weakest die.
Charles Darwin - The Origin of Species[6]

2
1 Introduction
Les algorithmes gntiques sont des algorithmes permettant de rsoudre des problmes dopti-
misation. Ils sont particulirement utiliss lorsque lon souhaite obtenir de bonnes solutions, pas
ncessairement optimales donc, assez vite.
Ils furent dvelopps pour la premire fois dans les annes 60 au sein de lUniversit du Michigan
par J. Holland ([1]) et ses collgues.
Ces algorithmes se basent sur la thorie darwinienne de lvolution : les organismes vivant
changent constamment, les plus adapts leur environnement survivent, les autres disparaissent.
les espces actuelles peuvent donc tre vues comme des "versions optimises" de leurs anctres. Si
ces mthodes ont connu au dpart un succs timide, elles ont t popularises aux tats-Unis la
fin des annes 80, et au dbut des annes 90 en Europe au travers des travaux de D. Goldberg([3]) et
de J.-M Alliot ([4]).
Aujourdhui, les algorithmes gntiques sont utiliss pour rsoudre des problmes doptimisa-
tion de forme, en aronautique par exemple.
Ainsi, afin doptimiser la forme des ailes de ses avions, Airbus donne un algorithme gntique
une population initiale de formes a priori intressantes, effectue une simulation dont le critre de
fin est une limite temporelle et optimise par la suite lun des rsultats finaux par dautres mthodes
plus prcises et mathmatiquement trs bien dfinies.
Ils sont galement utiliss en statistique dcisionnelle, au sein dentreprises cherchant maximi-
ser leurs rsultats tout en minimisant les cots. Ils ont de plus donn naissance la programmation
gntique, prlude probable lIntelligence Artificielle, puisquil sagit dapprendre un programme
en optimiser dautres.
Cette mthode a ses avantages et ses inconvnients, qui seront prsents par la suite.
N.B. : Le prsent rapport a pour vocation de prsenter le principe et les diffrentes mthodes
dimplmentation dun algorithme gntique simple. Les lments mathmatiques ayant trait la
convergence de la mthode, demandant un certain niveau en thorie des schmas, ne seront pas
explicits. SI toutefois le lecteur souhaite en savoir plus, la page de J.-M. Alliot et ses rfrences
constituent une bonne introduction ([2]).

3
2 Principe
Rappelons tout dabord brivement les diffrentes tapes de lvolution gntique dune popu-
lation.
Considrons un ensemble dindividus, la population donc. Initialement, ces individus prsentent
certaines caractristiques, les gnes. Lensemble des gnes dun individu est appel le gnotype.
La premire tape est la slection : seuls les individus les mieux adapts leur environnement
peuvent se reproduire, et donc transmettre une partie de leurs "meilleurs" gnes la gnration
suivante.
Lorsque deux individus se reproduisent, leurs gnes sont croiss dans les cellules de lenfant,
cest--dire que certaines allles de lindividu A se combinent avec dautres allles de lindividu B
pour former de nouveaux gnes. On appelle ce phnomne un brassage gntique. Il existe deux
types de brassages : les brassages interchromosomiques et les brassages intrachromosomiques. Ces
deux notions sont dveloppes en annexe.
A ce premier facteur de diversit sajoute la possibilit dune mutation de certains gnes. Gn-
ralement, la probabilit dune mutation est trs faible, mais ce phnomne doit tre pris en compte
pour obtenir un algorithme complet.
Lenfant issu des individus A et B a donc un gnotype diffrent de celui de ses parents.
Suite cette reproduction, on obtient une nouvelle gnration dindividus, qui devient la nou-
velle population initiale. Les trois tapes de slection, croisement et mutation sont nouveau opres
pour obtenir une nouvelle gnration, et lon ritre le processus un grand nombre de fois, puisque
la slection naturelle se fait sur un temps long.

Cest ce principe-mme, rsum dans la figure (1) qui est retranscrit dans les algorithmes gn-
tiques, avec de lgres variations lies notamment aux contraintes informatiques. En effet, la taille
de la population ne peut tre ni croissante pour des raisons de cot en temps, ni dcroissante, car
mesure que le nombre dindividus diminue, des solutions potentiellement optimales peuvent
disparatre.

4
Figure 1 Schma simplifi du principe de fonctionnement dun algorithme gntique

5
3 Mise en uvre
Il existe, chaque tape, plusieurs faons de mettre en uvre un algorithme gntique. Nous ne
prsenterons ici que les plus frquemment utilises.
On notera dans toute cette partie N le nombre dindividus formant la population.

3.1 Codage des donnes


3.1.1 Codage binaire
La premire faon de procder, trs gnrale, consiste coder les caractristiques de la population
en bits, cest--dire en une succession de 8 nombres entiers, 0 ou 1. Ds lors, toutes les oprations
prcdemment exposes se font sur ces bits.
Ainsi, si la population initiale est composes de nombres compris entre 0 et 1 par exemple, on
multiplie la valeur de chaque individu par 28 et lon transcrit la partie entire de ces nouveaux
nombres de la base dcimale la base binaire.
Ainsi, si x = 0.65, alors x 28 = 166 et 166 scrit en binaire 10100110.
On peut galement transcrire les caractristiques de la population laide de boolens, en
postulant que si lindividu n a la caractristique 3, par exemple, alors le troisime chiffre du bit le
reprsentant sera un 1 (un 0 sil ne la pas).
On peut galement dcider quune squence de bits, soit un gne dans la terminologie appro-
prie, reprsente une variable doptimisation. Ces gnes ne devront alors pas tre "casss" lors des
oprations suivantes.
Cette manire de coder prsente lavantage indniable de la gnralit. En effet, la nature mme
du problme initial sefface ds lors que la population initiale a t "traduite" en bits. Toutes les
oprations suivantes, de slection, reproduction, croisement et mutation peuvent se faire de la
mme manire quel que soit le problme original.
Linconvnient de cette faon de faire est galement sa gnralit. Les caractristiques dune
population et les contraintes du problme ne sont pas toujours simples traduire en binaire. De
plus, une fois la population finale obtenue, il peut tre difficile dinterprter les modifications quelle
a subie, et parfois, si les contraintes ont mal t spcifies, cette population peut mme ne pas tre
solution du problme.
Cest toutefois la mthode qui a t implmente dans le programme ci-joint.

3.1.2 Codage caractres multiples


Cette faon de coder les donnes a tendance se rpandre aujourdhui, du fait de son caractre
"naturel", mais souffre, au contraire de la mthode prcdente, de son manque de gnralit. Ainsi,
chaque problme correspond un nouvel algorithme.
Toutefois, cette faon de procder permet dviter les phases de transcription des donnes en
bits et vice versa.
J. Holland avait prouv que le codage binaire tait toujours plus efficace que le codage caractres
multiples, mais cette preuve est aujourdhui rfute par certains, do le dveloppement de ce codage
alternatif.

6
3.2 valuation
Cest l la partie la plus complexe et la plus coteuse en temps de calcul dun algorithme
gntique.
En effet, avant de slectionner les individus, il est ncessaire dvaluer leur adaptation au
problme considr.
Pour cela, on dfinit pour chaque problme une fonction dadaptation, ou "fitness" F(x), qui
mesure le niveau dadaptation de chaque individu au problme doptimisation. En gnral, on
cherche faire en sorte que F(x) vaille 1 si lindividu est parfaitement adapt, 0 si il est parfaitement
inadapt([2]).
Cette fonction est appele plusieurs fois, avant la slection pour valuer les individus de la
population-parent, et aprs la mutation, pour valuer la population-enfant et mesurer son adaptation
au problme, et ce, chaque itration.
Dans le programme en annexe, la fonction dadaptation est exactement la fonction que lon
cherche maximiser, puisque cette dernire varie entre 0 et 1 sur lintervalle [0,1[. Toutefois, en
gnral, ces fonctions sont bien plus complexes.
Cest cette valuation qui donne la probabilit de slection dun individu p(i), telle que :

F (xi )
p(i) = Pn i [1, n] (1)
i=1 F (xi )

3.3 Slection
3.3.1 Roue de la fortune
Il sagit de la mthode de slection la plus employe, et de celle qui a t mise en uvre dans le
programme ci-joint.
Le principe est simple : chaque individu correspond une probabilit dtre slectionn, lie
son adaptation au problme. On place ces individus sur une "roue de la fortune" biaise imaginaire,
sur laquelle chaque individu occupe une place proportionnelle son adaptation. Ceci correspond
aux probabilits cumules pour chaque individu dans lordre dans lequel ils ont t rangs. On tire
ensuite alatoirement N/2 nombres compris entre 0 et 1 et les individus dont la probabilit cumule
se rapproche le plus des nombres tirs sont copis dans la nouvelle gnration. Les individus les
mieux adapts, occupant une place plus importante sur cette roue de la fortune, ont donc plus de
chances dtres tirs au sort que les moins adapts.
Ce principe, rsum dans la figure (2), permet dobtenir une population slectionne bien adapte
au problme, tout en gardant une certaine diversit gntique, puisque le hasard entre en jeu([7]).

3.3.2 N/2 litisme


Il sagit ici de ne slectionner que les N/2 individus les mieux adapts au problme. Le hasard
nentrant absolument pas en jeu, cette mthode permet une convergence rapide, mais elle a le dfaut
de limiter fortement la diversit gntique, or, rien ne prdit quun individu mal adapt, aprs
reproduction, croisement et mutation, ne peut donner un individu plus "acceptable".

7
Figure 2 Principe de fonctionnement de la roue de la fortune biaise

En gnral, il est donc plutt dusage de remplacer automatiquement un petit nombre dindividus
slectionns, choisis alatoirement, par le mme nombre dindividus les mieux adapts de la
population-parent. Ceci permet la fois dacclrer la convergence tout en maintenant une pression
de slection raisonnable.

3.4 Slection par tournoi


Cette mthode de slection consiste choisir alatoirement 2 individus, comparer leur niveau
dadaptation et ne garder que le meilleur des deux, jusqu ce que lon ai une nouvelle population
de N/2 individus. Ce type de slection est peu utilis.

3.5 Croisement
Il convient tout dabord de spcifier le pourcentage de la nouvelle population qui sera crois. Si
le croisement seffectue moins de 100%, ce ne sont pas N/2 individus qui constitueront la nouvelle
population, mais N, dont certains seront croiss, soit avec des individus de la population initiale,
soit entre eux, et dautres non.
Ensuite, deux cas se prsentent :
soit il existe des gnes ne devant pas tre casss, et donc cette structure initiale doit tre
prserve au cours du croisement ;
soit chaque bit reprsente une information diffrente, auquel cas le croisement peut seffectuer
partir de nimporte quel locus.
Le second cas est celui dvelopp dans le programme.
Deux points restent prsent en suspens : Quels individus seront croiss ensemble ? O seffec-
tuera ce croisement ?
Ces deux questions sont rgles en tirant alatoirement deux nombres, un pour lindividu et un
pour le locus, selon lalgorithme suivant :

8
On dfinit tout dabord le nombre dindividus croiser :

ncross = floor(N*pourcentage de croisement)

Puis, dans une boucle sur ces ncross individus :

Faire de i= 1 ncross

Tirage alatoire des deux nombres

cross1 = rand(0)
cross2 = rand(0)

Slection des individus pour lesquels le croisement seffectue

k = floor((N-1)*cross1)

Slection des allles changer

l = floor(7*cross2)

Brassage

Faire de j=7 l par pas de -1

Llment k slectionn de la population intermdiaire reoit les allles 7 l, de la droite vers la


gauche de llment k de la population initiale

uint (k, j) = u(k, j)

Fin faire
Fin faire

3.6 Mutation
La mutation est un phnomne assez rare, mais qui doit tout de mme tre pris en compte.
Limplmentation est trs similaire celle du croisement, except le fait que le seul allle slec-
tionn ne soit pas chang mais transform en 1 sil vaut 0 et vice versa.
La probabilit de mutation est assez faible, gnralement comprise entre 0.1% et 1%.
La mutation permet, pour une population assez grande, dviter une convergence prmature :
en effet, elle change au moins le gnotype dun individu, mme ponctuellement, ce qui relance
entirement le processus.

9
Il a galement t prouv que loprateur de mutation, dans lanalyse mathmatique du problme,
tait fondamental pour la convergence vers un optimum global.
Ces deux dernires tapes sont illustres sur la figure (3).

Figure 3 Analogie entre la biologie et lalgorithmique dans le cas du croisement et de la mutation

3.7 Critre darrt


Gnralement, le critre darrt choisi lest en fonction du temps de calcul : les algorithmes
gntiques nont pas vocation trouver la solution optimale, mais un ensemble de "meilleures
solutions possibles" en un temps limit([5]).
Ici, le critre darrt est diffrent. Il est dfini tel que lcart entre la valeur maximale de la
fonction dvaluation et la moyenne des valeurs que prend celle-ci sur lensemble de la population
soit infrieur un   1. Cela signifie que les valeurs prises par la fonction oscillent trs peu autour
de sa valeur maximale, donc de lindividu le plus adapt. Cest donc que lalgorithme a converg
vers une population adapte de manire optimale au problme.

10
4 Rsultats - tude de la convergence
4.1 Rsultats
Nous avons considr le problme doptimisation suivant ([2])
Maximiser f(x) = 4x(1-x) sur lintervalle [0,1[.
Ce problme admet une solution analytique simple en x=0.5.
Le but de ce projet tait de vrifier quune population de nombres alatoires compris entre 0
et 1 pouvaient effectivement converger vers la solution connue en suivant simplement les lois de
lvolution naturelle.
Pour une population assez grande, on obtient bel et bien une convergence, et ce, mme pour des
prcisions assez grandes (de lordre de 106 ).

Figure 4 Distribution de la population linstant initial

Figure 5 Distribution de la population linstant final

La comparaison entre les graphes (4) et (5) montre bien que la distribution alatoire initiale,

11
pour une population de 400 individus ici, a converg vers 2 possibilits doptimum, toutes deux trs
proches du maximum effectif.
Lerreur commise par lalgorithme est de 0.78% pour le rsultats le plus proche, et de 1.6% pour
le plus loign, ce qui dnote dun trs bon accord entre loptimum "naturel" et loptimum rel.
Cet algorithme est donc efficace.

4.2 Influence de la taille de la population


La thorie prdit que le temps de calcul de lalgorithme crot en nln(n). On constate ici que,
pour une prcision de 106 , si la population est trop faible, lalgorithme est trs lent, et ne converge
ventuellement pas. Entre 100 et 800 individus, lalgorithme converge, mais avec une variation de
temps de calcul inattendue.
En effet, lalgorithme effectue 14 fois plus ditrations pour 100 individus que pour 800 : le temps
de calcul semble dcrotre fortement mesure que la population augmente. Mais si lon pousse
1600 individus, il a tendance stagner : mme si la population tend vers la "bonne" solution, la
prcision demande nest pas atteinte en un temps acceptable.
Ces rsultats sont rsums dans le tableau ci-dessous :

N Nombre ditrations
50 non-convergence
100 12 115
200 2843
400 504
800 863
1600 non-convergence

4.3 Influence de la mutation


Pour un nombre dindividus fix 400, le pourcentage de mutations a t modifi.
Pour des pourcentages infrieurs 3.103 , on constate que lchantillon de population est trop
faible pour que la mutation ait un effet : lalgorithme converge donc toujours la mme vitesse.
Pour des pourcentages suprieurs, deux phnomnes se dgagent :
soit lalgorithme converge plus vite vers des valeurs un peu mois bonnes, 1/2% de la valeur
exacte cette fois-ci (voir figure (6) ;
soit il converge beaucoup plus lentement.
Ces rsultats sont regroups dans le tableau ci-dessous :

Pourcentage de mutation Nombre ditrations


0.1% 504
1% 504
2% 504
3% 90
4% 90
5% 300 727

12
Figure 6 Distribution de population linstant final avec mutation effective

La lenteur de la convergence quand la mutation est effective et augmente sexplique par le fait
que cette dernire relance ponctuellement le processus en permettant un ou plusieurs individus,
celui ou ceux qui ont mut, de sloigner de la zone dans laquelle lalgorithme commenait se
focaliser.
La mutation permet donc lalgorithme de revisiter des zones de son domaine de recherche
afin dtre sr quil na pas manqu un individu intressant lors de ses premires itrations.
Cette opration est donc, comme vu prcdemment, la fois essentielle et coteuse en temps.

13
5 Conclusion
Nous lavons vu, un algorithme gntique peut-tre un algorithme trs efficace pour dterminer
un panel de solutions potentiellement optimales, qui peuvent par la suite tre affines par dautres
mthodes doptimisation.
Lavantage, et linconvnient, de ce type dalgorithmes, est quil cherche une solution " laveugle",
au contraire de mthodes comme le gradient conjugu. Ceci peut faire perdre beaucoup de temps,
mais galement rvler des alternatives intressantes et inattendues. Toutefois, il est possible de
combiner plusieurs algorithmes afin de donner une direction privilgie cette mthode de slection.
Les algorithmes gntiques sont donc une mthode doptimisation intressante et tendent
montrer ce que C. Darwin avait compris il y a 150 ans : le hasard fait bien les choses.

14
Rfrences
[1] Adaptation In Natural And Artificial Systems. J. H. Holland, 1975.
[2] J.-M. Alliot. Algorithmes volutionnaires. 2011. url : http://www.alliot.fr/fgenetic.html.
fr.
[3] Genetic Algorithms in Search, Optimization, and Machine Learning. D. Goldberg, 1989.
[4] Intelligence Artificielle et Informatique Thorique. J.-M. Alliot et T. Schiex, 1993.
[5] V. Magnin. Optimisation et Algorithmes Gntiques. 2008. url : http://magnin.plil.net/spip.
php?rubrique8.
[6] The Origin of Species. C. Darwin, 1859.
[7] S. Tollari. Algorithmes gntiques. 2003. url : http://sis.univ- tln.fr/~tollari/TER/
AlgoGen1/node5.html.

15

S-ar putea să vă placă și