• Aucun résultat trouvé

Conversion de séquences de jeu en diagrammes états-transitions

N/A
N/A
Protected

Academic year: 2021

Partager "Conversion de séquences de jeu en diagrammes états-transitions"

Copied!
98
0
0

Texte intégral

(1)

Conversion de séquences de jeu en diagrammes

états-transitions

Mémoire présenté

à la Faculté des études supérieures et postdoctorales de l'Université Laval dans le cadre du programme de maîtrise en informatique

pour l'obtention du grade de Maître ès sciences (M.Sc.)

Faculté des sciences et génie UNIVERSITÉ LAVAL

QUÉBEC

2012

c

(2)

De nos jours, le développement des personnages de jeux est devenu une tâche dif-cile en raison de la complexité toujours grandissante des jeux vidéos actuels. Pour diminuer la complexité liée au développement de ces personnages, certaines approches sont applicables et consistent à utiliser des techniques d'intelligence articielle. Dans ce travail, nous proposons d'utiliser des diagrammes états-transitions pour activer un personnage de jeu vidéo.

Nous étudions les moyens de construire des diagrammes états-transitions et plus spéciquement comment les structurer à partir des séquences de jeux. Les performances des diagrammes construits sont évaluées et nous analysons les possibilités d'améliorer les rendements obtenus.

Dans nos expérimentations, nous utilisons le jeu de poursuite dénommé Pacman. Pacman constitue un banc d'essai idéal car il présente un environnement dynamique et séquentiel et nécessite une prise de décision en temps réel.

Dans ce travail nous tentons d'accomplir les tâches suivantes :

• Acquérir des séquences de jeux à travers l'utilisation de l'apprentissage par la démonstration.

• Structurer des diagrammes états-transitions à partir des séquences de jeux.

• Analyser la possibilité d'améliorer les performances des diagrammes états-transitions par l'utilisation des techniques de raisonnement à base de cas et des éléments de la théorie de l'information.

(3)

Nowadays, developing game characters has become a dicult task because of the in-creasing complexity of actual video games. To reduce the complexity of developing those characters, some approaches exist and consist of using articial intelligence techniques. In this project, we propose using state machines to activate a video game character.

We learn the means to build state machines and more specically how to structure them from game sequences. The performance of those state machines is evaluated and we analyze the possibility of improving the results.

In our experimentations, we use the pursuit game called Pacman. Pacman constitute an ideal testbed because it oers a dynamic and sequential environment and it calls for real time decision making.

In this work we are trying to accomplish the following tasks :

• Acquire game sequences through usage of learning from demonstration. • Structure the state machines from game sequences.

• Analyze the possibility of improving the performances of the state machines by using case-based reasoning techniques and elements of information theory.

(4)

En premier lieu, je tiens à remercier particulièrement mon directeur de recherche, monsieur Luc Lamontagne qui, par sa disponibilité, ses conseils et ses suggestions m'a permis de réaliser ce travail.

J'adresse également mes sincères remerciements à monsieur Guy Mineau et à mon-sieur Pierre Marchand et sa famille qui, tous d'une manière diérente, ont contribué à l'aboutissement de ce projet.

Mes remerciements vont également à l'endroit de tous mes amis et collègues du laboratoire SYRAD, plus spécialement à monsieur Félix-Antoine Bourbonnais, pour le soutien et l'aide qu'ils m'ont apportés.

Je remercie aussi mes parents, mes frères et ma s÷ur qui m'ont toujours soutenus et encouragés tout au long de ce travail.

Enn, un grand merci à tous ceux et celles qui ont contribué, de près ou de loin, à la réalisation de ce projet.

(5)

Résumé ii

Abstract iii

Remerciements iv

Table des matières v

Table des gures viii

1 Introduction générale 1

1.1 Contexte . . . 1

1.2 Problématique . . . 2

1.2.1 Acquisition des séquences de jeux . . . 3

1.2.2 Construction d'un diagramme états-transitions . . . 3

1.3 Organisation du mémoire . . . 4

2 Revue de littérature 5 2.1 Introduction . . . 5

2.2 Intelligence articielle dans les jeux vidéo . . . 5

2.3 L'apprentissage par la démonstration . . . 6

2.3.1 Principe et historique . . . 7

2.3.2 Catégorisation des approches utilisées dans l'apprentissage par la démonstration . . . 8

2.3.3 Structure d'apprentissage par la démonstration . . . 8

2.4 Les diagrammes états-transitions . . . 9

2.5 Le raisonnement à base de cas . . . 11

2.5.1 Principes du raisonnement à base de cas . . . 11

2.5.2 Composantes d'un système de raisonnement à base de cas . . . 12

2.5.2.1 Les connaissances . . . 12

2.5.2.2 Les processus . . . 13

2.5.3 La maintenance de la base de cas . . . 14

(6)

2.7 Le Clustering . . . 16

2.7.1 Introduction . . . 17

2.7.2 Clustering hiérarchique . . . 17

2.8 Théorie de l'information . . . 18

2.8.1 Objectifs de la théorie de l'information . . . 18

2.8.2 Entropie . . . 18

2.8.3 Entropie conditionnelle . . . 19

2.9 Notions sur les agents . . . 20

2.9.1 Qu'est-ce qu'un agent ? . . . 20

2.9.2 Structure des agents . . . 21

2.10 Le Pacman . . . 22

2.10.1 Le banc d'essai pour nos expérimentations : la version Pacman de Benny Chow . . . 22

2.10.1.1 Les personnages du jeu . . . 23

2.10.1.2 L'environnement du jeu . . . 24

2.10.1.3 Structure du programme du jeu . . . 24

2.10.2 Des agents pour le jeu Pacman . . . 25

2.11 Conclusion . . . 29

3 Acquisition des séquences de jeux 30 3.1 Introduction . . . 30

3.2 Particularités du problème . . . 30

3.3 Approche préconisée . . . 31

3.3.1 Motivation . . . 31

3.3.2 Architecture d'apprentissage . . . 32

3.3.3 Composants de l'architecture d'apprentissage . . . 33

3.3.3.1 Moteur principal du jeu . . . 33

3.3.3.2 Création de données du jeu . . . 34

3.3.3.3 L'expert . . . 35

3.3.3.4 État de l'environnement de jeu . . . 40

3.3.3.5 Séquence de jeu . . . 42

3.4 Résultats . . . 43

3.5 Conclusion . . . 44

4 Construction de diagrammes états-transitions 45 4.1 Introduction . . . 45

4.2 Particularités du problème . . . 45

4.3 Approche préconisée . . . 46

4.3.1 Construction d'un diagramme états-transitions . . . 46

4.3.1.1 Acquisition des cas . . . 47

(7)

4.3.2 Utilisation d'un diagramme états-transitions . . . 50

4.3.2.1 Déterminer l'état actuel du personnage . . . 51

4.3.2.2 Choix de la transition à appliquer . . . 51

4.3.2.3 Gestion de la performance . . . 53

4.3.2.4 Métriques d'évaluation de la performance . . . 54

4.4 Construction d'un diagramme états-transitions brut . . . 54

4.4.1 Expérimentations . . . 55

4.5 Construction d'un diagramme états-transitions avec transitions réduites 55 4.5.1 Stratégie adoptée . . . 56

4.5.2 Maintenance de la base de cas . . . 57

4.5.2.1 Ajout progressif de cas . . . 57

4.5.2.2 Suppression progressive de cas . . . 60

4.5.3 Structuration d'un diagramme états-transitions avec transitions réduites . . . 61

4.5.4 Expérimentations . . . 62

4.5.4.1 Interprétation des résultats . . . 62

4.6 Conclusion . . . 66

5 Construction d'un diagramme états-transitions avec états réduits 67 5.1 Approche préconisée . . . 68

5.2 Regroupement de positions . . . 69

5.2.1 Motivations liées au choix de l'utilisation des éléments de la théo-rie de l'information . . . 69

5.2.2 Mise en ÷uvre de l'approche . . . 71

5.2.2.1 Construction de la matrice de proximité . . . 72

5.2.2.2 Fusion des clusters . . . 74

5.2.2.3 Mise à jour de la matrice de proximité . . . 75

5.2.2.4 Résultats du regroupement hiérarchique . . . 75

5.3 Fusion des états . . . 76

5.3.1 Nouvelle formulation des transitions . . . 77

5.3.1.1 Augmentation de la portée des épisodes de jeux . . . . 77

5.3.1.2 Formulation des transitions de base . . . 79

5.4 Expérimentations . . . 80

5.4.1 Analyse des résultats . . . 81

5.5 Conclusion . . . 82

6 Conclusion 83

(8)

2.1 Structure d'apprentissage par la démonstration . . . 9

2.2 Diagramme états-transitions pour un agent conducteur de voiture . . . 10

2.3 Cycle de raisonnement d'un moteur CBR (Source Wikipédia 2012) . . 13

2.4 Clustering hiérarchique - Exemple . . . 17

2.5 Entropie d'une variable de Bernoulli (Source [13]) . . . 19

2.6 Un agent et son environnement (Source [57]) . . . 21

2.7 Les diérentes formes du Pacman . . . 23

2.8 Les fantômes . . . 23

2.9 Environnement de jeu . . . 24

2.10 Répartition des points pour le premier niveau de jeu . . . 24

2.11 La conguration du jeu et sa représentation en arbre (Source : [38]) . . 27

3.1 Architecture d'apprentissage . . . 32

3.2 Modélisation de la grille de jeu . . . 35

3.3 Distance de Manhattan . . . 38

3.4 Représentation de la grille de jeu utilisée pour l'exploration . . . 41

3.5 Choix de modélisation - État de l'environnement . . . 42

3.6 Épisode de jeu . . . 43

3.7 Séquence de jeu . . . 43

3.8 Génération progressive des séquences de jeux . . . 43

3.9 Performance de l'expert durant la génération des séquences de jeux . . 44

4.1 Construction d'un diagramme états-transitions brut . . . 47

4.2 Processus d'acquisition des cas . . . 48

4.3 Formulation d'une transition à partir d'un cas . . . 49

4.4 Exemple - État d'un personnage . . . 51

4.5 Distance de Hamming . . . 52

4.6 Métrique de comparaison des attributs . . . 52

4.7 Exemple - Calcul de la distance de Hamming . . . 53

4.9 Score obtenu avec le diagramme états-transition brut . . . 55

4.8 Conguration du diagramme états-transitions brut . . . 55

(9)

4.11 Ajout progressif de cas - Variation de la taille de la nouvelle base de cas 60

4.12 Suppression progressive de cas - Variation de la taille de la base de cas 61

4.13 Diagrammes états-transitions - Transitions réduites . . . 62

4.14 Transitions réduites - Comparaison des résultats : démonstrateur et dia-gramme brut . . . 63

4.15 Transitions réduites - Performances des diagrammes états-transitions . 64 4.16 Expérimentations - Transitions réduites - Temps de jeux . . . 65

5.1 Exemple - Regroupement de positions . . . 68

5.2 Exemple d'illustration - Incertitude de se retrouver dans une position de la grille de jeu. . . 70

5.3 Stratégie de regroupement de positions . . . 71

5.4 Exemple d'illustration - Incertitude résiduelle . . . 72

5.5 Exemple d'illustration - Calcul de l'incertitude résiduelle. . . 74

5.6 Regroupement de positions . . . 75

5.7 Exemple de regroupements eectués pour la première fusion . . . 76

5.8 Conguration du diagramme états-transitions avec états réduits . . . . 77

5.9 Exemple - Augmentation de la portée des épisodes de jeux . . . 78

5.10 Conguration des séquences d'actions . . . 79

5.11 Exemple d'illustration - Nouvelle formulation des transitions . . . 80

5.12 Expérimentations - Fusion des états . . . 81

5.13 Comparaison - Diagrammes avec états réduits et les autres structures de diagrammes . . . 82

(10)

Introduction générale

1.1 Contexte

Au cours des dernières décennies, l'industrie de jeux vidéo n'a cessé d'évoluer en pro-posant à sa clientèle des produits toujours plus innovants. Chaque nouveau titre plonge les joueurs dans un monde virtuel sans cesse proche de la réalité. De jeux simples comme Pacman [10] et Pong [11], nous sommes maintenant rendus à des jeux en ligne massivement multijoueurs comme World of Warcraft [55]. Avec une telle évolution, les développeurs de jeux vidéo sont confrontés au dé de toujours créer des person-nages à l'intelligence toujours grandissante. Ces personperson-nages étant contrôlés par des programmes informatiques, le besoin de personnages aux comportements plus intelli-gents entraînent inexorablement l'augmentation de la complexité de ces programmes informatiques. Cette complexité des programmes informatiques a amené les program-meurs à utiliser des techniques d'intelligence articielle dans le développement de ces programmes.

Dans la plupart des jeux vidéo modernes, les personnages des jeux vidéo sont activés par des agents développés à l'aide des techniques d'intelligence articielle. Un agent est un personnage autonome capable d'observer l'état de l'environnement dans lequel il évolue et qui est capable d'agir en fonction des observations qu'il a réalisées [28]. Ainsi, les développeurs doivent concevoir et développer un modèle comportemental pour chaque agent évoluant dans le jeu. La mise en place de tels agents est une tâche très complexe, coûteuse en temps et demande que les développeurs aient des compétences nécessaires et susantes.

(11)

consiste à développer des agents capables d'apprentissage puis à les instruire à l'aide des techniques d'apprentissage automatique [32]. Cette approche nous sembles très pro-metteuse et c'est pourquoi nous avons pensé qu'il serait intéressant de l'utiliser pour développer un agent. Nous présentons dans ce document les raisons de ce choix.

Le thème de nos travaux est d'activer un personnage de jeu vidéo en utilisant des techniques d'apprentissage automatique. Nous proposons une approche qui tire avantage des possibilités oertes par l'apprentissage par la démonstration [33], le raisonnement à base de cas [23, 22] et les diagrammes états-transitions [17]. Concrètement, nous étu-dions de quelle manière acquérir des séquences de jeux et construire des diagrammes états-transitions1 ou encore comment structurer des diagrammes états-transitions

mo-diés à partir des séquences de jeux en utilisant des méthodes de maintenance de bases de cas. Nous examinons plus en détail la problématique de ce travail dans la section suivante.

Nous avons choisi d'appliquer notre approche au jeu Pacman [10], qui est un jeu de poursuite. Pacman présente un environnement dynamique et séquentiel et nécessite une prise de décision en temps réel. Nous pensons que ce jeu constitue un banc d'essai idéal pour les besoins de nos expérimentations.

1.2 Problématique

Nous nous situons dans le domaine de l'intelligence articielle et plus particulière-ment dans le développeparticulière-ment d'agents pour le contrôle de personnages de jeux vidéo. Plusieurs approches existent et pour nos travaux, nous avons décidé d'utiliser les possi-bilités oertes par l'apprentissage par la démonstration [33], le raisonnement à base de cas [22,23] et les diagrammes états-transitions [17].

L'apprentissage par la démonstration [33, 2] est une approche d'apprentissage qui consiste à observer un expert dans l'accomplissement d'une tâche dans le but d'imiter son comportement. Les données sur le comportement de l'expert sont recueillies et sont utilisées par l'apprenant comme base de connaissances ou pour construire des politiques. Le raisonnement à base de cas est une approche d'apprentissage dit paresseux, lazy learning en anglais [1]. La particularité de cette approche réside dans le fait que l'objectif d'apprentissage est d'accumuler une base d'expériences constituée de cas ac-quis à partir des exemples d'entraînement. L'expérience acac-quise est alors utilisée pour

(12)

résoudre de nouveaux problèmes. L'acquisition des cas revêt un aspect très important dans une approche de raisonnement à base de cas. Dans ce travail, les cas seront consti-tués à partir des séquences de jeux issues de l'apprentissage par la démonstration.

Dans le domaine du jeu vidéo, les diagrammes états-transitions [17,29] sont des sys-tèmes de prise de décision utilisés pour contrôler un personnage de jeu. Les diagrammes états-transitions sont constitués par des états reliés entre eux par des transitions. Pour constituer de tels diagrammes, il faut déterminer au préalable l'ensemble des états et des transitions.

La problématique à laquelle nous nous intéressons est la construction d'un dia-gramme états-transitions à partir des séquences de jeux. De cette problématique, nous pouvons ressortir deux problèmes majeurs :

1. L'acquisition des séquences de jeux.

2. La construction d'un diagramme états-transitions.

1.2.1 Acquisition des séquences de jeux

Pour acquérir l'expérience nécessaire à la construction d'un diagramme états-transitions, nous avons adopté une stratégie qui consiste à utiliser l'apprentissage par la démons-tration [33]. Particulièrement pour le cas qui nous concerne, l'objectif est d'observer un expert qui joue au jeu an d'acquérir les séquences de jeux. Dans ce travail, nous tentons d'apporter une solution à ce problème.

1.2.2 Construction d'un diagramme états-transitions

Un personnage de jeu contrôlé par un agent doit être en mesure d'adopter un com-portement acceptable lorsqu'il évolue dans un environnement de jeu. De façon concrète, l'agent doit disposer d'un module de prise de décision lui permettant d'agir correcte-ment. Diérentes techniques peuvent être employées pour développer un système de prise de décision [29]. Pour nos travaux, nous avons décidé d'utiliser les diagrammes de transitions [17] pour activer l'agent intelligent. A partir des séquences de jeux, nous déterminerons les états de jeu et les transitions qui les relient dans le but de construire un diagramme états-transitions. Dans ce travail, nous montrerons la stratégie adoptée

(13)

pour spécier les états de jeu et les relations qui les relient en l'occurrence les transi-tions. Pour la suite de cette introduction générale, nous présentons l'organisation du mémoire.

1.3 Organisation du mémoire

Dans le premier chapitre, nous avons présenté le contexte de notre travail ainsi que les éléments qui entourent la problématique à laquelle nous nous intéressons. Le reste du travail est organisé comme suit.

Dans le chapitre deux, nous parcourons diérentes sources d'information an de présenter les diérents concepts et outils qui seront utilisés dans le cadre de ce travail. Dans le chapitre trois, nous tentons d'apporter une solution à l'un des problèmes de la problématique que nous essayons de résoudre. Plus précisément, nous présentons l'approche développée dans l'objectif de réaliser une acquisition des séquences de jeux. Dans le chapitre quatre, nous essayons de résoudre un autre des problèmes qui entourent la question qui nous intéresse dans le cadre de ce travail. Pratiquement, nous étudions comment créer automatiquement une structure de diagramme états-transitions à partir des séquences de jeux. Également, nous analysons et mettons en ÷uvre des stratégies de construction d'un diagramme états-transitions avec transitions réduites.

Dans le chapitre cinq, nous analysons les aspects liés à la construction d'un dia-gramme états-transitions avec états réduits. Nous présentons également une approche mise en place pour réaliser cette tâche.

(14)

Revue de littérature

2.1 Introduction

La matérialisation de l'approche choisie nécessite la combinaison d'une panoplie de techniques. Dans l'objectif de jeter les bases sur lesquelles se fondent nos travaux, nous parcourons diérentes sources d'information permettant de mieux cerner la stratégie que nous avons adoptée.

Les approches utilisant le raisonnement à base de cas et l'apprentissage par la dé-monstration sont de plus en plus utilisées dans le jeux vidéo. À travers la documen-tation du domaine, nous cherchons à mieux comprendre les principes à la base de ces approches mais également nous voyons les travaux qui ont été faits ou qui sont en cours de développement de ce champ d'études.

Des approches comme les diagrammes états-transitions [17] ou encore les techniques d'exploration [42] seront également abordées. Et, nous n'oublierons pas de présenter le banc d'essai que nous avons choisi en l'occurrence le jeu Pacman [10].

2.2 Intelligence articielle dans les jeux vidéo

De nos jours, le domaine des jeux vidéo voit la production de jeux de plus en plus sophistiqués et dont les personnages tendent à adopter un comportement toujours plus intelligent. La création de jeux vidéo est réalisée par des équipes pluridisciplinaire

(15)

inté-grant les programmeurs, les infographistes, etc. Durant les premières années et jusqu'à la n des années 1990, l'accent a été plus porté sur le rendu visuel et sonore [7]. Ce-pendant, les progrès de l'informatique combinés avec un besoin grandissant pour des personnages aux comportements plus crédibles, plus intelligents font que l'intelligence articielle suscite un intérêt toujours grandissant dans le domaine de jeu vidéo. L'intel-ligence articielle est vue comme un moyen permettant de développer des personnages susceptibles d'avoir un comportement proche de l'humain.

Dans la plupart des jeux vidéo modernes, les personnages des jeux vidéo sont activés par des agents développés à l'aide des techniques d'intelligence articielle. Un agent est un personnage autonome capable d'observer l'état de l'environnement dans lequel il évolue et qui est capable d'agir en fonction des observations qu'il a réalisées [28]. Selon les mêmes auteurs, l'intelligence articielle dans les jeux vidéo est utilisée dans le but de résoudre des aspects liés au déplacement des personnages, la prise de décision ainsi que la capacité de raisonner.

Malgré un développement rapide de l'intelligence articielle dans les jeux vidéo, le développement d'agents reste toujours une tâche relativement complexe car les pro-grammeurs de jeux vidéo ne sont pas le plus souvent familiers avec les techniques d'intelligence articielle [27].

Une possibilité pour réduire la complexité dans le développement des agents serait de produire des agents capables d'apprentissage puis de les instruire. Diérentes techniques d'apprentissage automatique existent. Nous nous focaliserons sur les choix que nous avons adoptés en l'occurrence le raisonnement à base de cas et l'apprentissage par la démonstration.

2.3 L'apprentissage par la démonstration

A la base de l'apprentissage par la démonstration se trouve l'idée qu'il est di-cile d'apprendre à eectuer une tâche sans connaissances préalables. Si un minimum de connaissances est mis à la disposition de l'apprenant, l'apprentissage se fait plus rapidement. Chez les humains, on remarque le même comportement. L'apprentissage s'eectue en suivant un instructeur ou en observant le comportement d'autres individus.

(16)

2.3.1 Principe et historique

L'apprentissage par la démonstration s'inspire de comportement humain et consiste à apprendre à réaliser une tâche en observant un expert dans l'accomplissement de la même tâche ou d'une tâche similaire. En d'autres mots, étant donné un expert qui agit dans un environnement déterminé, un agent va apprendre en examinant les actions menées par l'expert en réponse à un stimulus provenant de son environnement.

Les premiers travaux sur l'apprentissage par la démonstration peuvent être situés à la n des années soixante-dix avec les travaux de Bauer [4]. C'est à cette même période que l'apprentissage par la démonstration commençait à prendre place dans le domaine de la robotique [24]. Pomerleau [36] a également utilisé la même approche pour développer un système de contrôle d'un véhicule. Ce système repose sur l'utilisation d'un réseau de neurones entraîné à partir d'observations faites dans l'environnement dans lequel le véhicule doit évoluer. Après entrainement, le véhicule est capable d'évoluer dans des conditions diverses comprenant des routes à voie unique ou des routes à deux sens. Sidani et al. [46] ont construit un système de conduite automobile en utilisant une approche combinant l'apprentissage à partir d'observations, les réseaux de neurones et des techniques de raisonnement symbolique. Pour tester leur approche, ils observent le comportement d'un conducteur automobile qui évolue dans un environnement simulé de trac automobile et les résultats des observations sont utilisés pour entraîner le système. Le système résultant a été testé dans des environnements de conduites variés où il a été, par exemple, capable de réduire la vitesse du véhicule si un piéton se présentait inopinément dans la rue malgré le fait que les feux de circulation étaient verts. Moriarty et Gonzalez [34] ont étendu l'approche de Sidani [46] dans un contexte de jeu vidéo en permettant aux joueurs d'entrainer des robots dans le cadre de jeu Quake 2 [12]. Schaal [44] utilise les démonstrations d'un expert dans un contexte d'apprentissage par renforcement pour accélérer la convergence de la fonction Q-valeurs.

Floyd et al [16] ont utilisé une approche hybride combinant l'apprentissage par la démonstration et le raisonnement à base de cas pour développer un agent intelligent pour jouer au jeu RoboCup soccer-playing. La base de cas qu'ils utilisent est constituée à partir d'observations des comportements de joueurs. Pratiquement, l'état du jeu et les actions des joueurs sont utilisés pour constituer des cas qui sont ensuite ajoutés dans la base de cas. Floyd et Babak [15] ont étudié la possibilité d'exploiter les relations temporelles qui existent dans les démonstrations d'un expert. Le but est de pouvoir dé-celer et exploiter les informations sur l'état de l'expert an d'améliorer les performances d'un agent construit à partir de ces traces de jeu. Ontanon et Ram [35] utilisent les traces obtenues après démonstrations pour constituer des cas et des plans utilisés par un joueur évoluant dans un contexte de jeu de stratégie en temps réel.

(17)

2.3.2 Catégorisation des approches utilisées dans

l'apprentis-sage par la démonstration

Récemment, Ontanon et Ram [35] ont catégorisé les approches d'apprentissage par la démonstration en deux groupes : eager approaches et lazy approaches. Les approches eager consistent à construire des politiques, des stratégies ou des programmes à partir de l'analyse des traces obtenues. Il s'agit entre autres des approches combinant l'ap-prentissage par la démonstration avec les réseaux de neurones ou l'apl'ap-prentissage par renforcement. Les approches lazy quant à elles consistent à emmagasiner les observa-tions et à les réutiliser au moment de résoudre un nouveau problème. Elles appartiennent donc à la famille des techniques d'apprentissage passives ou Lazy learning [1]. Elles sont utilisées dans les approches plus récentes consistant à utiliser l'apprentissage par la dé-monstration comme stratégie d'acquisition des cas dans un contexte de raisonnement à base de cas.

2.3.3 Structure d'apprentissage par la démonstration

Le but de l'apprentissage par la démonstration (gure 2.1) est de permettre à un agent d'apprendre en observant le comportement d'un expert. Nous pensons que les principales étapes qui entrent dans un processus d'apprentissage par la démonstration sont les suivantes :

1. L'acquisition des séquences d'utilisation : un expert (un humain ou agent logiciel) utilise le système pour exécuter une tâche. Durant l'utilisation, l'état du système ainsi que l'action prise en ce moment sont emmagasinés. Plus précisément, une séquence ´etat de l0environnement → actionest créée et enregistrée.

2. Les séquences obtenues sont utilisées pour former une base d'expériences utilisable dans le cadre des approches lazy ou pour apprendre des politiques dans le cadre des approches eager.

3. Un agent apprenant utilise la base d'expériences ou les politiques apprises pour exécuter une même tâche ou des tâches similaires.

En analysant ces étapes et en prenant en considération les propositions de [33], les diérents éléments apparaissant dans un contexte d'apprentissage par la démonstration sont les suivants :

(18)

Expert Processus Séquences Agent Apprentissage Ou Base de cas Politiques

Figure 2.1  Structure d'apprentissage par la démonstration

• Une tˆache T à apprendre, par exemple déplacer correctement un personnage de jeu.

• Un environnement E qui dans notre cas est le jeu.

• Un d´emonstrateur D qui exécute la tâche T dans l'environnement E. Un dé-monstrateur peut être un humain ou un agent logiciel.

• Un agent apprenant A dont le but est d'apprendre à exécuter la tâche T dans l'environnement E en observant D.

Comme l'agent que nous allons développer à partir des démonstrations de l'expert utilisera les diagrammes états transitions dans la prise de décision, nous présentons ces structures dans la section suivante.

2.4 Les diagrammes états-transitions

Les diagrammes états-transitions (Finite State Machine - FSM) sont des structures de prise de décision utilisées pour contrôler les personnages de jeux vidéo. Comme leur nom l'indique, elles sont constituées d'états et de transitions [29, 17]. A chaque ins-tant du jeu, un personnage contrôlé par cette structure occupe un état particulier de l'ensemble des états. Une transition relie un état de départ et un état cible et est carac-térisée par des conditions qui, si elles sont remplies conduisent à son déclenchement. Si une transition est déclenchée, elle aboutit au changement de l'état du personnage qui

(19)

passe de l'état courant à un état cible. Partons d'un exemple pour essayer d'expliciter le fonctionnement d'une structure de diagramme états-transitions.

Conduit Arrêt Changer la roue Moteur en marche Crevaison Véhicule à l'arrêt Roue changée Départ

Figure 2.2  Diagramme états-transitions pour un agent conducteur de voiture

La gure2.2illustre1un diagramme états-transitions utilisé pour contrôler un agent

conducteur de voiture. Pour ce cas, le comportement mis en évidence est la capacité du conducteur à réagir correctement en cas de crevaison. Si un pneu éclate, l'agent conducteur commence par immobiliser la voiture, change la roue, redémarre la voi-ture et continue à nouveau son chemin. Nous pouvons remarquer que pour gérer ce comportement, il a fallu quatre états2 et quatre transitions3.

L'implémentation de diagrammes états-transitions implique de déterminer à l'avance les états, les transitions ainsi que les conditions liées aux transitions. Cette tâche n'est pas dicile dans le cas où la structure est destinée au contrôle d'un personnage évoluant dans un environnement pas très changeant. Dans ce cas, les états et les transitions peuvent être déterminés plus ou moins facilement. En revanche, si le diagramme états-transitions est destiné à contrôler un agent évoluant dans un environnement dynamique, la tâche peut s'avérer très fastidieuse. En eet, il peut-être très dicile de déterminer à l'avance tous les états et les transitions possibles. Aussi, comme un diagramme est aecté au contrôle d'un seul personnage, la tâche peut-être très compliquée si les besoins consistent à contrôler plusieurs personnages car ceci implique de développer autant de diagrammes qu'il y a de personnages.

1. Pour plus de détails sur les notations, consulter [29] 2. Rectangles aux coins arrondis

(20)

Dans ce travail, nous tentons de réduire les contraintes liées à l'implémentation de diagrammes états-transitions par une approche qui consiste à créer automatiquement des diagrammes états-transitions. Nous analyserons également les possibilités d'amélio-rer les performances de ces diagrammes à travers l'utilisation de certaines techniques d'apprentissage automatique. Pour la suite, nous montrons une des approches d'ap-prentissage automatique dont certains aspects seront mis à prot pour améliorer les performances des diagrammes états-transitions.

2.5 Le raisonnement à base de cas

2.5.1 Principes du raisonnement à base de cas

Le raisonnement à base de cas (Case Based Reasoning - CBR) est une approche de résolution de problèmes qui utilise l'expérience passée pour comprendre de nouvelles situations. La solution à un nouveau problème (problème cible) est trouvée en utilisant les solutions des problèmes précédents. Des similitudes entre le problème cible et le problème antérieur sont recherchées et permettent de trouver une solution au problème cible. La nouvelle solution est obtenue en transposant la solution trouvée au problème cible. L'expérience passée est habituellement représentée sous forme de cas. L'ensemble des cas forme une base de cas qui constitue la mémoire d'un système CBR.

Les travaux de Riesbeck en sciences cognitives [37] peuvent être considérés comme étant à l'origine du CBR. Dans ses travaux portant sur l'étude de la mémoire et du raisonnement humain, Schank a proposé une théorie de la mémoire dynamique. Se-lon cette théorie, notre mémoire est organisée sous forme de structures interconnectées et organisées hiérarchiquement et qui sont à la base du raisonnement, de la compré-hension et de la mémorisation. Les memory organization packets (MOPs) comme il les a appelées, sauvegardent des épisodes de notre vie et sont appelées à chaque fois qu'une nouvelle situation l'exige. Partant de ces observations sur le raisonnement hu-main, il a proposé deux modèles de raisonnement : memory − based reasoning model et memory − based expert systems. Ces modèles sont alors considérés comme les fon-dements du raisonnement à base de cas.

En se basant sur l'utilisation de l'expérience passée pour résoudre de nouveaux problèmes, l'approche CBR utilise surtout des connaissances empiriques permettant ainsi de limiter les problèmes d'acquisition des connaissances théoriques qui peuvent rendre dicile la conception des bases de connaissances de taille importante. En eet,

(21)

la possibilité d'ajouter de nouveaux cas durant l'utilisation d'un système CBR permet de déployer des systèmes avec une quantité minimale de cas ce qui permet de réduire la quantité de connaissances nécessaires au début de l'exploitation.

Depuis quelques années, l'approche CBR connait un regain de popularité et est utilisée dans la conception de diérents systèmes notamment les systèmes d'aide à la décision et les  help desk . Également, l'approche CBR peut-être combinée avec dif-férentes méthodes d'apprentissage automatique dans la mise en place des approches hybrides qui sont le plus souvent plus puissantes que les simples méthodes d'apprentis-sage. En conséquence, ceci en fait une des techniques d'intelligence articielle la plus répandue actuellement.

2.5.2 Composantes d'un système de raisonnement à base de cas

Un système CBR est un moteur de raisonnement basé sur les principes du raison-nement à base de cas. Un système CBR utilise les expériences passées contenues dans une base de cas pour inférer des solutions à de nouveaux problèmes. Le fonctionnement d'un système CBR repose sur la recherche de similarité entre un nouveau problème et les situations contenues dans sa base de connaissances. En présence d'une nouvelle situation, un ensemble de caractéristiques décrivant le nouveau problème est formé et une recherche est eectuée dans la base de cas dans l'objectif de trouver des cas dont la description est plus similaire au problème posé. A partir du cas le plus pertinent est extraite la solution pour ns de réutilisation. Si la solution a besoin d'être améliorée, elle est adaptée et révisée an qu'elle corresponde le plus correctement possible au pro-blème à résoudre. Enn, le nouveau propro-blème et la solution correspondante sont mis ensemble pour former un nouveau cas qui est ensuite ajouté dans la base de cas. Cet ajout permet d'enrichir la base d'expérience d'une nouvelle situation. Cette manière de raisonnement forme un cycle considérée comme le modèle de raisonnement CBR. Nous considérons la gure 2.3 pour montrer que ce cycle est en fait une combinaison de processus et de connaissances.

Nous nous appuyons sur [21] pour distinguer les diérents connaissances et processus qui entrent dans le cycle de raisonnement CBR.

2.5.2.1 Les connaissances

• Les cas: sont spéciés par des attributs caractérisant la description des problèmes, leurs solutions et parfois l'impact de l'application de ces solutions. Les cas doivent

(22)

Figure 2.3  Cycle de raisonnement d'un moteur CBR (Source Wikipédia 2012) être bien représentés en ce sens que la représentation a des incidences sur le processus de recherche.

• Les mesures de similarit´e : sont utilisées pour évaluer la similarité entre les cas lors de la phase de recherche.

• Les connaissances d0adaptation: sont utilisées pour la transformation de la solu-tion. Elles sont souvent organisées sous forme de règles et permettent d'évaluer les écarts entre la description du problème et la solution proposée.

• La base de cas: contient l'ensemble des cas et constitue la base de connaissances du moteur CBR. La base de cas doit être structurée de façon à faciliter la modication et l'ajout de nouveaux cas ainsi que la recherche de cas.

2.5.2.2 Les processus

• La recherche (”retrieval”): consiste à eectuer des recherches dans la base de cas pour trouver des cas qui sont les plus similaires au problème posé. Préalablement, il faut obtenir une description du problème à résoudre et cette dernière est utilisée pour eectuer la recherche de cas similaires. Plusieurs techniques de recherche existent, certaines inspirées des techniques d'apprentissage automatique. Souvent, c'est la méthode des plus proches voisins (Knn) qui est utilisée.

(23)

• La r´eutilisation ou adaptation (”reuse”) : A cette étape, la solution suggérée par les cas similaires à la description du problème est utilisée pour résoudre le pro-blème posé. A ce niveau, deux cas de gure peuvent se présenter : soit la solution s'apparie correctement avec le nouveau problème, et elle peut être directement réutilisée ; soit elle ne correspond pas à la solution recherchée pour résoudre le pro-blème et par conséquent, elle doit être adaptée. La solution adaptée est construite à partir de la solution retrouvée an qu'elle soit convenable au nouveau problème. • La r´evision (”Revise”) : Dans cette phase, la nouvelle solution est choisie pour être exécutée par le système. Des mesures de performances sont également eec-tuées pour vérier si la solution résout correctement le problème posé. Que ce soit en cas de succès ou d'échec, les mesures obtenues seront utilisées pour améliorer le raisonnement du système CBR

• M ´emorisation ou apprentissage (”retain”) : Un cas contenant la description du problème et la solution révisée est ajouté dans la base de cas. La mémorisation est une forme d'apprentissage du système en ce sens que le cas ajouté décrit une nouvelle situation améliorant ainsi l'expérience du système.

• M aintenance : Tout au long de son cycle de vie, un système CBR doit intégrer des tâches de maintenance. La maintenance de la base de cas est souvent fait en diéré et est réalisée dans le but d'améliorer les performances du système. Ainsi des stratégies de suppression de cas et de réorganisation de la base de cas pour accélérer le processus de recherche sont mises en place pour atteindre ce but. Étant donné que dans nos travaux nous serons amenés à utiliser des techniques de maintenance de la base de cas, nous traitons de cet aspect à la section suivante. • Construction (”Authoring”) : Ce processus constitue l'étape de base dans la construction d'un système CBR. Elle correspond à la structuration initiale de la base de cas et des autres formes de connaissances à partir de la collecte de données provenant de diérents sources du domaine.

2.5.3 La maintenance de la base de cas

La base de cas est une collection de cas, lesquels constituent la source de connaissance la plus pertinente dans un système CBR. Au centre du raisonnement d'un système CBR se trouve également la même base de cas. Par conséquent, les performances d'un système CBR sont fortement dépendantes du contenu de la base de cas. C'est dans ce cadre qu'intervient le maintenance de la base de cas. Selon Shiu [45], la maintenance de la base de cas met en ÷uvre des politiques de restructuration de la base de cas,

(24)

de révision du contenu de la base de cas an de faciliter le raisonnement futur dans le souci d'atteindre un ensemble d'objectifs de performance. Plusieurs approches de maintenance de la base de cas existent et visent la diminution de la taille de la base de cas an d'accélérer la phase de recherche. Pour ces stratégies, le principe est le même et consiste au balayage de la base de cas pour détecter et supprimer les cas correspondant aux critères choisis. La diérence se situe dans les stratégies de suppression des cas.

Smyth et al [48] ont proposé deux notions pour évaluer la qualité de la base de cas et qui peuvent être utilisées comme mesures de référence pour la maintenance de la base de cas.

• La compétence : caractérise le nombre de problèmes diérents pour lesquels un système de raisonnement à base de cas peut apporter une solution.

• La performance : caractérise le temps nécessaire pour apporter une solution à un cas cible. La mesure dépend donc du temps de recherche et d'adaptation d'une solution.

Pour la suite, nous survolons quelques travaux qui ont été menés dans le cadre de la maintenance de la base de cas.

Markovitch et al [26] eectue une suppression aléatoire de cas dans la base de cas lorsque celle-ci atteint un certain seuil. A partir de leurs expérimentations, ils ont montré que la suppression aléatoire peut donner de bons résultats dans certains cas.

Minton [31] propose une stratégie de suppression de cas basée sur le problème d'uti-lité. Les cas dont les valeurs d'utilité sont négatives sont supprimées de la base de cas.

Smyth et al [49] exploite les aspects liés à la taille et la densité de la base de cas pour proposer une solution de suppression de cas qui conserve la compétence d'un système de raisonnement à base de cas.

Lamontagne et Romdhane [39] utilisent l'apprentissage par renforcement dans l'ob-jectif d'améliorer les performances d'un système CBR. Par apprentissage par renforce-ment, ils déterminent la valeur de chaque cas contenu dans la base de cas. Les valeurs obtenues sont utilisées pour déterminer les cas à supprimer de la base de cas lors de la phase de maintenance. Les expérimentations qu'ils ont menées montrent que les per-formances globales d'un système CBR peuvent être améliorées par l'apprentissage par renforcement.

(25)

Les approches ci-haut consistent en des stratégies de suppression de cas an de réduire la taille de la base de cas originale. Smyth et al [50] proposent une autre approche qui consiste à construire une base de cas réduite en partant d'une base de cas vierge en ajoutant successivement des cas. Chaque cas choisi pour être ajouté dans la base de cas donne la valeur maximale par rapport à un critère déterminé. Plus précisément, chaque cas maximise le critère de compétence. La base de cas est construite en utilisant l'algorithme des plus proches voisins (CNN) associée à une mesure (critère maximisé) qui sera appliquée pour chaque cas an de décider s'il faut l'ajouter ou non dans la nouvelle base de cas. La mesure est la valeur de recouvrement relatif (Relative coverage). La stratégie consiste à ranger les cas de la base de cas d'origine suivant cette mesure et puis d'utiliser l'algorithme CNN pour construire la base de cas réduite.

2.6 Algorithme des plus proches voisins

L'algorithme des k plus proches voisins (k − Nearest Neighbor) fait parti des mé-thodes d'apprentissage à base d'instances [32]. La particularité des approches d'ap-prentissage à base d'instances est qu'elles ne construisent pas de fonctions à partir des exemples d'entraînement. Au contraire, elles ne font qu'emmagasiner les exemples et le calcul n'est fait que si le programme a une nouvelle instance à traiter. Pour le cas particulier des k plus proches voisins, les instances sont des points dans un espace à n-dimensions où n est le nombre d'attributs. L'idée est que les propriétés d'un point d'entrée donné x sont susceptibles d'être similaires à des points situés au voisinage de x [41]. Pour trouver les plus proches voisins de x il faut utiliser une métrique D(x, xi) qui dénit la distance qui sépare x et xi situé au voisinage de x. L'algorithme des k plus proches voisins est très simple à implémenter et est très robuste aux erreurs. L'al-gorithme sera utilisé dans la matérialisation de l'approche proposée plus précisément lors de la maintenance de la base de cas.

2.7 Le Clustering

Dans ce travail, nous serons amenés à appliquer des techniques de regroupement (clus-tering) aux cellules de la grille de jeu. Plus précisément, nous appliquons des techniques de regroupement hiérarchique (clustering hiérarchique). C'est pour cette raison que nous avons choisi d'aborder certains aspects liés à ce type de regroupement.

(26)

2.7.1 Introduction

Le  clustering  est une approche de classication non supervisée dont l'objec-tif est de regrouper des objets qui se ressemblent en classes. La ressemblance entre les objets est établit soit par une mesure de dissimilarit´e, soit par une mesure de similarit´e [14]. Dans le cas d'une mesure de dissimilarité, plus elle est faible plus les objets sont similaires. Et dans le cas d'une mesure de similarité, plus elle grande plus les objets sont similaires. Pour la suite, nous présentons une technique de  clustering  qui nous utilisons dans nos travaux. Plusieurs techniques existent, le lecteur intéressé peut consulter [14].

2.7.2 Clustering hiérarchique

b c e d a f bc ef bcd bcdef abcdef agglomerative Divisive

Figure 2.4  Clustering hiérarchique - Exemple

Considérons un ensemble de n objets à regrouper. Les approches de clustering hié-rarchique peuvent-être subdivisées en deux catégories :

• Les méthodes agglomeratives : consistent d'abord à former n clusters (un cluster pour chaque objet). Ensuite, par une série de fusions successives, chaque cluster est fusionné avec le cluster le plus similaire jusqu'à la formation d'un cluster contenant tous les n objets.

(27)

• Les méthodes divisives : consistent à considérer l'ensemble des n objets comme formant un seul cluster. Ensuite, par une série de partitions successives, le pro-cessus va conduire à création de n clusters, chacun contenant un seul objet.

Dans ce travail, nous utilisons les méthodes agglomeratives. La gure 2.4 montre un exemple d'une classication hiérarchique.

2.8 Théorie de l'information

Dans cette section, nous présentons deux mesures de la théorie de l'information [13] que sont utilisées dans nos travaux à savoir l'entropie et l'entropie conditionnelle. Nous commençons par donner l'objectif de la théorie de l'information puis nous donnerons les dénitions des mesures ci-dessus citées.

2.8.1 Objectifs de la théorie de l'information

La théorie de l'information a pour objectif de mesurer l'information transmise par un canal. Il faut donc spécier ce qu'est l'information et ensuite déterminer comment la quantier. La notion d'information n'est pas facile à dénir, nous préférons utiliser la notion de source d0inf ormationqui consiste en une variable al´eatoire. Pour mesurer la quantité d'information apportée par une source, nous utilisons la notion d'entropie.

2.8.2 Entropie

Considérons une variable al´eatoire discrète X avec une loi de probabilité :

p(x) = P r{X = x}, x ∈ X.

Dénition L'entropie H(X) [13] d'une variable aléatoire discrète X est dénie par :

H (X) = −P

(28)

H(X)mesure l'incertitude qui existe sur X. Pour mieux expliciter, observons le cas d'une variable de Bernoulli : X peut prendre des valeurs avec des probabilités p et 1−p. La gure 2.5 montre la courbe H (X) en fonction de p. L'entropie4 est maximale pour

p = 0, 5 et vaut zéro pour p = 0 et p = 1. L'interprétation possible de ce résultat est que plus nous pouvons deviner la valeur qui sortira, plus H (X) va décroitre pour nir à 0 lorsque l'une des deux valeurs est certaine.

p H(X) 0 0 0,5 1 1

Figure 2.5  Entropie d'une variable de Bernoulli (Source [13])

2.8.3 Entropie conditionnelle

Dénition L'entropie conditionnelle [13] de X sachant Y est dénie par :

H (X | Y ) =P

yH (X | Y = y) .p (y)

H (X | Y )mesure la quantité d'information contenue dans X lorsque Y est connue. En d'autres mots, H (X | Y ) est une mesure de l'incertitude moyenne qui reste sur X lorsque Y est connue. Nous avons toujours : H (X | Y ) ≤ H (X). Par conséquent, le conditionnement réduit l'entropie.

(29)

2.9 Notions sur les agents

Dans le cadre de nos travaux, nous utiliserons souvent le concept d'agent. Ce concept est utilisé dans plusieurs domaines et pour le cas qui nous intéresse, nous allons consi-dérer le domaine de l'informatique. Dans cette section, nous traitons de ce concept et de certains aspects qui l'entourent. Notre objectif n'étant pas d'entrer en profondeur, nous donnons les notions nécessaires pour comprendre le but de son utilisation dans ce travail. Pour le lecteur intéressé à avoir plus de détails, il peut consulter [57, 43].

2.9.1 Qu'est-ce qu'un agent ?

La meilleure façon de commencer serait de dénir le terme agent. Trouver une dénition sur laquelle tout le monde s'entend n'est pas chose facile car on trouve dans le domaine plusieurs dénitions pour ce concept [57,43]. Nous donnons deux dénitions proposées par diérents chercheurs. Nous pensons que ces dénitions vont permettre de cerner les concepts clés qui entourent cette notion.

Selon Russell et Norvig [43],

Un agent est toute entité qui peut être considéré comme percevant son environnement grâce à des capteurs et qui agit sur cette environnement via des effecteurs.

Selon Wooldridge [57],

Un agent est un système informatique, situ´e dans un environnement, qui agit d'une façon autonome pour atteindre les objectifs pour lesquels il a été conçu.

De ces deux dénitions, nous pouvons ressortir trois concepts importants :

• environnement est constitué par le monde dans lequel évolue l'agent.

• percevant, situ´e signie que l'agent est capable de communiquer avec l'environ-nement dans lequel il se trouve. Il peut ainsi capter des observations de son en-vironnement et réagir en adoptant des actions susceptibles de modier l'état de l'environnement.

• autonome signie que l'agent a le contrôle sur son état interne et ses actions et qu'il est capable d'agir par lui-même sans intervention directe d'un humain.

(30)

La gure 2.6 montre un agent et son environnement. L'agent perçoit une observation de l'environnement et propose une action appropriée.

Agent

Environnement

Action Observation

Figure 2.6  Un agent et son environnement (Source [57])

2.9.2 Structure des agents

Dans la dénition que nous venons de donner, nous nous sommes uniquement in-téressé au comportement externe de l'agent, à savoir l'action exécutée étant donnée une observation de l'environnement. On pourrait alors se demander comment est prise la décision d'exécuter une action en réponse à une entrée sensorielle ? Selon Russell et Norvig [43], l'association des percepts aux actions est réalisée par un programme agent et la tâche de l'intelligence articielle est de concevoir ces programmes. Aussi, un tel programme doit s'exécuter sur un équipement informatique permettant de capter l'état de l'environnement et d'agir sur le même environnement. C'est cet équipement qu'il appelle architecture. Ainsi, un agent peut-être considéré comme une combinaison :

agent = architecture + programme

Le développement d'un agent consiste donc à déterminer l'architecture ainsi que le programme approprié. Étant donné le travail que nous voulons réaliser, l'architecture que nous avons considéré est un PC ordinaire. Nous n'aurons donc pas à mettre en place une architecture particulière. Ce travail est donc consacré dans sa totalité à la problématique de conception d'un programme agent. Ainsi, le terme agent fait référence à un agent logiciel.

(31)

2.10 Le Pacman

Pacman est un jeu vidéo créée par Toru Iwatani pour Namco [8], une société japo-naise de développement de jeux vidéo. Le jeu consiste à déplacer Pacman, un personnage en forme de cercle jaune dont un secteur est manquant5. Le déplacement du personnage

se fait au sein d'un labyrinthe contenant des pac-gommes et le but est que le Pacman puisse manger toutes les pac-gommes en évitant les fantômes6 qui sont à sa poursuite.

Étant donné que le Pacman se déplace sur deux axes (↔l), il peut prendre quatre di-rections : gauche, droite, haut, bas. On peut distinguer trois types de pac-gommes [9] :

• La pac-gomme de base : elle ne procure aucun eet particulier au Pacman à part un nombre déterminé de points.

• La pac-gomme fruit : même si elle ne donne pas d'eet particulier au Pacman, elle permet au Pacman d'avoir un bonus de points. Elle apparait à certains moments de jeu.

• La super pac-gomme : donne au Pacman des pouvoirs supplémentaires pour une courte durée. Dès que le Pacman mange ce type de pac-gommes, il acquiert la capacité de pouvoir chasser les fantômes qui sont en ce moment passés en état de fuite. Si le Pacman arrive à attraper un fantôme, des points supplémentaires lui sont attribués et le fantôme attrapé retourne à la case de départ.

Dès son lancement, le jeu connaît un succès sans précédent et devient l'un des jeux le plus populaire durant les trente dernières années. Le record de jeu a été réalisé en 1999 par Billy mitchell où il a réalisé un score de 3,333,560 points [10].

2.10.1 Le banc d'essai pour nos expérimentations : la version

Pacman de Benny Chow

Pour les besoins de nos expérimentations, nous avons opté pour l'utilisation d'une variante de jeu original développée en Java par Benny Chow [5]. La décision d'utiliser cette variante a été motivée par plusieurs raisons. D'une part, les diérences avec la version ocielle sont moindres. D'autres part, le code source est accessible gratuitement. La possibilité d'accéder à l'environnement de jeu et d'ajouter des modules externes est ainsi facilitée.

5. Le secteur manquant fait oce de bouche 6. Les fantômes sont au nombre de quatre

(32)

2.10.1.1 Les personnages du jeu Le Pacman

Il est le personnage principal du jeu. Le Pacman se déplace dans le labyrinthe du jeu dans le but de manger toutes les pac-gommes an d'accumuler les maximum de points tout en évitant les fantômes. Le Pacman (gure 2.7) peut prendre 4 formes dépendamment de la direction dans laquelle il regarde.

Gauche

Haut Droite

Bas

Figure 2.7  Les diérentes formes du Pacman

Les fantômes

Les fantômes sont au nombre de quatre (gure 2.8). Tout au long du jeu, leur objectif est d'attaquer le Pacman s'il y a aucune super pac-gommes active, sinon elles sont en état de fuite7.

Inky Clyde

Blinky Pinky

Figure 2.8  Les fantômes

(33)

2.10.1.2 L'environnement du jeu

Les personnages du jeu Pacman évolue dans un labyrinthe. La représentation interne de la structure du labyrinthe consiste en un tableau en deux dimensions de 28 colonnes et 31 lignes pour un total de 868 cases. La gure 2.9 illustre la représentation interne du premier niveau de jeu.

Modélisation du labyrinthe 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Figure 2.9  Environnement de jeu

Dans nos expérimentations, nous avons utilisé uniquement le premier niveau de jeu. Nos objectifs étant d'expérimenter certaines techniques d'apprentissage automatique, l'environnement du premier niveau du jeu semble raisonnable. Le tableau2.10montre le nombre maximal de points8 qui peuvent être obtenus à ce niveau. Dans nos

expérimen-tations, le score va constituer une des mesures de performance des agents développés.

Pac-gommes Super pac-gommes Fantômes Fruit Total

300 * 10 points 4 * 50 points 4 * 1600 points 750 points 10 350 points Figure 2.10  Répartition des points pour le premier niveau de jeu

2.10.1.3 Structure du programme du jeu

Développée suivant un design orienté objet, le programme en Java comprend 4 principales classes et les autres classes héritent de ces dernières :

(34)

• Thing : classe dont hérite les éléments mobiles de jeu à savoir les fantômes (Ghost), les fruits (Fruit) et le Pacman.

• GameModel : représente l'état de jeu ainsi que les méthodes permettant d'interagir avec les autres objets.

• Pacman : il s'agit de la classe principale et contrôle l'exécution de jeu.

• GameUI : classe responsable de l'achage de la grille de jeu et des objets s'y trouvant. La classe est responsable de la mise à jour de la grille de jeu.

2.10.2 Des agents pour le jeu Pacman

Le comportement aléatoire de certains personnages de jeu9 concède au Pacman

un niveau de complexité élevé qui semble attirer depuis quelques années une certaine communauté de chercheurs. Ces chercheurs voient en Pacman un banc d'essai idéal pour expérimenter certaines techniques d'intelligence articielle.

Nous présentons des travaux réalisés dans le but de développer des agents intelligents pour le Pacman. Pour chaque travail, nous donnons les éléments de l'environnement de jeu qui sont pris en compte par l'agent dans la prise de décision. Nous présentons ces attributs car ils ont inuencé les choix de modélisation que nous avons eectués dans le but de caractériser l'environnement de jeu.

Gallagher et Ryan [18] ont développé un agent en utilisant une machine à états (FSM) et un ensemble de règles pour contrôler les mouvements du Pacman. Deux états (Retreat, Explore) sont possibles et dépendent de la distance de Manhattan (sans considération des murs) qui sépare le Pacman et un fantôme. Il faut aussi rappeler que c'est une version simpliée du Pacman qui ne contient qu'un seul fantôme. Des poids sont associés aux règles et ces dernières sont évoluées à l'aide d'un algorithme évolutionnaire [3]. Un seul élément de l'environnement de jeu est considéré :

• La distance de Manhattan (sans considération des murs) entre le Pacman et un fantôme. Cette dernière est utilisée pour décider quand changer d'état.

Robles et Lucas [38] utilisent un arbre de recherche pour contrôler le Pacman. L'arbre de recherche (gure 2.11) contient tous les chemins possibles et ce dernier est utilisé

(35)

pour évaluer ces chemins. Les n÷uds de l'arbre correspondent à une position de la grille et chaque n÷ud contient un élément de jeu (rien, une pac-gommes, une super pac-gommes, Pacman ou un fantôme). L'évaluation des chemins consiste à déterminer les chemins les plus sûrs et les moins sûrs. Pour chaque chemin, sa valeur est calculée en fonction des éléments contenus dans les n÷uds. Pour ce faire, à chaque élément pouvant être contenu dans le n÷ud est associé un poids. Par exemple, nous pourrions associer un poids de 20 à une pac-gomme de base et 50 à une super pac-gomme. La valeur du chemin étant la somme des valeurs de tous les n÷uds. Le chemin le plus sûr sera celui avec la plus grande valeur. Cependant, même si cette approche semble être prometteuse, rien ne garantit que le chemin le plus sûr soit le meilleur. Les éléments de l'environnement de jeu qui sont considérés sont les suivants :

• Les positions des éléments de jeu sur la grille de jeu : les pac-gommes, les super pac-gommes, le Pacman et les fantômes.

• Le temps d'activité du super pac-gomme.

Lucas [25] quant à lui utilise les réseaux de neurones pour contrôler les mouvements du Pacman. Le réseau reçoit en entrée un vecteur contenant les observations de l'environ-nement de jeu. Les observations de l'environl'environ-nement de jeu qui sont pris en compte sont les suivants :

• g1...g4 : distance vers chaque fantôme (prédateur). • e1..e4 : distance vers chaque fantôme (fuite). • x, y : Localisation de la cellule courante.

• pill : distance vers la pac-gomme la plus proche.

• powerP ill : distance vers la super pac-gomme la plus proche. • junction : distance vers le croisement le plus proche.

Précisons que la distance utilisée correspond au plus court chemin entre le Pacman et l'élément spécié.

Szita et Lorincz [53] quant à eux ont réalisé un agent utilisant des politiques à base de règles pour contrôler le Pacman. Les règles sont organisées pour créer des modules qui correspondent aux actions que le Pacman peut exécuter. Une priorité est accordé à chaque module et c'est sur la base de cette dernière que s'eectue le

(36)

Figure 2.11  La conguration du jeu et sa représentation en arbre (Source : [38]) choix du module à exécuter. Les politiques sont apprises à partir de ces modules et en utilisant un algorithme d'optimisation [40]. Les règles sont construites à partir de plusieurs observations dans l'environnement de jeu. Les observations de l'environnement de jeu considérées sont les suivantes :

• N earestDot : distance vers la pac-gomme la plus proche.

• N earestP owerDot : distance vers la super pac-gomme la plus proche. • N earestGhost : distance vers le fantôme le plus proche (prédateur). • N earestEdGhost : distance vers le fantôme le plus proche (fuite).

• GhostCenterDist : distance euclidienne vers des centres géométriques des fan-tômes.

• DotCenterDist: distance euclidienne vers le centre géométrique des pac-gommes encore disponibles.

La distance considérée se calcule toujours à partir de la position courante du Pacman. En plus de la distance euclidienne, nous notons l'utilisation du plus court chemin entre le Pacman et l'élément spécié.

Wirth et Gallagher [56] ont développé un agent basé sur l'analyse des régions de la grille de jeu pour décider dans quelle direction il faut aller. Le degré d'importance d'une

(37)

région est déni en fonction des éléments localisés dans cette région. Par exemple, une région dont les emplacements contient des pac-gommes et/ou des supers pac-gommes aura un degré d'importance plus élevé par rapport à une autre région dont les emplace-ments contiennent des fantômes. Ainsi, en essayant de trouver les régions importantes, ils s'assurent que le Pacman va toujours se diriger vers les zones les plus prometteuses. Pour analyser les régions de la grille, les éléments de l'environnement ci-dessous sont considérés :

• x, y : localisation de la cellule sur laquelle se trouve le Pacman. • pill : nombre de pac-gommes restant.

• powerP ill : nombre de super pac-gommes restant.

• dot : distance euclidienne entre la position courante et la pac-gomme la plus proche.

• eatenGhosts : nombre de fantômes déjà mangés.

Guan et al [54] ont développé un contrôleur pour le Pacman utilisant les réseaux de neurones avec l'algorithme Hill-Climbing. Les éléments de l'environnement de jeu qui sont pris en compte sont les suivants :

• pill : plus petite distance euclidienne entre le Pacman et la pac-gomme la plus proche.

• powerP ill : plus petite distance euclidienne entre le Pacman et la super pac-gomme la plus proche.

• normalGhost: plus petite distance euclidienne entre le Pacman le fantôme le plus proche (prédateur).

• edibleGhost : plus petite distance euclidienne entre le Pacman et le fantôme (fuite).

• f ruit : plus petite distance euclidienne entre le Pacman et un fruit.

Une analyse des éléments choisis par ces chercheurs pour caractériser l'environnement du jeu montre qu'il s'agit surtout des mesures de distances. Nous pouvons en distinguer trois : la distance de Manhattan, la distance euclidienne et le plus court chemin. Nous pensons que ces choix ont été inuencés par la conguration du plateau de jeu qui est en forme de labyrinthe.

(38)

2.11 Conclusion

Dans ce chapitre, nous avons présenté les principaux éléments qui seront utilisés pour réaliser nos travaux. Dans le chapitre qui suit, nous motivons nos choix et nous détaillons la stratégie adoptée pour matérialiser l'approche préconisée.

(39)

Acquisition des séquences de jeux

3.1 Introduction

L'objectif de notre travail est de créer automatiquement une structure de diagramme états-transitions qui modélise les séquences de jeux. Cette structure devra permettre à un agent de jouer à un bon niveau de jeu (proche de celui de l'entraîneur) tout en respectant les contraintes de temps du jeu. Nous avons choisi d'expérimenter notre approche sur un jeu de poursuite, le Pacman. Concrètement, la problématique à résoudre renferme deux problèmes principaux à savoir l'acquisition des séquences de jeux et la construction des diagrammes états-transitions. Dans ce chapitre, nous nous intéressons au problème d'acquisition de séquences de jeux. Nous allons traiter de ses particularités et de l'approche préconisée pour le résoudre.

3.2 Particularités du problème

Les séquences de jeux constituent la brique de base de la problématique que nous voulons résoudre. Une séquence de jeu décrit le comportement de l'utilisateur durant une partie de jeu. Par comportement de l'utilisateur, il faut comprendre l'action exécutée face à une observation de l'environnement. Les particularités liés à ce problème sont les suivants :

• Les séquences proviennent des parties de jeux jouées par un entraîneur. Chaque séquence de jeu est un vecteur composé d'épisodes de jeu. Chaque épisode de jeu

(40)

décrit une conguration du plateau de jeu plus l'action prise par le joueur. • L'état du plateau et les actions du joueur sont totalement observables à tout

moment. Et nous ne prenons en compte aucune autre information.

3.3 Approche préconisée

An d'acquérir les séquences de jeu, nous avons opté pour l'utilisation de l'appren-tissage par la démonstration [33, 2]. Nous commençons par donner les motivations qui nous ont poussé à choisir cette approche puis nous présenterons la stratégie adoptée pour réaliser cette tâche.

3.3.1 Motivation

Le but de l'apprentissage par la démonstration est d'apprendre à partir d'observa-tion. Un agent apprenant observe le comportement d'un expert dans le but d'imiter le comportement observé. Ce type d'apprentissage présente des avantages qui peuvent être exploités :

• l'utilisation de connaissances empiriques ;

• il facilite le transfert des connaissances. En observant directement l'expert dans la réalisation d'une tâche, l'apprenant a accès aux exemples concrets ce qui facilite le transfert des connaissances de l'expert vers l'apprenant ;

• l'imitation peut s'avérer une technique très intéressante surtout dans le cas où on veut reproduire un comportement existant dont le code n'est pas disponible ;

Eu égard à ces avantages, nous pensons que l'exploitation des possibilités oertes par l'apprentissage par la démonstration pour acquérir de l'expérience est une avenue à explorer. En eet, l'acquisition des séquences de jeux à partir des démonstrations d'un expert agissant dans des situations réelles d'exploitation nous permet de nous assurer1

d'acquérir l'expérience concrète du domaine.

(41)

Expert (Usager)

Moteur du jeu Pacman Création des épisodes de jeu action

(événement) perception

état du jeu action

(up, down, left, right)

action

(up, down, left, right) état du jeu

Séquence de jeu

Figure 3.1  Architecture d'apprentissage

3.3.2 Architecture d'apprentissage

Un élément important de l'apprentissage par la démonstration est d'observer le comportement de l'expert, à savoir les actions réalisées après une séquence de percepts2

donnée. Il faut alors mettre en place des mécanismes permettant d'une part, à l'expert de recueillir les informations sur l'état de l'environnement, et d'autre part l'expert doit pouvoir mettre à la disposition de l'environnement l'action proposée. A ces mécanismes, il faut ajouter la possibilité de créer et d'emmagasiner une séquence caractérisant le comportement de l'expert. Pour réaliser cette tâche, nous proposons une architecture (gure3.1) qui intègre les éléments qui entrent dans le cadre d'un apprentissage par la démonstration. L'architecture va permettre la collaboration entre les diérents éléments. La production des épisodes de jeu qui sont les éléments constitutifs des séquences de jeux s'eectue tant que la partie de jeu n'est pas encore terminée. Le processus d'acquisition des séquences de jeux suit l'algorithme 1.

Au lancement du jeu, les données représentant la conguration interne de la grille de jeu sont créées. Durant la partie de jeux et à chaque frame, les données caractérisants l'état de jeu sont recueillies. La conguration de la grille est mise à jour avec le nouvel

(42)

Algorithme 1 production-Séquences-Jeux

variables : grilleJeu, une conguration de la grille de jeu ´

etatJ eu, une description de l'état courant de l'environnement de jeu ´

episodeJ eu, une liste

repr´esentationGrilleJ eu, une représentation interne de la grille de jeu Au lancement du jeu

grilleJ eu ← créer-Données-Jeu(repr´esentationGrilleJeu) Tant que la partie de jeu n'est pas terminée

´

episodeJ eu ← {} ´

etatJ eu ← capturer-État-Du-Jeu

action ← obtenir-Action-Expert(grilleJeu, ´etatJeu) exécuter-Action(action)

´

episodeJ eu ← créer-Épisode-Jeu(´etatJeu, action) emmagasiner-Épisode-Jeu(´episodeJeu)

//A la n de la partie de jeu, créer une séquence de jeu à partir des épisodes de jeu créer-Séquence-Jeu

état de jeu. Après la mise à jour, l'expert détermine la meilleure action à exécuter et cette dernière est rendue disponible pour exécution. L'état de l'environnement de jeu et l'action prise sont utilisés pour former un épisode de jeu qui est ensuite emmagasiné dans une base de données en mémoire. A la n d'une partie de jeu, le contenu de la base de données en mémoire est utilisé pour constituer une séquence de jeu qui est par la suite enregistrée dans un chier. La séquence de jeu constitue donc l'historique complet du comportement de l'expert durant une partie de jeu. Pour la suite, nous entrons en détails pour chaque élément faisant partie de la solution proposée.

3.3.3 Composants de l'architecture d'apprentissage

3.3.3.1 Moteur principal du jeu

Le moteur principal du jeu qui constitue en même temps l'environnement de jeu est la version de Pacman de Benny Chow dont nous avons parlé à la section 2.10.

Figure

Figure 2.1  Structure d'apprentissage par la démonstration
Figure 2.2  Diagramme états-transitions pour un agent conducteur de voiture
Figure 2.3  Cycle de raisonnement d'un moteur CBR (Source Wikipédia 2012) être bien représentés en ce sens que la représentation a des incidences sur le processus de recherche.
Figure 2.4  Clustering hiérarchique - Exemple
+7

Références

Documents relatifs

[r]

Jeu de Kim et variantes- Le meneur de jeu (enseignant ou un élève) propose plusieurs cartes à observer.. (variantes: nombre de cartes de plus

Q3 Pour déterminer les nombres faibles on recherche pour des valeurs croissantes de d(n), les plus petits nombres ayant ce nombre de d(n) comme diviseurs. Dans cette suite on élimine

Tout entier de cette liste (L) est considéré comme entier fort s’il n’existe pas d’entier qui lui est inférieur avec un nombre de diviseurs plus grand.La liste des entiers forts

Il existe bien une infinité de configurations car on peut étendre ad libitum la taille des triangles de la première configuration avec les deux grands triangles qui restent dans le

• Il s’utilise dans l’analyse fonctionnelle pour décrire le déroulement d’un cas d’utilisation avec tous ses scénarios alternatifs en plus du scénario nominal.. • Ou

Dans le cas d’un diagramme d’états-transitions simple (sans transition concurrente), il ne peut y avoir qu’un seul état actif à la fois.. Dans ce cas, les notions d’état actif

- Si nécessaire, distribuer davantage de ressources sur le terrain de jeu. Il peut y avoir plus d'air que d'eau dans certains endroits, par exemple. - Ficelle et pinces à linge