Table des matières - Gilles Daniel

Table des matières - Gilles Daniel Table des matières - Gilles Daniel

gillesdaniel.com
from gillesdaniel.com More from this publisher
01.01.2015 Views

290 Modélisation et simulation multi-agents pour Sciences de l'Homme et de la Société. Pour introduire la logique qui sous-tend un algorithme génétique, considérons le problème d’optimisation suivant. Supposons que nous cherchions le maximum global x* d’une fonction y = f(x) d’un vecteur x sur un domaine compact D. Pour rendre l’exemple intéressant, supposons que le graphe de cette fonction, c’est-à-dire le paysage que nous voulons explorer, soit compliqué dans le sens où il comprend entre autres de nombreux minima et maxima locaux et n’est pas toujours différentiable. Pour reprendre une image de Holland, faisons l’hypothèse qu’il ne consiste pas seulement de pics et de vallées, mais aussi de ponts, de tunnels, et autres structures complexes. Si le domaine D est compact, il est nécessaire de le discrétiser afin de pouvoir l’explorer numériquement. Soit D’ la discrétisation de D retenue, et soit x*’ le maximum de f(x) sur D’. Après discrétisation, chaque point de D’ peut être exprimé par une chaîne binaire, c’est-à-dire par une succession de 0 et de 1 de longueur donnée. Si les éléments de D sont des points dans un espace cartésien, chaque chaîne représentera ainsi les coordonnées d’un point x. En codage binaire, le nombre maximum de points x que l’on peut représenter par des chaînes de longueur n est de 2 n . La longueur de la chaîne nécessaire pour encoder tous les points de D’, c’est-à-dire pour les représenter chacun par une chaîne différente, dépend ainsi de la cardinalité de D’. En d’autres termes, la précision du codage et la qualité potentielle de la solution en termes du problème original (non discrétisé) augmentent avec la longueur des chaînes utilisées. Trouver le x*’ qui maximise f(x) sur D’ revient ainsi à trouver la ou les meilleures dans un ensemble de chaînes binaires décrivant tous les points en D’. Si la cardinalité de D’ est très grande, il sera pratiquement impossible de procéder par comparaison directe de tous les points de D’. Pour trouver le maximum global x* (où plus précisément : pour trouver presque sûrement un point qui lui soit très proche) un GA commence par générer de façon aléatoire une population initiale X(0) de solutions potentielles du problème, c'est-àdire de chaînes x’(0), x’’(0), x’’’(0) ∈ D’. A chacun des éléments de la population initiale correspond une valeur f(.) plus ou moins élevée de la fonction objectif. L’algorithme génétique va itérativement remplacer la population initiale par des populations X(1), X(2), …, en cherchant à chaque itération (a) à augmenter la proportion de chaînes pour lesquelles f(.) atteint des valeurs élevées ; et (b) à introduire dans la population d’autres chaînes correspondants à des valeurs encore plus élevées de f(.). La taille de la population initiale doit être beaucoup plus petite que la cardinalité de D’ afin que l’utilisation de l’algorithme présente un avantage comparée à une recherche directe. Elle doit cependant être suffisante pour que l’algorithme puisse explorer de façon efficace et robuste la quasi-intégralité de D’. Plus spécifiquement, un algorithme génétique cherche à améliorer itérativement les caractéristiques d’une population de taille constante de chaînes de longueur donnée de caractères a i ∈A, où A est un ensemble fini : a 1 a 2 a 3 a 4 a 5

Apprentissage dans les modèles multi-agents 291 Par analogie avec les objets et phénomènes biologiques qui ont inspiré les GAs, les chaînes sont communément appelées chromosomes, les caractères gènes. Très souvent, les symboles a i seront des entiers, en particulier des 0 ou 1 (codage binaire). Un système de codage/décodage associe à chaque chromosome un et un seul élément du problème concret d’intérêt (dans le cadre de notre exemple introductif de problème d’optimisation, cet élément était une valeur de x), et viceversa. Le codage n’est pas en lui-même un élément du GA. Il s’agit d’une procédure annexe qui met les objets d’intérêt sous une forme appropriée à leur traitement par un ordinateur. Cependant, le choix de codage n’est pas neutre. Il structure le paysage sur lequel s’effectue la recherche, et influence l’efficacité de cette recherche. Voir par exemple [GOL 89] [ANT 89] [GRE 89]. L’ensemble de tous les chromosomes pouvant être formés à l’aide de l’alphabet A forme l’espace de recherche, typiquement très grand. A longueur égale des chromosomes, un alphabet riche augmente la cardinalité de l’espace de recherche. Si les chromosomes sont définis comme des chaînes de n éléments pouvant chacun prendre m valeurs distinctes a i , l’espace de recherche sera de dimension m n . Bien que de nombreux auteurs recommandent l’utilisation d’un alphabet binaire (cf. le « principe de l’alphabet minimal », [GOL 89]), la taille de l’alphabet la plus efficace dans un contexte donné reste une question ouverte. La qualité des différents chromosomes dans le contexte du problème spécifique étudié est évaluée par une fonction scalaire, la fonction d’aptitude. Dans le cadre de notre exemple introductif, il pouvait apparaître naturel de définir un chromosome comme représentant les coordonnées d’un point x∈D’ et d’identifier la fonction d’aptitude avec la fonction objectif f(x) (en pratique, cependant, on préférera souvent travailler avec des fonctions dérivées). Dans un contexte multi-agents, typiquement : – chaque chromosome peut représenter une règle de comportement possible pour un même individu. La fonction f(x) évaluera alors la valeur de chaque règle pour satisfaire les buts de l’individu ; – alternativement, chaque chromosome peut représenter un individu différent. La fonction d’aptitude mesurera alors la capacité de l’individu à survivre et à avoir du succès dans le monde artificiel défini par le GA. Si un chromosome représente un individu, le GA modélise un processus d’évolution, car certains individus disparaissent d’itération en itération tandis que de nouveaux individus apparaissent. Si une chaîne représente une règle de comportement, le GA modélise un processus d’apprentissage, car seules les caractéristiques des agents changent, et non la population elle-même. Les GAs peuvent ainsi être utilisés pour modéliser aussi bien des phénomènes d’évolution que des processus d’apprentissage.

Apprentissage dans les modèles multi-agents 291<br />

Par analogie avec les objets et phénomènes biologiques qui ont inspiré les GAs,<br />

les chaînes sont communément appelées chromosomes, les caractères gènes. Très<br />

souvent, les symboles a i seront <strong>des</strong> entiers, en particulier <strong>des</strong> 0 ou 1 (codage<br />

binaire). Un système de codage/décodage associe à chaque chromosome un et un<br />

seul élément du problème concret d’intérêt (dans le cadre de notre exemple<br />

introductif de problème d’optimisation, cet élément était une valeur de x), et viceversa.<br />

Le codage n’est pas en lui-même un élément du GA. Il s’agit d’une procédure<br />

annexe qui met les objets d’intérêt sous une forme appropriée à leur traitement par<br />

un ordinateur. Cependant, le choix de codage n’est pas neutre. Il structure le paysage<br />

sur lequel s’effectue la recherche, et influence l’efficacité de cette recherche. Voir<br />

par exemple [GOL 89] [ANT 89] [GRE 89].<br />

L’ensemble de tous les chromosomes pouvant être formés à l’aide de l’alphabet<br />

A forme l’espace de recherche, typiquement très grand. A longueur égale <strong>des</strong><br />

chromosomes, un alphabet riche augmente la cardinalité de l’espace de recherche. Si<br />

les chromosomes sont définis comme <strong>des</strong> chaînes de n éléments pouvant chacun<br />

prendre m valeurs distinctes a i , l’espace de recherche sera de dimension m n . Bien<br />

que de nombreux auteurs recommandent l’utilisation d’un alphabet binaire (cf. le<br />

« principe de l’alphabet minimal », [GOL 89]), la taille de l’alphabet la plus efficace<br />

dans un contexte donné reste une question ouverte.<br />

La qualité <strong>des</strong> différents chromosomes dans le contexte du problème spécifique<br />

étudié est évaluée par une fonction scalaire, la fonction d’aptitude. Dans le cadre de<br />

notre exemple introductif, il pouvait apparaître naturel de définir un chromosome<br />

comme représentant les coordonnées d’un point x∈D’ et d’identifier la fonction<br />

d’aptitude avec la fonction objectif f(x) (en pratique, cependant, on préférera souvent<br />

travailler avec <strong>des</strong> fonctions dérivées). Dans un contexte multi-agents, typiquement :<br />

– chaque chromosome peut représenter une règle de comportement possible pour<br />

un même individu. La fonction f(x) évaluera alors la valeur de chaque règle pour<br />

satisfaire les buts de l’individu ;<br />

– alternativement, chaque chromosome peut représenter un individu différent. La<br />

fonction d’aptitude mesurera alors la capacité de l’individu à survivre et à avoir du<br />

succès dans le monde artificiel défini par le GA.<br />

Si un chromosome représente un individu, le GA modélise un processus<br />

d’évolution, car certains individus disparaissent d’itération en itération tandis que de<br />

nouveaux individus apparaissent. Si une chaîne représente une règle de<br />

comportement, le GA modélise un processus d’apprentissage, car seules les<br />

caractéristiques <strong>des</strong> agents changent, et non la population elle-même. Les GAs<br />

peuvent ainsi être utilisés pour modéliser aussi bien <strong>des</strong> phénomènes d’évolution<br />

que <strong>des</strong> processus d’apprentissage.

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

Saved successfully!

Ooh no, something went wrong!