Cours Contrˆole Avanc´e
Partie Algorithmes G´en´etiques
Ecole Centrale Paris
El´ements de correction
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 ´evolutionnaire, introduit avant que les algorithmes g´en´etiques, strat´egies d’´evolution
(et AEs) 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?
optimum = (1,1, . . . , 1); f(optimum) = n
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).
function f=onemax(x)
f=sum(x);
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).
Attention: pour un mˆeme point x, n’appeler qu’une seule fois fOnemax(x). Le but du jeu est de
maximiser la fonction en un minimum d’appels `a la fonction objectif qui represente ce qui est
“cher” `a calculer (cf Note plus bas).
function [neval fitness]=pureRS(n)
X1=round(rand(n,1));
fbest=fonemax(X1);
t=1;
fitness=[fbest];
while fbest<n
Xt=round(rand(n,1));
fXt=fonemax(Xt);
t=t+1;
if fXt >=fbest
fbest=fXt;
end
fitness=[fitness fbest];
end
neval=t;
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 pour 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).
Le temps d’atteinte de l’optimum est d´efini math´ematiquement par T= inf{tN, Xt= (1, . . . , 1)}
o`u Xtest le nouveau point ´echantillonn´e uniform´ement `a chaque it´eration (cf pureRS.m). Pour
chaque t,P(Xt= (1, . . . , 1)) = 1
2net les vecteurs al´eatoires Xtsont independants. Ainsi Tsuit une
loi g´eom´etrique de param`etre p=1
2net donc E(T) = 1
p= 2n.
(1+1)-EA
On va maintenant implanter un algorithme (1 + 1)-EA: la population est r´eduite `a un seul individu.
L’unique parent mute pour donner un enfant. Le meilleur parmi l’enfant et le parent est gard´e pour la
g´en´eration suivante. 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 1 1/n).
7 Reprendre les ´etapes 3, 4, 5 pour le (1 + 1)-EA.
2
function [neval fitness]=OnePlusOne(n)
Xparent=round(rand(n,1));
fparent=fonemax(Xparent);
neval=1;
fitness=[fparent];
while fparent<n
for i=1:n
change = rand<1/n;
Xoffspring(i)=(1-change)*Xparent(i)+(1-Xparent(i))*change;
end
foffspring=fonemax(Xoffspring);
neval=neval+1;
if foffspring >=fparent
fparent=foffspring;
Xparent=Xoffspring;
end
fitness=[fitness fparent];
end
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.Cf transparents de cours.
9 Expliquer les diff´erences obtenues entre le Pure RS et le (1 + 1)-EA.
Etant donn´e une probabilit´e pde muter chaque bit, le nombre de bits mut´es suit une loi binomiale
de param`etres net p. En moyenne le nombre de bits mut´es est donc de np (esperance d’un loi
binomiale (n, p)). Ainsi pour le (1+1)-EA, seulement 1 bit est mut´e en moyenne: les enfants cr´e´es
avec le (1+1)-EA et probabilit´e de mutation de 1/n sont dans un voisinage2proche du parent. Ainsi,
contrairement au Pure RS qui ´echantillonne de la mˆeme mani`ere (uniform´ement) `a chaque it´eration,
i.e., ind´ependamment du parent (l’algorithme est aveugle), le (1+1)-EA exploite la structure locale
de la fonction en echantillonnant au voisinage du parent pour trouver des meilleures solutions. Ceci
permet au (1+1)-EA de trouver l’optimum en Θ(nlog n) iterations alors que le Pure RS a besoin
d’un nombre exponentiel d’it´erations.
On consid`ere maintenant la fonction Needle in the Haystack 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 .
Cette fois-ci, la fonction n’a pas une structure particuli`ere qui peut ˆetre exploit´ee par l’algorithme (1+1)-
EA et on s’attend donc `a ce que les performances du (1+1)-EA ne soient pas meilleures que celles du
Pure RS.
1Rappel: f(n)Θ(g(n)) si k1, k2,|g(n)| · k1≤ |f(n)| ≤ |g(n)| · k2
2Le voisinage d’un point peut ˆetre formellement d´efini avec la distance de Hamming.
3
1 / 3 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 !