01.01.2015 Views

Table des matières - Gilles Daniel

Table des matières - Gilles Daniel

Table des matières - Gilles Daniel

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

290 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société.<br />

Pour introduire la logique qui sous-tend un algorithme génétique, considérons le<br />

problème d’optimisation suivant. Supposons que nous cherchions le maximum<br />

global x* d’une fonction y = f(x) d’un vecteur x sur un domaine compact D. Pour<br />

rendre l’exemple intéressant, supposons que le graphe de cette fonction, c’est-à-dire<br />

le paysage que nous voulons explorer, soit compliqué dans le sens où il comprend<br />

entre autres de nombreux minima et maxima locaux et n’est pas toujours<br />

différentiable. Pour reprendre une image de Holland, faisons l’hypothèse qu’il ne<br />

consiste pas seulement de pics et de vallées, mais aussi de ponts, de tunnels, et<br />

autres structures complexes. Si le domaine D est compact, il est nécessaire de le<br />

discrétiser afin de pouvoir l’explorer numériquement. Soit D’ la discrétisation de D<br />

retenue, et soit x*’ le maximum de f(x) sur D’. Après discrétisation, chaque point de<br />

D’ peut être exprimé par une chaîne binaire, c’est-à-dire par une succession de 0 et<br />

de 1 de longueur donnée. Si les éléments de D sont <strong>des</strong> points dans un espace<br />

cartésien, chaque chaîne représentera ainsi les coordonnées d’un point x. En codage<br />

binaire, le nombre maximum de points x que l’on peut représenter par <strong>des</strong> chaînes de<br />

longueur n est de 2 n . La longueur de la chaîne nécessaire pour encoder tous les<br />

points de D’, c’est-à-dire pour les représenter chacun par une chaîne différente,<br />

dépend ainsi de la cardinalité de D’. En d’autres termes, la précision du codage et la<br />

qualité potentielle de la solution en termes du problème original (non discrétisé)<br />

augmentent avec la longueur <strong>des</strong> chaînes utilisées. Trouver le x*’ qui maximise f(x)<br />

sur D’ revient ainsi à trouver la ou les meilleures dans un ensemble de chaînes<br />

binaires décrivant tous les points en D’. Si la cardinalité de D’ est très grande, il sera<br />

pratiquement impossible de procéder par comparaison directe de tous les points de<br />

D’. Pour trouver le maximum global x* (où plus précisément : pour trouver presque<br />

sûrement un point qui lui soit très proche) un GA commence par générer de façon<br />

aléatoire une population initiale X(0) de solutions potentielles du problème, c'est-àdire<br />

de chaînes x’(0), x’’(0), x’’’(0) ∈ D’. A chacun <strong>des</strong> éléments de la population<br />

initiale correspond une valeur f(.) plus ou moins élevée de la fonction objectif.<br />

L’algorithme génétique va itérativement remplacer la population initiale par <strong>des</strong><br />

populations X(1), X(2), …, en cherchant à chaque itération (a) à augmenter la<br />

proportion de chaînes pour lesquelles f(.) atteint <strong>des</strong> valeurs élevées ; et (b) à<br />

introduire dans la population d’autres chaînes correspondants à <strong>des</strong> valeurs encore<br />

plus élevées de f(.). La taille de la population initiale doit être beaucoup plus petite<br />

que la cardinalité de D’ afin que l’utilisation de l’algorithme présente un avantage<br />

comparée à une recherche directe. Elle doit cependant être suffisante pour que<br />

l’algorithme puisse explorer de façon efficace et robuste la quasi-intégralité de D’.<br />

Plus spécifiquement, un algorithme génétique cherche à améliorer itérativement<br />

les caractéristiques d’une population de taille constante de chaînes de longueur<br />

donnée de caractères a i ∈A, où A est un ensemble fini :<br />

a 1 a 2 a 3 a 4 a 5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!