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{t∈N, 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