Cours Contrˆole Avanc´e
Partie Algorithmes G´en´etiques
Ecole Centrale Paris
S´eance 1 : Pure random search et (1+1)-EA sur Ω = {0,1}n
Anne Auger, [email protected]
http://www.lri.fr/˜auger/
Recherche al´eatoire simple (PRS, en anglais Pure Random Search)
Le premier algorithme d’optimisation stochastique introduit avant que les algorithmes g´en´etiques (GA),
strat´egies d’´evolutions (ES) soient introduits est une recherche al´eatoire simple qui consiste `a tirer des
points au hasard, uniform´ement dans l’espace de recherche et sauvegarder la meilleure solution obtenue.
Les papiers historiques proposant l’utilsation de Pure RS comme m´ethode d’optimisation:
?S.H. Brooks , Discussion of random methods for locating surface maxima. Opera-
tions Research 6 (1958), pp. 244–251.
?Rastrigin, L.A. The convergence of the random search method in the extremal
control of a many-parameter system, Automation and Remote Control 24 (1963),
pp. 1337-1342.
Nous allons implanter un algorithme PRS dans le cadre de la maximisation de la fonction Onemax, fonction
d´efinie sur un espace de chaˆınes de bits, Ω = {0,1}n.
Exemple 1 Pour x∈ {0,1}n, la fonction Onemax est d´efinie par
fOnemax(x) =
n
X
i=1
xi
1. Quelle est l’optimum de la fonction (on maximise)? Que vaut la valeur de fOnemax `a l’optimum?
2. Ecrire une fonction Matlab onemax.m qui prend en argument une chaˆıne de bit xet retourne la
valeur fOnemax(x). (Fonction matlab utile sum).
3. Ecrire une fonction Matlab pureRS.m qui prend en argument la taille de l’espace de recherche net
retourne le nombre d’´evaluations n´ecessaires pour atteindre l’optimum, ainsi qu’un vecteur fitness
de taille nombre total d’´evaluations et dont la coordonn´ee “i” repr´esente la meilleur valeur trouv´ee
jusqu’`a l’it´eration i(pour ´echantillonner uniform´ement on pourra utiliser les instructions rand et
round).
4 Tracer l’´evolution de la fitness en fonction du nombre d’´evaluations pour deux runs ind´ependants
de l’algorithme. Que constatez vous? (instructions matlab utiles: plot,hold on)
5 Ecrire un script RunningTime.m pour tracer pour n= 1:2:14 l’esperance et l’esperance ±l’´ecart-type
(empiriques) du temps moyen d’atteinte de l’optimum ainsi que l’´ecart type (on moyennera sur 11
runs ind´ependants de l’algorithme).
Note: le temps d’atteinte de l’optimum est mesur´e en comptant le nombre d’´evaluations de la fonction
objectif avant d’atteindre l’optimum. En effet, les op´erations internes de l’algorithme sont en g´en´eral
n´egligeables par rapport au coˆut de la fonction objectif: de l’ordre de la seconde, minute voire heure pour
des grosses applications industrielles.
6 Calculer th´eoriquement ce temps moyen en fonction de net comparer avec le r´esultat empirique.
(Indication: montrer que le temps d’atteinte de l’optimum suit une loi g´eom´etrique de param`etre `a
d´eterminer).
(1+1)-EA
Nous allons maintenant implanter un algorithme ´evolutionnaire tout simple le (1 + 1)-EA: la population
est r´eduite `a un seul individu. L’unique parent (le premier 1 dans la notation (1+1)) mute pour donner
un enfant (le deuxi`eme 1 dans la notation (1+1)). Le meilleur parmi l’enfant et le parent est gard´e pour
la g´en´eration suivante (symbolis´e par “+” dans la notation (1+1)). La mutation utilis´ee est une mutation
bit-flip ou chaque bit du parent est chang´e avec probabilit´e 1/n (et reste donc inchang´e avec probabilit´e
11/n).
7 Reprendre les ´etapes 3, 4, 5 pour le (1 + 1)-EA.
8 La complexit´e th´eorique de l’esp´erance du temps d’atteinte de l’optimum est Θ(nlog n)1. Comparer
avec le r´esultat obtenu empiriquement. Donner une id´ee pour la preuve th´eorique pour la borne
sup´erieure en nlog n.
9 Expliquer les differences obtenues entre le Pure RS et le (1 + 1)-EA.
On consid`ere maintenant la fonction Needle in the Haystack d´efinie par:
Exemple 2 Pour x∈ {0,1}n, la fonction Needle in the haystack est d´efinie par
fNH(x) = 1 si x= (1, . . . , 1)
= 0 sinon
10 Quelles vont ˆetre les performances du pure RS et du (1 + 1)-EA sur la fonction fNH commenter les
diff´erences par rapport `a la fonction fOnemax .
1Rappel: f(n)Θ(g(n)) si k1, k2,|g(n)| · k1≤ |f(n)| ≤ |g(n)| · k2
2
1 / 2 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 !