• Aucun résultat trouvé

Approches évolutionnaires pour le comportement adaptatif d'entités autonomes

N/A
N/A
Protected

Academic year: 2021

Partager "Approches évolutionnaires pour le comportement adaptatif d'entités autonomes"

Copied!
113
0
0

Texte intégral

(1)

Thèse

En vue de l’obtention du

DOCTORAT DE L’UNIVERSITE DE TOULOUSE

délivré par l’Université Toulouse III – Paul Sabatier

Spécialité : Informatique

Par

Trung Hau TRAN

Approches évolutionnaires pour le comportement

adaptatif d’entités autonomes

Date de soutenance : le 12/12/2007 Devant le jury composé de :

Jean-Pierre JESSEL Professeur, IRIT – VORTEX

Université Toulouse 3 – Paul Sabatier, Toulouse

Président Stéphane DONIKIAN Chargé de recherche au CNRS, IRISA/INRIA

BUNRAKU, Rennes

Rapporteur Olivier SIGAUD Professeur, AnimatLab, ISIR

Université Pierre et Marie Curie – Paris 6, Paris

Rapporteur Yves DUTHEN Professeur, IRIT – VORTEX

Université Toulouse 1, Toulouse

Directeur Dinh Thuc NGUYEN Enseignant-chercheur, SELAB

Université des Sciences Naturelles HoChiMinh-Ville, Vietnam

Invité

Cédric SANZA Maître de Conférences, IRIT – VORTEX

Université Toulouse 3 – Paul Sabatier, Toulouse

Examinateur (co-encadrant) Gilles ENEE Maître de Conférences

Université des Antilles Guyane

(2)

Je tiens à exprimer mes plus sincères remerciements aux personnes qui m’ont offert l’opportunité de réaliser cette thèse : M. Louis Féraud pour m’avoir autorisé à m’inscrire à l’Ecole Doctorale Mathématiques, Informatique, Télécommunications de Toulouse (MITT) à l’Université Paul Sabatier – Toulouse III, M. Luis Fariñas Del Cerro pour m’avoir accueilli dans le laboratoire Institut de Recherche en Informatique de Toulouse (IRIT), Jean-Pierre Jessel pour m’avoir permis la réalisation de mon travail dans l’équipe Visual Objects : from

Reality To EXpression (VORTEX), en particulier, Yves Duthen, Directeur de Recherche, pour

sa direction, ses conseils et son soutien au cours de ces quatre années.

Je tiens à remercier Nguyen Dinh Thuc, Co-directeur de Recherche, pour m’avoir accueilli dans l’équipe SELAB à l’Université des Sciences Naturelles à HoChiMinh-Ville pendant mon alternance au Vietnam et pour son soutien et ses conseils pendant la rédaction de ma thèse, en particulier, lors de mes trois derniers mois au Vietnam.

Je remercie les rapporteurs de thèse, M. Stéphane Donikian et M. Olivier Sigaud, pour avoir lu mon travail et leurs remarques constructives, ainsi que les membres du jury qui ont accepté de juger ce travail : Jean-Pierre Jessel et M. Gilles Enée.

Je remercie vivement Cédric Sanza pour l’encadrement, les énormes discussions constructives et l’amitié qu’il m’a apportés toute au long de cette thèse.

Je remercie Roger Pujado pour sa sympathie et sa disponibilité pour la résolution rapide des problèmes techniques des réseaux et les installations des logiciels.

Pour leur bonne humeur et leur gentillesse de tous les professeurs, maîtres de conférences, thésards et étudiants en M2R de l’équipe VORTEX.

Je remercie Cédric Sanza, Hervé Luga, David Panzoli, Sylvain Cussat-Blanc, Sandrine Coelho, Roger Pujado, Patrice Torguet, Matthieu Lecoq, Anca Pham et David Pham pour la correction du français.

Je remercie ma famille pour les aides et les matériels pendant ces deux premières années de thèse, ainsi que l’Agence Universitaire de la Francophone (AUF) pour m’avoir financé ce travail du 01/09/2005 au 31/12/2007.

Enfin, je remercie le soutien mental des mes amis au Vietnam ainsi qu’en France, ma copine et ma famille.

(3)

Résumé

La simulation comportementale des entités virtuelles devient un problème très complexe lorsque ces entités sont plongées dans des environnements virtuels dynamiques et inconnus. Les agents procéduraux ne peuvent répondre à des situations imprévues. Les agents réactifs agissent en temps réel mais ils s’adaptent difficilement à des environnements dynamiques. Les travaux de recherche de cette thèse se concentrent sur une étude des mécanismes issus de la vie artificielle offrant des caractéristiques de réactivité, d’adaptation et d’évolution. Nous étudions une architecture couplant différents mécanismes afin d’augmenter les capacités de raisonnement des entités virtuelles.

Nous avons défini une architecture comportementale pour des entités autonomes. Cette architecture se compose de deux modèles dont le premier leur permet d’agir de façon réactive en réponse à leur perception. Ce modèle est basé sur l’approche des champs de potentiels qui a déjà montré son efficacité à résoudre des problèmes de navigation d’entités autonomes. Cependant, cette solution est très coûteuse. Le programmeur doit en effet définir les paramètres des champs de potentiel de façon manuelle pour chaque environnement. Pour pallier ce problème, nous avons défini un modèle supplémentaire permettant aux entités autonomes d’obtenir des comportements adaptatifs dans les environnements dynamiques. Notre nouvelle approche se base sur les systèmes de classeurs du type XCS de Wilson dont le rôle est d’apprendre et d’évaluer des actions discrètes correspondant aux paramètres mentionnés. Nous avons validé notre architecture comportementale à travers une simulation d’un problème proie–prédateur.

La performance du système comportemental dépend alors entièrement des systèmes de classeurs. Les actions possibles restent toujours discrètes et prédéfinies. Or, l’augmentation des actions possibles implique l’augmentation des ressources nécessaires pour le stockage des classeurs et du temps de convergence du système. C’est pourquoi le nombre d’actions est souvent limité. La dernière partie de cette thèse se concentre sur ce problème en proposant des actions continues. La contribution principale porte sur l’idée que « l’action est calculée directement en fonction du message entrant ». Nous avons appliqué notre nouveau système de classeurs (appelé XCSFCA) dans l’environnement de référence frog dans lequel les systèmes de classeurs traditionnels échouent. De plus, le XCSFCA a aussi donné de très bons résultats dans les deux problèmes dynamiques double integrator et pendulum swing up.

(4)

The behavioral simulation of virtual entities in dynamic and unknown environments becomes a complex problem. Deliberative agents cannot handle unforeseen situations. Reactive agents interact with the environment in real time, but they do not easily adapt their behaviors to dynamic environments. The research of this thesis focuses on mechanisms inspired from Artificial Life, offering characteristics of reactivity, adaptation and evolution. We propose an architecture mixing different mechanisms in order to increase the reasoning capacity of virtual entities.

This behavioral architecture consists of two models. The first one allows the autonomous entities to act quickly on the environment. This model is based on the potential fields’ method which has already proved its efficiency in navigation problems for autonomous entities. However, this solution is expensive because the designer has to define manually the potential fields’ parameters for each environment. To solve this problem, we have developed an additional model allowing the autonomous entities to obtain adaptive behaviors in dynamic environments. The second model is an extension of the classifier system XCS, whose role is to evolve discrete actions corresponding to the potential fields’ parameters. We have validated our behavioral architecture in a predator–prey problem.

The performance of our architecture entirely depends on classifier systems. The possible actions remain discrete and predefined. However, when the number of actions increases, the memory allocated by the system as well as the convergence time of the system also increase. That is why the number of actions is often limited. The remaining work of this thesis focuses on manipulating with continuous action. The main contribution is that “the action is computed directly as a function of the input”. We have applied our new classifier system, called XCSFCA, to the frog problem for which traditional systems fail. In addition, XCSFCA also reported acceptable results in double integrator and pendulum swing up problems.

(5)

Table des matières

Remerciements ... 2

Résumé ... 3

Abstract ... 4

Table des matières ... 5

Chapitre 1 Introduction ... 7

Chapitre 2 Systèmes évolutionnaires ... 9

2.1 Algorithme génétique (GA--Genetic Algorithm) ... 9

2.1.1 Introduction ... 9

2.1.2 Evolution ... 9

2.1.3 Conclusion... 14

2.2 Stratégie d’Evolution (ES--Evolution Strategy)... 15

2.2.1 Introduction ... 15

2.2.2 Evolution ... 15

2.2.3 Conclusion... 17

2.3 Systèmes de classeurs (LCS--Learning Classifier System)... 18

2.3.1 Introduction ... 18

2.3.2 Learning Classifier System de Holland (LCS) ... 18

2.3.3 Zeroth level Classifier System de Wilson (ZCS)... 24

2.3.4 eXtended Classifier System de Wilson (XCS)... 29

2.3.5 YCS de Bull ... 37

2.3.6 XCS avec prédiction calculée de Wilson (XCSF) ... 39

2.3.7 Systèmes de classeurs pour les environnements non-Markovien ... 41

2.3.8 Systèmes de classeurs pour la réalité virtuelle ... 44

2.3.9 Tableau de synthèse des principaux systèmes de classeurs ... 45

2.3.10 Conclusion... 47

2.4 Conclusion... 47

Chapitre 3 Systèmes comportementaux ... 49

3.1 Agent réactif ... 49

3.1.1 Historique des champs de potentiel... 49

3.1.2 Architecture de subsomption de Brooks... 50

3.1.3 Approche émergeante de Reynolds... 52

3.1.4 Théorie des motor schemas d’Arkin ... 53

(6)

3.2 Agent adaptatif ... 57

3.2.1 Apprentissage par moment de Clark ... 57

3.2.2 Evolution continue de Walker... 57

3.2.3 Conclusion... 58

3.3 Agent anticipatoire ... 59

3.3.1 Définition de Rosen... 59

3.3.2 Travaux de Hoffmann ... 60

3.3.3 Systèmes de classeurs anticipatoires ... 60

3.3.4 Anticipation dans un système multi-agents de Davidsson ... 61

3.3.5 Anticipation par champs de potentiel... 62

3.3.6 Conclusion... 62

3.4 Coordination spatiale dans un système multi-agents ... 62

3.4.1 Travail de Potter ... 63

3.4.2 Approche multi-agent Enforced Subpopulations (ESP) de Yong ... 64

3.4.3 Coordination par l’apprentissage des évaluations de De Jong ... 65

3.4.4 Conclusion... 66

3.5 Conclusion... 66

Chapitre 4 Contribution à la simulation comportementale par systèmes de classeurs ... 67

4.1 Architecture CREA dans un système multi-agents ... 67

4.1.1 Architecture CREA à la simulation comportementale ... 67

4.1.2 Résultats de CREA face au problème proie–prédateur ... 74

4.1.3 Conclusion... 79

4.2 XCSF avec des actions continues (XCSFCA) ... 80

4.2.1 Architecture du XCSFCA ... 81

4.2.2 Problème frog ... 85

4.2.3 Problème frog2 ... 89

4.2.4 Conclusion... 92

4.3 XCSFCA dans des environnements multistep ... 93

4.3.1 Problème double integrator ... 93

4.3.2 Problème pendulum swing up ... 98

4.3.3 Conclusion... 103

4.4 Conclusion... 103

Chapitre 5 Conclusion et perspectives ... 105

(7)

Chapitre 1

Introduction

En informatique, simuler consiste à imiter un phénomène naturel, le comportement d’un animal ou d’un objet physique dans le monde réel. De nombreux travaux de recherche sur la simulation des phénomènes naturels ont conduit à des scènes très réalistes, notamment la croissance de lichens [Desbenoit, 2004], de plantes [Bornhofen, 2007], d’arbres [Galbraith, 2004], de fumée [Angelidis, 2006], etc. Sur la base d’observations, Reynolds [Reynolds, 1987] a proposé un comportement émergent appelé flocking qui simule le vol d’oiseaux en utilisant simplement trois règles : séparation, alignement et cohésion. Le comportement

flocking est aussi utilisé dans le cinéma pour rendre réaliste le mouvement d’animaux. Un

autre axe de recherche concerne la simulation de foules. Ce genre de simulation fait partie de l’animation par ordinateur. Ses applications portent sur l’animation de piétons dans les lieux publics [Paris, 2006], la simulation de foules dans des situations d’urgence [Ulicny, 2001] ou encore la simulation de foules en temps réel [Ahn, 2006] [Pettré, 2006].

Nous nous intéressons à la simulation comportementale des entités virtuelles. Il s’agit de modéliser les interactions qu’entretiennent les entités entre elles, avec l’environnement ou avec l’utilisateur au travers d’un avatar. Au niveau de l’individu, nous observons que chaque entité apprend, évolue et s’adapte pour résoudre le problème posé. Au niveau du groupe, les entités coopèrent et co-évoluent afin d’accomplir une tâche collective. Cependant, le monde dans lequel les entités virtuelles sont immergées est dynamique et inconnu ; la simulation comportementale devient alors un problème très complexe. Les techniques classiques générant des agents délibératifs ne permettent pas de produire un comportement efficace face à des situations imprévues. Les mécanismes réactifs comme l’architecture de Brooks [Brooks, 1986] ou l’approche motor schema d’Arkin [Arkin, 1992, 1998] génèrent des agents réactifs : l’émergence des comportements au niveau de l’observation résulte de la combinaison pondérée de comportements de base par les poids appropriés. Les agents réactifs sont aussi capables de répondre au message entrant en temps réel. Lorsque les poids sont établis par un concepteur humain, ces agents réactifs ne peuvent s’adapter aux changements de l’environnement. Notre architecture propose ainsi d’intégrer aux modèles des agents réactifs des modèles d’apprentissage permettant d’ajuster automatiquement tous les paramètres en réponse à des situations différentes.

Les systèmes de classeurs (LCS--Learning Classifier System) font partie des techniques d’apprentissage par renforcement les plus répandues. Les LCS les plus étudiés sont le ZCS [Wilson, 1994], le XCS [Wilson, 1995, 1998] et le XCSF [Wilson, 2001, 2002]. Ils offrent des caractéristiques de réactivité, d’adaptation et d’évolution. Fondamentalement, un LCS se compose d’une base de règles, dont chacune représente un sous ensemble de l’espace de recherche. Les règles sont coopératives dans la représentation de la solution d’un problème posé. Les LCS permettent d’obtenir instantanément une réponse à un message entrant de l’environnement en parcourant la base de règles. Un mécanisme de rétribution de récompense provenant de l’environnement renforce les règles donnant une réponse appropriée et sanctionne celles qui génèrent une mauvaise réponse. L’évolution de la base de règles s’effectue à l’aide d’algorithmes évolutionnaires tels que les algorithmes génétiques. Les règles les plus adaptées auront plus de chances de se maintenir, et celles qui sont moins adaptées seront éliminées. Les applications des LCS sont très nombreuses : la simulation d’entités virtuelles [Heguy, 2003] [Sanchez, 2004], la robotique [Katagami, 2003], l’économie [Schulenburg, 2000] [Guessoum, 2004] [Wong, 2007], le commerce [Barry, 2004] et le contrôle routier [Bull, 2004].

(8)

Les LCS classiques, comme le XCS, ont prouvé leur efficacité à résoudre des problèmes ayant des états et des cartes de récompense discrètes. Cependant, les actions possibles restent discrètes et définies par avance. Ces LCS ne peuvent donc être efficaces dans des domaines comme le contrôle robotique qui requiert des actions réelles. Nous proposons d’étendre le XCSF à des actions continues, calculées en fonction du message entrant et permettant d’obtenir des actions fluides. Notre nouvelle architecture (XCSFCA) est évaluée à travers trois problèmes de référence où les LCS classiques échouent : frog, double integrator et

pendulum swing up.

Cette thèse se compose de trois parties :

• Dans un premier temps, nous ferons un tour d’horizon des systèmes évolutionnaires : les algorithmes génétiques, la stratégie d’évolution et les systèmes de classeurs dont le ZCS, le XCS et le plus récent XCSF.

• Dans la deuxième partie, nous présenterons les systèmes comportementaux. Plus spécifiquement, nous décrirons les trois types d’agents classiques : réactifs, adaptatifs et anticipatoires. Nous soulignerons leurs avantages et leurs inconvénients.

• Dans la dernière partie, nous présenterons notre modèle d’apprentissage, baptisé CREA, qui couple différents mécanismes. Nous testerons ses performances à travers une application de type proie–prédateur. Enfin, nous proposerons un nouveau système de classeurs qui intègre des actions continues, appelé XCSFCA, surpassant ainsi les limites des LCS traditionnels dans des environnements continus qui requièrent des actions numériques, comme c’est le cas pour le contrôle de robots.

(9)

Chapitre 2

Systèmes évolutionnaires

2.1 Algorithme génétique (GA--Genetic Algorithm)

2.1.1 Introduction

Les algorithmes évolutionnaires sont inspirés de la théorie Darwinienne d’évolution des espèces. Les individus d’une population, les plus adaptés aux environnements, ont plus de chances de survivre et de se reproduire et ceux qui sont moins adaptés risquent d’être éliminés. Les algorithmes évolutionnaires se divisent en plusieurs branches : l’algorithme génétique, la programmation évolutionnaire, la stratégie d’évolution, la programmation génétique et les systèmes de classeurs. Bien que chacun emploie son propre mécanisme d’implémentation : codage des solutions, sélection, mutation et croisement des individus, il utilise le même processus itératif « évaluation  sélection  croisement  mutation » pour faire évoluer une population d’individus dont chacun représente une solution du problème à optimiser. Avant le lancement du processus itératif, une population d’individus est générée aléatoire. Le processus commence par l’évaluation de la population actuelle selon les critères donnés et l’association de chaque individu à une valeur scalaire, appelée fitness (fonction d’évaluation en français), indiquant son utilité. Le processus sélectionne des individus pour la production des enfants. Les opérateurs génétiques comme le croisement et la mutation assurent l’exploration des nouveaux individus et le maintien de la diversité génétique des individus à partir des meilleurs individus de la génération précédente. Enfin, les nouveaux sont ajoutés dans la population. Le processus est renouvelé et il s’arrête si l’objectif ou la solution optimale du problème posé est atteint (Figure 2.1).

L’algorithme génétique [Holland, 1975] [Goldberg, 1989], notée AG, est une branche des algorithmes évolutionnaires. Il explore l’espace des solutions à partir d’une population initiale de solutions aléatoires. De cette manière, il manipule et fait évoluer un ensemble de solutions en parallèle à chaque itération. Cela est contraire aux méthodes classiques, comme la recherche tabou [Glover, 1997], qui maintiennent et font évoluer une seule solution à chaque itération. La recherche des optima globaux des fonctions non continues est impossible avec des méthodes mathématiques comme la descente de gradient mais elle ne pose pas de problème avec l’AG. L’AG est simple à utiliser car il suffit de définir les fonctions de fitness pour orienter l’évolution de la population vers la solution optimale. Aucune restriction n’est faite sur les fonctions de fitness (comme la continuité…). Malgré l’efficacité de l’AG, il est coûteux au niveau du temps de calcul et sa performance dépend des fonctions de fitness qui sont particulières pour chaque problème et parfois difficiles à établir.

2.1.2 Evolution

Nous commençons par quelques définitions. Un individu possède un nombre de

chromosomes. Les éléments de base du chromosome sont les gènes. Un gène ou une suite de

gènes encode une information. Le terme locus indique la position d’un gène sur le chromosome. Un allèle est une forme alternative d’un gène à un locus donné. L’ensemble des gènes d’un individu est son génotype et l’interaction de son génotype avec son environnement détermine son phénotype. Ainsi, le phénotype d’un individu dépend de son génotype.

Représentation. Considérons qu’un individu a un chromosome. Un chromosome est encodé sous forme d’une chaîne de bits. Un bit ou un ensemble de bits représente une information de

(10)

la solution et un chromosome représente un point dans l’espace des solutions du problème posé.

Si la solution est un nombre entier entre 0 et 15, on peut utiliser quatre bits pour encoder la solution. Chromosome 1

{

5

0101

Chromosome 2

{

8

1000

Si la solution est un vecteur de deux entiers dont chacun appartient à [0, 15], on peut utiliser huit bits pour encoder la solution dont les quatre premiers bits encodent le premier entier et les quatre bits suivants encodent le deuxième entier.

Chromosome 1

{ {

8 5

1000

0101

Chromosome 2

{ {

5 8

0101

1000

La représentation par chaîne de bits facilite l’application des opérateurs de croisement et de mutation ainsi que le codage de n’importe quel type de données comme l’entier, le réel… Bien entendu il existe d’autres représentations mais nous ne présentons que l’AG avec la représentation classique.

(11)

Population initiale. Au début de l’évolution, l’AG crée une population initiale. Elle contient des individus générés aléatoirement. Elle n’influence pas sur la performance globale de l’AG car l’AG garde les meilleurs individus et élimine les moins efficaces au fil de l’évolution. Les individus dans la population sont ensuite évalués par une fonction objectif. La première génération est créée. Normalement, la solution obtenue par la première génération ne satisfait pas les critères d’optimisation, alors une nouvelle génération commence. La solution optimale est obtenue après plusieurs générations.

Evaluation. L’évaluation de la population consiste à attribuer une note à chaque individu, indiquant sa performance à résoudre le problème demandé. La note est souvent appelée fitness et la fonction objectif est appelée fonction de fitness.

A noter qu’il faut disposer d’une fonction qui transforme le génotype d’un individu en phénotype pour que la fonction de fitness puisse l’interpréter. Pour faciliter la lecture, nous ignorons cette fonction et considérons que la fonction de fitness interprète directement le génotype d’un individu.

Critères d’optimisation. Les critères d’optimisation déterminent quand l’AG doit s’arrêter. Par exemple, si on a trouvé la solution optimale ou si un nombre de générations est atteint. Sélection. Cet opérateur consiste à sélectionner un certain nombre d’individus de la population actuelle P(t) de manière à créer une nouvelle génération P(t+1). Les individus parents sont sélectionnés en fonction de leur fitness.

Les parents sont croisés pour créer les enfants. Les enfants sont ensuite mutés avec une certaine probabilité. Enfin, ils sont rajoutés dans la population. Comme la population doit maintenir un nombre constant d’individus, l’AG doit garder les individus les mieux adaptés en se basant sur leur fitness. Nous présentons les méthodes de sélection des individus les plus utilisées.

Roue de la fortune. La roue de la fortune effectue un tirage aléatoire sur un des secteurs dont chacun est proportionnel à la fitness d’un individu (Figure 2.2). En théorie, le meilleur individu a plus de chance d’être choisi. Mais rien n’empêche qu’un mauvais individu soit choisi car le tirage reste toujours aléatoire.

Figure 2.2 : Roue de la fortune

Tournoi. La sélection par tournoi minimise le risque de ne pas choisir les meilleurs individus. Elle se décompose en deux étapes : dans un premier temps, on effectue un tirage aléatoire (sans prise en compte de la fitness) sur la population pour choisir Ntournoi individus participants au tournoi, puis le gagnant est celui ayant la fitness la plus forte parmi Ntournoi individus (Figure 2.3). Ntournoi prend une valeur entre 2 et le nombre total d’individus de la population.

(12)

Figure 2.3 : Sélection par tournoi avec Ntournoi=4 individus sur une population de 9 individus La sélection par tournoi est extrêmement élitiste. En effet, l’individu ayant la force la plus faible n’est que sélectionné s’il est tiré Ntournoi fois de suite, alors que celui ayant la meilleure force ne nécessite qu’une sélection sur Ntournoi pour être tiré et ajouté à la nouvelle population. Si la sélection par tournoi ne sélectionne que le meilleur individu dans la majorité des tournois, cette méthode peut entraîner un appauvrissement génétique, et l’AG crée une évaluation partielle car il n’explore pas l’espace entier des solutions.

Croisement. Il existe trois types de croisement : croisement 1-point, croisement 2-point et croisement uniforme. Bien qu’il soit possible d’appliquer le croisement k-point, celui-ci favoriserait la perte d’informations pertinentes. Le croisement consiste à mélanger des gènes de deux chromosomes parents pour produire deux chromosomes enfants. Il représente un partage de la connaissance entre les deux parents et les enfants héritent des propriétés de leurs parents. Le taux de croisement est assez fort afin d’augmenter la chance de la génération des enfants qui seraient plus performants que les parents. Le rôle du croisement est primordial dans l’évolution de l’AG mais il est secondaire dans la stratégie d’évolution (cf. 2.2). L’hypothèse building flock [Goldberg, 1989] explique le fonctionnement du croisement : différents blocs des différents parents sont mélangés, combinant ainsi les bonnes propriétés des parents dans les enfants.

Croisement 1-point. Un point de croisement est choisi aléatoirement. Il détermine une coupe imaginaire de chaque chromosome parent en deux parties. Un chromosome enfant est formé par une copie de la partie du chromosome parent 1 avant la coupe et de l’autre partie du chromosome parent 2 après la coupe. Un deuxième chromosome enfant est créé de la même manière mais il faut permuter les deux parents (Figure 2.4).

(13)

Figure 2.4 : Croisement 1-point

Croisement 2-point. Deux points de croisement sont choisis aléatoirement. Des gènes entre deux points de croisement sont échangés (Figure 2.5).

Figure 2.5 : Croisement 2-point

Croisement uniforme. Un masque binaire de la même longueur que les chromosomes parents est généré aléatoirement. Si le bit du masque à la position i est 0, le chromosome enfant copie le gène du chromosome parent 1, sinon il copie le gène du chromosome parent 2. Pour le deuxième chromosome enfant, la valeur de chaque élément du masque est inversée (0 devient 1 et 1 devient 0) et la même procédure pour la génération de l’enfant est réalisée (Figure 2.6).

(14)

Figure 2.6 : Croisement uniforme

Mutation. La mutation agit sur un gène du chromosome à un locus déterminé i (appelé la position de mutation). Le bit du locus i change de 0 à 1 ou l’inverse de 1 à 0 (Figure 2.7). Le taux de mutation est faible et reste constante pendant l’évolution de l’AG. Le rôle de la mutation est secondaire par rapport au croisement mais elle est indispensable pour augmenter la diversité des chromosomes et surtout lorsque l’AG est piégé dans des optima locaux.

Figure 2.7 : Mutation d’un chromosome

2.1.3 Conclusion

L’AG est une version artificielle du processus d’évolution naturel. Il travaille sur une population de solutions au lieu d’une seule solution. De cette manière il fait évoluer un ensemble de solutions en parallèle. L’évolution se fait par les opérateurs génétiques comme la sélection, le croisement et la mutation. L’AG est efficace pour des problèmes dans lesquels l’espace de recherche est large et il n’existe pas de solution déterministe.

(15)

2.2 Stratégie d’Evolution (ES--Evolution Strategy)

2.2.1 Introduction

La stratégie d’évolution [Rechenberg, 1973] [Schwefel, 1981], notée ES, est une branche des algorithmes évolutionnaires. L’ES est une méthode alternative pour résoudre des problèmes d’optimisation dont les paramètres à optimiser sont représentés dans un vecteur de valeurs réelles. L’ES est basée sur l’idée de l’évolution et de l’adaptation. Comme l’ajustement des paramètres dépend du problème et influence sur la performance globale des algorithmes évolutionnaires, l’ES a introduit le concept de l’adaptation automatique des paramètres au problème. L’adaptation des paramètres de la mutation de l’ES le distingue de l’AG.

2.2.2 Evolution

Représentation. Un chromosome se compose de deux parties :

Un vecteur réel de longueur n représente les paramètres réels à optimiser : x1,…, xn. Ces paramètres sont aussi appelés paramètres d’objet.

− Un vecteur réel supplémentaire contrôle la mutation des paramètres d’objet. Les éléments de ce vecteur sont appelés paramètres de stratégie qui sont une particularité de l’ES. Plus spécifiquement, il y a deux types de paramètres de stratégie :

o Un vecteur de pas de mutation de longueur nσ : σ1,…, σ o Un vecteur d’angles de rotation de longueur k : α1,…, αk

2 ) 1 ( − = n n k

Donc, un chromosome a généralement la forme (2.1), mais le vecteur d’angles de rotation n’est pas toujours présenté :

) ,..., , ,..., , ,..., (x1 xn

σ

1

σ

nσ

α

1

α

k (2.1)

Evolution. Soit µ le nombre de chromosomes parents et λ le nombre de chromosomes enfants générés par µ parents. L’ES possède deux sélections : plus et virgule. La sélection plus (µ+λ)-ES signifie que µ parents génèrent λ enfants par la mutation (λ≥1), les λ enfants entrent en compétition avec les µ parents, et pour maintenir la population à une taille constante, les λ pires chromosomes parmi µ+λ seront éliminés et le reste deviendra les parents de la génération suivante. La sélection virgule (µ,λ)-ES signifie que µ parents génèrent λ enfants par la mutation, les λ enfants sont en concurrence pour être transférés à la population suivante lorsque les µ parents sont oubliés quelque soit leur performance, et les µ meilleurs parmi ces enfants deviendront les parents de la génération suivante (µ<λ). La différence des sélections

virgule et plus est que les parents concurrencent ou pas leurs enfants pour déterminer la

population suivante.

Si la recombinaison est utilisée, on note (µ/ρ,λ)-ES ou (µ/ρ+λ)-ES où ρ indique le nombre de parents participant à la génération d’un enfant. L’enfant est ensuite muté. Si ρ=1 où la recombinaison fait le clone d’un parent, on préfère noter (µ,λ)-ES ou (µ+λ)-ES. Les parents sont aléatoirement sélectionnés, et chaque individu a ainsi la même probabilité d’être sélectionné. Cela est contraire avec la sélection dans l’AG.

Le plus simple ES est (1+1)-ES où un parent génère un enfant et le meilleur entre eux déterminé par la fitness survivra et deviendra le parent de la génération suivante.

(16)

Sélection. La sélection des individus transférant à la génération suivante est déterministe. C’est contraire avec la sélection probabiliste de l’AG. La sélection plus est élitiste car elle assure la survie du meilleur individu.

Règle des 1/5. Comme le choix du paramètre de stratégie adéquat σ permet à l’ES de maximiser la performance, la règle des 1/5 pour (1+1)-ES utilise l’information globale pour modifier le paramètre de stratégie σ (Eq.(2.2)). Une mutation est réussie si l’enfant est meilleur que le parent. Soit ps le pourcentage des mutations réussies après G générations. Cette règle indique que si ps<1/5, le paramètre de stratégie σ doit être réduit, dans le cas

ps>1/5, σ doit être augmenté.

5 / 1 si 5 / 1 si 5 / 1 si /      = < ⋅ > = s s s p p c p c

σ

σ

σ

σ

(2.2)

Le facteur c dépend de la fonction d’objectif, la dimension de l’espace de recherche et de la valeur G. Schwefel a proposé 0.85≤c<1. L’inconvénient de la règle des 1/5, c’est qu’elle est limitée aux problèmes demandant un seul paramètre de stratégie.

Auto-adaptation. L’auto-adaptation est considérée comme une approche standard dans l’ES. Elle est plus flexible que la règle des 1/5 dans le contrôle des changements des paramètres de stratégie. Le principe de l’auto-adaptation concerne la co-évolution des paramètres de stratégie avec les paramètres d’objet. L’ES réalise deux mutations : les paramètres de stratégie sont mutés, puis, leurs nouvelles valeurs contrôlent la mutation sur les paramètres d’objet.

Mutation isotrope. Un chromosome emploie la forme (2.3) (c’est-à-dire un seul paramètre de stratégie σ par chromosome). Le paramètre de stratégie σ est muté par l’équation (2.4). La mutation sur x est réalisée en ajoutant à chaque élément xi de x une valeur aléatoire N(0,σ’) de la distribution normale avec une moyenne de zéro et une déviation

standard σ’ (Eq.(2.5)). La mutation sur x prend en compte la nouvelle valeur σ’.

Normalement, le paramètre d’apprentissage τ est établi par l’expression (2.6). La mutation isotrope génère les mutants x' qui sont symétriquement distribués autour des parents x. L’avantage de l’isotrope mutation est de nécessiter un seul σ par chromosome.

)

,

,...,

(

x

1

x

n

σ

(2.3)

))

1

,

0

(

exp(

N

=

σ

τ

σ

(2.4) ) 1 , 0 ( N x xi′= i+

σ

⋅′ (2.5)

( )

−1

=

n

τ

(2.6)

Mutation anisotrope. Un chromosome emploie la forme (2.7) (c’est-à-dire un paramètre de stratégie σi par paramètre d’objet xi). La mutation sur le vecteur σ est réalisée par deux étapes : chaque élément σi de σ est indépendamment muté par une distribution log normale exp(τNi(0,1)) et ensuite par un facteur commun supplémentaire de la distribution log normale exp(τ’N(0,1)) (Eq.(2.8)). La distribution normale N(0,1) est appelée une fois et celle Ni(0,1) est appelée à nouveau pour chaque valeur σi. La mutation sur x est réalisée par l’ajout à chaque élément xi de x une valeur aléatoire N(0,σi) de la distribution normale avec une moyenne de zéro et une déviation standard σi (Eq.(2.9)). Deux paramètres d’apprentissage τ et τ’ sont établis par les expressions (2.10-2.11). La mutation anisotrope génère les mutants

qui sont distribués autour des parents mais limités sur les hyper ellipsoïdes. Elle est plus bénéfique que la mutation isotrope pour atteindre des optima locaux.

(17)

)

,...,

,

,...,

(

x

1

x

n

σ

1

σ

n (2.7)

4

4 3

4

4 2

1

4

4 3

4

4 2

1

commun individuel i i i

=

exp(

N

(

0

,

1

))

exp(

⋅′

N

(

0

,

1

))

σ

τ

τ

σ

(2.8) ) 1 , 0 ( N x xi′= i +

σ

i⋅′ (2.9)

( )

1 2 − = ′ n

τ

(2.10) 1 2 −       = n

τ

(2.11)

Recombinaison. La recombinaison prend ρ chromosomes parents pour générer un chromosome enfant. Les deux types de recombinaison sont discrets et intermédiaires. Par exemple, avec ρ=2, la recombinaison discrète ressemble au croisement uniforme de l’AG (Eq.(2.12-2.13)). Avec la recombinaison intermédiaire, chaque élément σi et xi d’un enfant est la valeur moyenne des éléments des parents (Eq.(2.14-2.15)).

    < = sinon 0.5 si 2 1 i i i x rand x x (2.12)     < = sinon 0.5 si 2 1 i i i rand

σ

σ

σ

(2.13) 5 . 0 * ) ( 1i i2 i x x x = + (2.14) 5 . 0 * ) ( 1 2 i i i σ σ σ = + (2.15)

Les sur-indices 1 et 2 indiquent les parents. La fonction rand génère une valeur aléatoire entre 0 et 1. La recombinaison n’existe pas dans l’ES classique, mais l’ES moderne recommande de l’utiliser autant que possible.

2.2.3 Conclusion

L’optimisation des paramètres réels est le domaine principal de l’ES. L’idée se base sur l’auto-adaptation des paramètres de stratégie contrôlant la mutation sur les paramètres réels. En fait, les chromosomes portent les paramètres à optimiser ainsi que les paramètres de stratégie. Ainsi, l’ES fait évoluer tous les paramètres.

(18)

2.3 Systèmes de classeurs (LCS--Learning Classifier System)

2.3.1 Introduction

Le système de classeurs, noté LCS, est un outil intéressant pour l’apprentissage machine (machine learning). Il s’agit d’une approche inspirée de la vie artificielle. Le LCS a été introduit par Holland [Holland, 1986]. En principe, le LCS est un système de bases de règles dont chacune utilise la forme « SI condition x est satisfaite ALORS faire une action a ». Il interagit avec l’environnement via les détecteurs (ou les capteurs) et les effecteurs (ou les actuateurs). Les détecteurs sont un système sensoriel qui capte l’information de l’environnement et la transforme sous forme d’un message x que le système peut interpréter. En réponse au message reçu, le système décide d’activer une action a dans la base des actions et de l’envoyer aux effecteurs qui sont chargés d’exécuter cette action. L’environnement change, les détecteurs captent la nouvelle information et un nouveau cycle « perception  décision  action » commence. En plus du message envoyé par les détecteurs, le système reçoit une valeur scalaire provenant de l’environnement au retour de l’action exécutée. Cette valeur est appelée la récompense. C’est une des deux informations utiles utilisées pour évaluer le système LCS. En fait, un processus de renforcement (un système de rétribution) utilise la récompense pour renforcer la relation entre les détecteurs et les effecteurs. Les règles ayant des bonnes actions sont renforcées alors que celles ayant des mauvaises actions sont punies. Contrairement aux systèmes experts, le système LCS peut être lancé sans aucune connaissance a priori, c’est-à-dire avec une base de règles vide. L’évolution de la population des règles est réalisée à l’aide d’un algorithme évolutionnaire. Il fonctionne comme un moteur de recherche qui explore des nouvelles règles potentielles et assure aussi la diversité des règles. Plus spécifiquement, plus les règles sont adaptatives, plus elles ont plus de chances de survivre et de se reproduire par le croisement et la mutation. Cela correspond à l’évolution des espèces dans la nature. L’évolution du LCS continue à tourner pour produire des règles efficaces qui seront exploitées dans un moment adéquat.

Nous présenterons les différents modèles des systèmes de classeurs : LCS [Holland, 1986], ZCS [Wilson, 1994], XCS [Wilson, 1995, 1998], YCS [Bull, 2003, 2005] et XCSF [Wilson, 2001, 2002].

2.3.2 Learning Classifier System de Holland (LCS)

Un système de classeurs LCS est un système réactif qui se compose de trois parties :

Une population P qui stocke des règles (ou des classeurs) est utilisée pour faire l’interaction avec l’environnement. La population peut être vide ou initialisée aléatoirement au début de l’apprentissage.

• Un algorithme évolutionnaire explore l’espace de recherche des règles pour générer des règles qui sont adaptatives à n’importe quelle situation. Normalement, un algorithme génétique est utilisé dans cette partie.

• Un processus de renforcement met à jour l’utilité des règles activées en utilisant la récompense reçue de l’environnement.

Chaque règle (ou classeur) est formée de la partie condition, de la partie action et d’une valeur scalaire associée appelé fitness (ou force). Un classeur cli est souvent écrit sous forme :

] [ : ) ( : k i i t x a F cl (2.16)

L’interprétation d’un classeur est : ayant donné un message x, si la condition t(x) est satisfaite alors le système exécute une action ak et une force Fi estime une récompense à venir.

(19)

Message x. Supposons que l’environnement entier soit coupé en L parties et un détecteur soit associé à l’une de ces parties. Chaque détecteur envoie au système une valeur 0 ou 1 correspondant à ce qu’il perçoit. Un message x est formé en assemblant toutes les valeurs des détecteurs.

Condition de classeur t(x). La condition de classeur t(x) de la taille fixée L est initialement générée avec des valeurs aléatoires du triplet {0, 1, #} où # représente un joker (appelé don’t

care) et agit comme 0 ou 1. L’utilisation du joker permet au système de généraliser la

condition du classeur et d’obtenir des solutions plus compactes (moins des classeurs). Par exemple, la condition du classeur 010# correspond aux messages entrants 0100 et 0101 mais elle ne correspond pas au message entrant 0110. Le classeur ayant la condition 010# peut répondre à la fois à deux messages au lieu de l’utilisation de deux classeurs. L’algorithme 2.1 détermine si la condition du classeur correspond ou pas au message entrant x :

Algorithme 2.1 : Comparer la condition du classeur et le message entrant

t[i] représente le ième élément de la condition du classeur

x[i] représente le ième élément du message x

t(x) retourne vrai si    ] [ à identique est ] [ # symbole le est ] [ à 1 de pour tout i x i t ou i t L i

Plus un classeur a des symboles #, plus il est généralisé. S’il contient peu de symboles #, il est spécifique. Kovacs [Kovacs, 1997] a classé trois types de classeur :

Un classeur surgénéralisé (over-general) contient trop de symboles pour résoudre efficacement le problème parce qu’il peut répondre à plusieurs messages mais il ne reçoit pas de récompenses constantes. Un classeur surgénéralisé doit être spécialisé en remplaçant le symbole # par une valeur spécifique 0 ou 1.

Un classeur généralisé au maximum (maximally general) est un classeur si on ajoute un symbole # supplémentaire, il devient surgénéralisé. Le système doit converger vers une solution optimale constituant des classeurs généralisés au maximum.

Un classeur généralisé sous-optimal (suboptimally general) pourrait être plus généralisé tout en conservant la même performance en remplaçant la valeur 0 ou 1 par un symbole #. Un classeur généralisé sous-optimal doit être généralisé.

Action de classeur ak. L’action du classeur ak doit avoir la même taille L que la condition du classeur et elle est codée comme une chaîne de bits de l’ensemble {0, 1}. Le joker # n’est pas admis dans l’action de classeur.

La figure 2.8 montre un exemple de classeur selon Holland. L’avantage du codage de classeur par les chaînes des bits permet de faciliter l’application de l’AG.

{

#

0

:

1101

{

:

[

0

{]

.

17

01

force action

condition

Figure 2.8 : Classeur d’un système de classeurs LCS de Holland

Force. La force associée à un classeur indique la performance qu’il a apprise dans le passé. Elle est représentée par une valeur scalaire. Dans les LCS de Holland, la force joue à la fois deux rôles : la prédiction et la fitness. La force est considérée comme la prédiction à la sélection de l’action. La prédiction estime une prédiction de la récompense à venir au retour de l’exécution d’une action dans l’environnement. La force élevée prédit de recevoir une

(20)

récompense élevée. La force est considérée comme la fitness à l’application d’un algorithme génétique. La fitness implique l’utilité du classeur. Les classeurs ayant une fitness plus élevée ont plus de chance de survivre et de générer des nouveaux classeurs performants afin d’améliorer la performance du système.

La figure 2.9 décrit le schéma d’un système de classeurs LCS. Nous découpons son fonctionnement en six étapes. Une génération commence par l’étape 1, se termine après l’étape 6, et ensuite une nouvelle génération commence.

Figure 2.9 : Schéma d’un système de classeurs LCS de Holland

Etape 1. Les détecteurs perçoivent l’environnement et envoient au système un message x sous forme d’une chaîne de bits de la taille L. Ce message est fourni à la liste de messages.

Etape 2. Ce message est comparé avec la partie condition de chaque classeur dans la population de classeurs P. L’objectif est de déterminer quel classeur peut répondre au message entrant et de le classer dans un ensemble M (match set M).

Etape 3. Normalement, l’ensemble M ne contient que les classeurs correspondant au message entrant x. Le problème est alors de choisir un classeur pour activer son action ? C’est le dilemme entre l’exploitation et l’exploration. L’exploitation signifie que le système utilise la connaissance obtenue dans le passé pour utiliser une action qui renvoie la récompense maximum, autrement dit, le système choisit l’action la plus efficace. Il s’agit donc du classeur ayant la force la plus élevée. Mais pour découvrir une telle action, le système doit essayer des actions différentes non encore testées. Il explore alors les actions pour déterminer les meilleures actions qu’il choisira dans le futur. Plus spécifiquement, il peut choisir un classeur parmi des classeurs ayant une force faible. La solution proposée par Holland est une méthode utilisée dans les enchères, permettant de favoriser les classeurs les plus performants mais aussi de laisser une chance aux classeurs les plus faibles.

(21)

Chaque classeur ri en concurrence propose son enchère bid(ri) qui dépend de sa force F(ri). Plus la force d’un classeur est élevée, plus son enchère est forte et plus il augmente la chance de gagner l’enchère, et donc d’activer son action. Le système détermine le classeur gagnant en utilisant une stratégie stochastique dont la sélection d’un classeur est proportionnelle à son enchère. La stratégie stochastique est opposée à celle déterministe avec laquelle le classeur gagnant est celui ayant l’enchère la plus forte. Mais il est possible d’utiliser une autre stratégie qui balance entre l’exploration et l’exploitation comme l’utilisation d’une enchère effective

ebid(ri) formée de la somme de l’enchère bid(ri) et une valeur aléatoire N(σ).

1

0

constant

:

),

(

*

)

(

r

=

k

0

F

r

k

0

<

k

0

bid

i i (2.17)

)

(

)

(

)

(

r

bid

r

N

σ

ebid

i

=

i

+

(2.18)

Ensuite, la force du classeur gagnant est déduite d’une quantité correspondant à son enchère afin de diminuer sa chance de toujours gagner l’enchère. La partie action du classeur gagnant est envoyée à la liste de messages. Si l’action n’est pas éligible, elle est considérée comme un nouveau message et le cycle d’inférences internes (recherche en profondeur) activera d’autres classeurs. Dans le cas contraire, l’action du classeur gagnant est éligible, le système passe à l’étape 4.

Etape 4. L’action éligible est envoyée aux effecteurs qui la transforment en des actions exécutables dans l’environnement.

Etape 5. La procédure de renforcement dans les LCS utilise l’information provenant de l’environnement pour modifier la force des classeurs afin d’optimiser la performance du système. Cette information est une valeur scalaire, appelée récompense, représentant la qualité de l’action exécutée. En fait, le système reçoit une récompense, met à jour la force des classeurs gagnants activés par le cycle d’inférences internes. Ces classeurs sont notés ri,-k,

ri,-k+1,…, ri,-2, ri,-1, ri et forment une chaîne de classeurs. L’algorithme BB (Bucket Brigade) proposé par Holland effectue une distribution des enchères entre les classeurs de cette chaîne. Le classeur ri qui a envoyé l’action éligible aux effecteurs se trouve au bout de la chaîne et donc la récompense est payée pour lui. Puis, il contribue son enchère (considérée comme récompense) au classeur ri,-1 juste devant lui à la chaîne des classeurs. Quant à ri,-1, il contribue son enchère à ri,-2 comme récompense…

Les classeurs dans la population P qui participent très peu ou jamais aux enchères doivent payer une taxe tax(ri) en fonction de leur force afin d’éliminer rapidement ces classeurs parasites.

L’évolution de la fitness d’un classeur est décrite dans (2.20). Le point faible de l’algorithme BB est de maintenir une longue chaîne de classeurs et donc il prend le temps pour renforcer tous les classeurs de la chaîne.

1 0 constant : ), ( * ) (r = k1 F r k1k1 < tax i i (2.19)

)

(

)

(

)

(

)

(

r

i

F

r

i

bid

r

i

reward

i

tax

r

i

F

+

(2.20)

Etape 6. Le système augmente sa performance en appliquant périodiquement un AG à la population P pendant la période d’apprentissage. Les classeurs sont considérés comme les individus et leur force comme la fitness dans l’AG. L’AG commence par la sélection des individus parents par une roue de la fortune proportionnelle à leur force. Ils partagent leur connaissance en mélangeant leur partie condition et leur partie action via l’opérateur de croisement. Le croisement génère avec une probabilité χ des classeurs enfants qui seraient plus adaptatifs que leurs parents. L’opérateur de mutation continue à opérer avec une

(22)

probabilité µ sur ces classeurs enfants pour explorer l’espace de recherche des classeurs. Comme les ressources sont limitées, le système doit éliminer les classeurs les plus faibles de la population pour réserver les places aux nouveaux.

Le rôle de l’AG dans des problèmes d’optimisation classiques est de chercher la règle la plus adaptative, mais dans le LCS est de trouver un ensemble coopératif des différents types de règle pour résoudre un problème spécifique.

2.3.2.1 Environnements de test

On retrouve deux sortes d’environnements de test : les environnements singlestep (mono-itération) et les environnements multistep (multi-itérations). Un environnement est singlestep si la décision d’une action ne dépend que de l’état actuel. L’environnement fournit une récompense immédiate après avoir exécuté l’action et le problème à résoudre se termine. Un environnement est multistep, si un animat [Wilson, 1985] (un animal virtuel) doit exécuter une séquence d’actions pour atteindre une cible (par exemple la source) et recevoir une récompense, ainsi, une action pour l’état actuel dépend de ce que l’animat a décidé dans le passé.

On retrouve aussi deux sortes d’environnements de test : les environnements Markovien et les environnements non-Markovien. Quand la perception de l’animat fournit une information globale (complète) de l’environnement, le système choisit la meilleure action associée à chaque état. Un tel environnement est appelé l’environnement Markovien, et ses états sont appelés les états Markovien. Cependant, il y a des situations où deux états différents semblant être identiques dans la perception de l’animat mais ils requièrent deux actions différentes afin d’obtenir la performance optimale. Sa perception fournit une information partielle de l’environnement à cause des limites de ses détecteurs ou de l’environnement bruité, donc son système ne peut choisir la meilleure action associée à certains états. Un tel environnement est appelé l’environnement Markovien, et ses états ambigus sont appelés les états non-Markovien (ou aliased states). En effet, un environnement ne peut pas décider qu’il est Markovien ou non-Markovien, mais en fonction de l’information reçue par les détecteurs d’un système (l’information globale ou partielle), l’environnement est référencé comme Markovien ou non-Markovien.

Multiplexeur

Le l-multiplexeur booléen est un problème de référence illustrant les environnements

singlestep. La fonction booléenne est définie pour une chaîne de bits de longueur l où l = k +

2k. Les k premiers bits x0,…,xk-1, représentent un indice des 2k bits suivants y0,...,y2k1. La

fonction retourne la valeur du bit indexé. Par exemple, dans le 6-multiplexeur (c’est-à-dire

l=6 et k=2), noté mp6, on a mp6(000101)=0 et mp6(010101)=1 (Figure 2.10).

Pour le système de classeurs, il simule le fonctionnement du l-multiplexeur. L’objectif est de fournir la réponse correcte correspondant à la sortie de la fonction booléenne en fonction du message entrant. Une réponse correcte reçoit une récompense 1000, sinon 0. La difficulté du problème multiplexeur n’est pas linéaire avec la valeur l car l’espace de recherche se développe exponentiellement avec l.

Le multiplexeur est aussi l’environnement Markovien car c’est possible de prédire la récompense pour chaque pair entrée-sortie.

(23)

Figure 2.10 : Fonctionnement du 6-multiplexeur

Woods

L’environnement woods est une grille de deux dimensions. Elle représente une configuration des objets présentés dans l’environnement. Chaque case de la grille possède des états : vide, un objet ou un animat. Deux types d’objets sont la source notée par ‘F’ qui a le code sensoriel 11 et l’obstacle noté par ‘O’ qui a le code sensoriel 10. La case vidé notée par ‘.’ a le code sensoriel 00. L’animat est représenté par ‘*’.

La perception de l’animat est limitée à huit cases l’entourant. On suppose que l’animat connaît le code sensoriel de l’objet qu’il perçoit. Par exemple, sa perception dans la figure 2.11 est une chaîne de bits ‘10 10 00 00 10 00 00 11’. Les deux premiers bits à gauche sont toujours le code sensoriel de l’objet qui se trouve dans le nord de l’animat. Les deux bits suivants correspondent aux codes sensoriels des objets que l’animat perçoit dans le sens de l’aiguille d’une montre.

Figure 2.11 : Perception de l’animat

L’animat peut se déplacer dans les huit directions correspondant aux huit cases qui l’entourent. Si la case est vide, il s’y déplace. Si la case contient un obstacle, le déplacement n’est pas admis mais on compte quand même un pas de temps. Si la case contient la source,

(24)

l’animat y entre, la mange, reçoit une récompense 1000 et est replacé aléatoirement sur la grille.

Pour le système de classeurs simulant le comportement de l’animat, l’objectif est de trouver une séquence d’actions en fonction de la perception pour guider l’animat vers la source, en minimisant le nombre de déplacements nécessaires.

Bien évidement, l’environnement woods est multistep. Il est Markovien ou non-Markovien en fonction de la perception de l’animat (Figure 2.12-2.13).

Figure 2.12 : Woods1 est Markovien car tous les états sont différents

Figure 2.13 : Woods100 est non-Markovien car les états perçus de V1 et V2 sont identiques (les cases V1 et V2 sont les cases vides) mais l’animat doit décider deux actions différentes : s’il est à V1, il doit prendre l’action ‘’, et s’il est à V2, il doit prendre l’action ‘’, afin d’atteindre la source.

2.3.3 Zeroth level Classifier System de Wilson (ZCS)

Wilson a introduit le ZCS [Wilson, 1994] représentant une évolution majeure du système de classeurs de Holland. Il a simplifié le modèle de Holland pour refaire un système plus compréhensible avec des performances équivalentes à celles du LCS. Comme indiqué dans la figure 2.14, le ZCS n’a pas de liste de messages. En effet, le ZCS suppose que les détecteurs fournissent une information complète des situations de l’environnement, donc il ne nécessite plus d’utiliser le cycle d’inférences internes pour compléter une information incomplète ou imprécise. La suppression de ce cycle renforce la réactivité des systèmes de classeurs car il fait augmenter le temps de réponse d’un message entrant. La partie action n’est plus nécessairement de la même taille que la partie condition. Le système permet l’utilisation d’autres représentations pour la partie action comme un type entier dont une valeur indique une action. Par contre, le ZCS n’est pas adapté aux environnements non-Markovien où les détecteurs ne représentent qu’une information partielle de l’état de l’environnement. Le deuxième changement dans le ZCS est l’ajout d’un ensemble A (action set) pour regrouper des classeurs ayant le même comportement (c’est-à-dire déclenchant la même action) et donc partager également la récompense provenant de l’environnement.

Le fonctionnement du ZCS est similaire au LCS de Holland. Etant donnée un message entrant par les détecteurs, un ensemble M est constitué des classeurs pouvant répondre au message entrant. Le système utilise une stratégie de sélection de l’action pour choisir une action et l’envoie aux effecteurs qui l’exécutent dans l’environnement. Un ensemble A est formé des

(25)

classeurs ayant la même action. La récompense provenant de l’environnement renforce les classeurs dans A pour améliorer la performance du système. L’application régulière d’un algorithme génétique à la population P pour explorer des nouveaux classeurs potentiels pouvant résoudre le problème demandé. Le ZCS utilise un mécanisme de découverte supplémentaire, un opérateur covering, activant dans le cas d’une absence de classeurs en réponse au message courant.

Figure 2.14 : ZCS de Wilson

Population P. Le système peut commencer avec une population vide ou une population remplie de classeurs initialement aléatoires. Si la population est vide, un opérateur covering (cf. mécanismes de découverte) y ajoute un nouveau classeur. Mais quelle que soit la façon d’initialiser la population, la performance globale du système reste la même car des classeurs parasites seront éliminés au fil de l’évolution.

Ensemble M. L’ensemble M est créé comme dans le LCS. Il contient des classeurs pouvant répondre au message courant.

Sélection de l’action. Le ZCS ne sélectionne plus les classeurs les plus performants en réponse au message courant. Mais sa sélection se base sur l’action la plus pertinente. Plus spécifiquement, il s’agit de l’action ayant la somme la plus élevée des fitness des classeurs déclenchant la même action. Comme dans le LCS de Holland, le ZCS laisse aussi une chance d’activation aux actions déclenchées par les classeurs les plus faibles. Bien qu’il ait des stratégies de sélection de l’action utile, Wilson ne préconise pas celle qui offre la meilleure performance et le ZCS utilise la stratégie stochastique la plus simple. La méthode consiste à appliquer une roue de la fortune à la liste d’actions dans l’ensemble M pour déterminer la gagnante. La roue de la fortune constitue un nombre de secteurs équivalent au nombre d’actions dans M. Chaque secteur représente la probabilité de sélection d’une action. Elle est proportionnelle à la somme des fitness des classeurs déclenchant la même action. Enfin,

(26)

quelle que soit la méthode utilisée, l’action gagnante sera envoyée aux effecteurs pour être exécutée dans l’environnement.

Ensemble A. Les classeurs dans M dont la partie action est identique à l’action gagnante sont classés dans un ensemble A.

Algorithme IBB. Wilson a proposé un algorithme IBB (implicit bucket brigade) basé sur l’algorithme BB pour redistribuer la récompense entre l’ensemble A à l’instant t et l’ensemble

A-1 à l’instant précédent t-1. Son intérêt est de développer la coordination séquentielle d’actions car les environnements mutistep demandent une séquence d’actions pour atteindre la cible à partir d’une situation. Dans les environnements singlestep demandant une seule action pour atteindre la cible, le dernier terme de la formule 22 est ignoré.

La réalisation de l’algorithme IBB est divisée en trois étapes. D’abord, une fraction β de la

fitness Fi de chaque classeur dans l’ensemble A est retirée et versée dans un seau commun initialement vide B(t) (2.21). Puis, si le système reçoit une récompense R provenant de l’environnement après avoir exécuté une action, les classeurs de A partagent également une fraction β de R. Enfin, une fraction γ du contenu du seau B(t) est divisée également entre les classeurs de l’ensemble A-1 si ce dernier n’est pas vide. Le seau B(t) est alors vidé et A remplace A-1.

La fitness Fi de chaque classeur de A à l’instant t est mise à jour par la formule 22 (l’ensemble

A+1 représente l’ensemble A à instant t+1 et |A| est le nombre de classeurs dans A).

=

A i i

t

F

t

B

(

)

β

(

)

(2.21)

A

t

F

A

R

t

F

t

F

t

F

j A j i i i

+ ∈

+

+

+

1

)

1

(

)

(

)

(

)

(

β

γ

β

β

(2.22)

Algorithme QBB. Wilson a proposé une autre formule de mise à jour des forces, appelée QBB (Q-Bucket Brigade). Elle est différente de l’algorithme IBB au niveau du dernier terme de la formule 22. En fait, l’algorithme QBB prend en compte la valeur maximale des fitness des classeurs des ensembles A+1. Si on récrit la formule 23, la formule 24 est similaire à celle de Watkins [Watkins, 1989] qui est utilisée dans l’apprentissage par renforcement. M+1 indique l’ensemble M en réponse au message entrant à l’instant t+1.

A

t

F

A

R

t

F

t

F

t

F

j A j M A i i i

+

+

+

+ + + ⊆ 1 1 1

)

1

(

max

)

(

)

(

)

(

β

γ

β

β

(2.23)

+

+

+

+ + + ⊆

)

(

)

1

(

max

)

(

)

(

1 1 1

t

F

A

t

F

A

R

t

F

t

F

j A i j M A i i

β

γ

(2.24)

Figure

Figure 2.2 : Roue de la fortune
Figure 2.7 : Mutation d’un chromosome  2.1.3  Conclusion
Figure 2.12 : Woods1 est Markovien car tous les états sont différents
Figure 2.14 : ZCS de Wilson
+7

Références

Documents relatifs

[r]

b) En déduire le nombre minimum de planches nécessaires à la construction du mur ABCD, puis le nombre minimum de planches nécessaires à la construction des deux murs

Considérons huit points D, O, R, E, M, I, F et A tels que les quadrilatères DORE, REMI et MIFA sont tous des parallélogrammes1. Faire une figure (attention, ce sont des

Retrouve le chiffre qui doit être attribué à chaque lettre pour que cette addition soit juste.. ☺ représente le

• Pour les étudiants de nationalité française : obligation de visa pour stage hors UE de plus de 90 jours (vérifier auprès du consulat du pays d’accueil en France pour les

Les atomes s’assemblent pour former des molécules, la masse molaire moléculaire c’est la masse molaire d’une mole de molécules.. On ne va pas trouver dans le tableau

Le nombre d’entités d’un système est proportionnel à sa quantité de matière donc :.. La quantité de matière est exprimée en

Comme on est en population finie, donc en approche « traditionnelle » pour le sondeur, on sait (presque) toujours estimer la variance puisque même dans des cas