Cours Contrôle Avancé Partie Algorithmes Génétiques

publicité
Cours Contrôle Avancé
Partie Algorithmes Génétiques
Ecole Centrale Paris
Séance 1 : Pure random search et (1+1)-EA sur Ω = {0, 1}n
Anne Auger, [email protected]
http://www.lri.fr/˜auger/
Recherche aléatoire simple (PRS, en anglais Pure Random Search)
Le premier algorithme d’optimisation stochastique introduit avant que les algorithmes génétiques (GA),
stratégies d’évolutions (ES) soient introduits est une recherche aléatoire simple qui consiste à tirer des
points au hasard, uniformément dans l’espace de recherche et sauvegarder la meilleure solution obtenue.
Les papiers historiques proposant l’utilsation de Pure RS comme méthode d’optimisation:
? S.H. Brooks , Discussion of random methods for locating surface maxima. Operations 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éfinie sur un espace de chaı̂nes de bits, Ω = {0, 1}n .
Exemple 1 Pour x ∈ {0, 1}n , la fonction Onemax est définie par
fOnemax (x) =
n
X
xi
i=1
1. Quelle est l’optimum de la fonction (on maximise)? Que vaut la valeur de fOnemax à l’optimum?
2. Ecrire une fonction Matlab onemax.m qui prend en argument une chaı̂ne de bit x et 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 n et
retourne le nombre d’évaluations nécessaires pour atteindre l’optimum, ainsi qu’un vecteur fitness
de taille nombre total d’évaluations et dont la coordonnée “i” représente la meilleur valeur trouvée
jusqu’à l’itération i (pour échantillonner uniformément on pourra utiliser les instructions rand et
round).
4 Tracer l’évolution de la fitness en fonction du nombre d’évaluations pour deux runs indépendants
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’écart-type
(empiriques) du temps moyen d’atteinte de l’optimum ainsi que l’écart type (on moyennera sur 11
runs indépendants de l’algorithme).
Note: le temps d’atteinte de l’optimum est mesuré en comptant le nombre d’évaluations de la fonction
objectif avant d’atteindre l’optimum. En effet, les opérations internes de l’algorithme sont en général
négligeables par rapport au coût de la fonction objectif: de l’ordre de la seconde, minute voire heure pour
des grosses applications industrielles.
6 Calculer théoriquement ce temps moyen en fonction de n et comparer avec le résultat empirique.
(Indication: montrer que le temps d’atteinte de l’optimum suit une loi géométrique de paramètre à
déterminer).
(1+1)-EA
Nous allons maintenant implanter un algorithme évolutionnaire tout simple le (1 + 1)-EA: la population
est réduite à un seul individu. L’unique parent (le premier 1 dans la notation (1+1)) mute pour donner
un enfant (le deuxième 1 dans la notation (1+1)). Le meilleur parmi l’enfant et le parent est gardé pour
la génération suivante (symbolisé par “+” dans la notation (1+1)). La mutation utilisée est une mutation
bit-flip ou chaque bit du parent est changé avec probabilité 1/n (et reste donc inchangé avec probabilité
1 − 1/n).
7 Reprendre les étapes 3, 4, 5 pour le (1 + 1)-EA.
8 La complexité théorique de l’espérance du temps d’atteinte de l’optimum est Θ(n log n)1 . Comparer
avec le résultat obtenu empiriquement. Donner une idée pour la preuve théorique pour la borne
supérieure en n log n.
9 Expliquer les differences obtenues entre le Pure RS et le (1 + 1)-EA.
On considère maintenant la fonction Needle in the Haystack définie par:
Exemple 2 Pour x ∈ {0, 1}n , la fonction Needle in the haystack est définie par
fNH (x) = 1 si x = (1, . . . , 1)
= 0 sinon
10 Quelles vont être les performances du pure RS et du (1 + 1)-EA sur la fonction fNH commenter les
différences par rapport à la fonction fOnemax .
1 Rappel:
f (n) ∈ Θ(g(n)) si ∃k1 , k2 , |g(n)| · k1 ≤ |f (n)| ≤ |g(n)| · k2
2
Téléchargement