• Aucun résultat trouvé

Projet StarCraft : Simulation de combat – Planification multi-agents et apprentissage profond dans un jeu virtuel

N/A
N/A
Protected

Academic year: 2022

Partager "Projet StarCraft : Simulation de combat – Planification multi-agents et apprentissage profond dans un jeu virtuel"

Copied!
5
0
0

Texte intégral

(1)

Projet StarCraft : Simulation de combat – Planification multi- agents et apprentissage profond dans un jeu virtuel

IFT608 / IFT702

Planification en intelligence artificielle

Hiver 2018

Professeur: Froduald Kabanza

Dates de remise

Étape 1

Jeudi 15 mars 2018 à 9:30 AM

Étape 2

Jeudi 29 mars 2018 à 9:30 AM

Étape 3

Jeudi 12 avril 2018 à 9:30 AM

Personne-ressource : Mariane Maynard – mariane.maynard@usherbrooke.ca

L’objectif de ce projet est de se familiariser avec les algorithmes de planification multi-agent et d’apprentissage profond par renforcement en les appliquant dans le contexte d’un jeu vidéo.

Le projet est suffisamment complexe pour se faire par un groupe de 7 étudiants. Il sera évalué sur 70 points comptant pour 70% de la note finale dans le cours IFT608. Il sera ramené à 60% pour IFT702 (ne s’applique pas ici).

Comme préalable, il faut installer StarCraft 2 et son API en suivant les instructions dans le document d’installation qui sera bientôt disponible sur la page du cours.

Il se peut que des clarifications soient ajoutées ou des ajustements faits à l’énoncé au cours de la session. Un courriel sera envoyé pour avertir de tout changement majeur.

Mini-jeux de DeepMind

Blizzard et Deepmind ont mis à notre disposition un paquet de scénarios simplifiés du jeu StarCraft, surnommés « Mini-jeux » (mini games), qui sont des problèmes plus simples à résoudre pour un agent intelligent artificiel.

Pour réaliser le projet, l’équipe travaillera avec le mini-jeu « DefeatZerglingsAndBanelings », qui consiste à battre quelques Zerglings et Banelings, qui sont de la race des Zergs, à l’aide de dix marines. Lorsque les Zergs sont éliminés, cinq nouveaux Marines sont envoyés au joueur, les unités restantes de la ronde sont gardées sur le jeu et de nouveaux Zerglings et Banelings sont générés. Téléchargez le mini-jeu et jouez-y pour avoir une idée du challenge que cela pose. Pour la procédure de chargement du mini-jeu, consulter le guide d’installation.

Un autre mini-jeu très semblable se nommant « DefeatRoaches » est aussi disponible, celui-ci étant plus difficile. Comme le nom le dit, les marines doivent ici affronter des Roaches, une unité beaucoup plus forte qu’un marine et attaquant à distance, mais le principe reste le même. Il est disponible ici.

(2)

1 Étape 1 (20 points) : Simulateur de combat et Alpha-Beta Pruning Considering Durations (ABCD)

La première partie du projet consiste à se familiariser avec l’API et à implémenter le combat grâce à une version modifiée d’Alpha-Beta Pruning. Pour ce faire, il faudra utiliser l’API sc2api de Blizzard qui gère les communications avec le jeu, c’est-à-dire le traitement des requêtes sur l’état du jeu et l’émission de commandes au jeu ainsi que se baser sur le simulateur de combat dont une partie a été implémentée au cours de l’automne 2017 dans le cadre d’un projet étudiant.

Le reste de l’implémentation du simulateur se fera à cette étape et sera validée par ABCD.

1.1 Tâches à réaliser

1. Extraire les parties pertinentes du simulateur de combat de l’automne 2017. Améliorer la précision du simulateur.

2. Ajouter ou modifier les actions primitives qui seront utilisées par le simulateur, ABCD, et autres algorithmes de recherche arborescente implémentés lors des étapes subséquentes.

3. Implémenter l’algorithme ABCD, une version d’Alpha-Beta Pruning considérant les actions duratives, selon les informations contenues dans ce papier.

4. Implémenter toutes les parties nécessaires pour pouvoir tester l’algorithme dans les mini- jeux fournis.

1.2 Critères d’évaluation

Les points pour cette étape seront simplement distribués de la façon suivante :

● Implémentation du simulateur: 5 points

● Implémentation de l’algorithme ABCD : 4 points

● Exécution de la solution : 7 points

● Démonstration en classe : 4 points

L’évaluation de chacun de ces points se fera selon les critères suivants :

● Implémentation correcte;

● Exécution sans erreur et fonctionnelle dans le mini-jeu;

● Clarté de la documentation (readme);

● Démonstration réussie;

● Justification sensée des choix d’implémentation pour le simulateur et explication du déroulement de l’algorithme démontrant une bonne compréhension et faisant des liens avec les notions vues en cours lors de la démonstration en classe.

(3)

2 Étape 2 (20 points): Monte-Carlo Tree Search + Apprentissage supervisé

Une fois le simulateur de combat terminé, il sera possible d’implémenter une version modifiée de Monte-Carlo Tree Search afin de faire une meilleure planification du déroulement du combat. De plus, l’équipe devra développer un agent intelligent capable d’apprendre à combattre à partir d’enregistrements de parties (replays) grâce à l’apprentissage profond. Pour ce faire, il faudra utiliser l’API fournie par Deepmind, pysc2, une surcouche de l’API de Blizzard pour Starcraft 2 en Python et compatible avec les librairies d’apprentissage profond.

2.1 Tâches à réaliser

1. En utilisant le simulateur de combat complété à la partie précédente, implémenter l’algorithme UCTCD, une version de Monte-Carlo Tree Search considérant les actions duratives, selon les informations contenues dans ce papier et l’implémentation de Starcraft 1 disponible ici.

2. Concevoir un bot entraîné par apprentissage supervisé à partir d’enregistrements disponibles en ligne.

3. Implémenter toutes les parties nécessaires pour pouvoir tester les algorithmes.

2.2 Critères d’évaluation

Les points pour cette étape seront simplement distribués de la façon suivante :

● Implémentation de l’agent apprenant supervisé : 4 points

● Implémentation de l’algorithme UCTCD : 4 points

● Exécution de la solution : 6 points

● Démonstration en classe : 6 points

L’évaluation de chacun de ces points se fera selon les critères suivants :

● Implémentation correcte;

● Exécution sans erreur et fonctionnelle dans le mini-jeu;

● Clarté de la documentation (readme);

● Démonstration réussie;

● Explication du déroulement de l’algorithme et des choix d’implémentation pour l’architecture de l’agent supervisé démontrant une bonne compréhension et faisant des liens avec les notions vues en cours lors de la démonstration en classe.

(4)

3 Étape 3 (30 points) : Apprentissage supervisé par UCTCD

Une fois que le bot par apprentissage supervisé et que l’algorithme de recherche UCTCD seront fonctionnels, il serait intéressant que le planificateur symbolique puisse générer des replays utilisables par le bot par apprentissage. Pour ce faire, il faudra réduire considérablement le nombre d’actions générées par secondes par le bot symbolique afin de ne pas surcharger le bot par apprentissage.

Une fois la fréquence d’actions retournées atteignant un niveau acceptable pour permettre l’apprentissage supervisé, l’agent de l’étape précédente sera entraîné à partir des enregistrements de parties jouées par l’agent symbolique. L’équipe devra choisir les hyperparamètres et

implémenter des méthodes d’optimisation et de régularisation en vue de converger vers la solution la plus optimale possible.

3.1 Tâches à réaliser

1. Diminuer le nombre d’actions générées par le bot symbolique à un niveau humain, ou presque.

2. Ajuster les hyperparamètres du bot par apprentissage pour se servir des nouvelles données d’apprentissage.

3. Implémenter toutes les parties nécessaires pour pouvoir tester l’algorithme dans les mini- jeux fournis.

3.2 Critères d’évaluation

Les points pour cette étape seront simplement distribués de la façon suivante :

● Implémentation de la solution (avec corrections des solutions aux 2 étapes précédentes si applicable) : 8 points

● Performance de la solution et précision de l’agent supervisé : 2 points

● Exécution de la solution : 14 points

● Démonstration en classe : 6 points

L’évaluation de chacun de ces points se fera selon les critères suivants :

● Implémentation correcte;

● Exécution sans erreur et fonctionnelle dans le mini-jeu;

● Clarté de la documentation (readme);

● Démonstration réussie;

● Explication du déroulement des algorithmes démontrant une bonne compréhension et faisant des liens avec les notions vues en cours lors de la démonstration en classe.

(5)

4 Livrables

Pour chaque étape, il vous faut livrer une archive ayant le contenu suivant:

1. Tout le code qui vous permet d’exécuter l’agent qui utilise votre implémentation des algorithmes symboliques (ABCD seulement pour l’étape 1, MCTS par la suite) pour le combat contre les Roaches ou les Zerglings;

2. Tout le code qui vous permet d’entraîner l’agent sur des enregistrements et de le tester sur un mini-jeu (sauf étape 1);

3. Un fichier texte readme.md décrivant votre solution :

a. L’entête doit être pour les auteurs, où doivent se trouver les prénoms, noms, matricules et courriels des membres de votre équipe;

b. Une section expliquera comment exécuter votre solution;

c. Une autre décrira les détails de l’implémentation.

4. Si applicable, tout le matériel nécessaire à votre démonstration en classe : Power Point (fichiers ppt, pptx et pdf acceptés), vidéos, images, etc.

5 Soumission

Vous devez soumettre un livrable part étape (etape1.zip, etape2.zip et etape-finale.zip) par turnin sur le site opus.dinf.usherbrooke.ca au plus tard aux dates spécifiées en entête de cet énoncé.

Une remise tardive sera pénalisée de 10% dans la première tranche de 3h, 20% dans la première tranche de 6h, et ainsi de suite. Aucune soumission pour une étape ne sera acceptée après 23h59 le jour même de sa remise et démonstration.

Les remises doivent respecter scrupuleusement les consignes données dans l’énoncé. Un non- respect des consignes qui entraîne une complication dans la correction sera pénalisé en fonction de l’écart des consignes. Dans le pire cas, si une tâche ne s’exécute pas et qu’il devient difficile de déterminer en un temps raisonnable si c’est à cause du non-respect des consignes ou à cause des erreurs, elle risque d’être évaluée à zéro.

Il est à noter qu’après chacune des deux premières étapes, votre code sera rendu public au reste de la classe afin de favoriser l’apprentissage pour tous et donner un point de départ équitable à tous pour réussir les étapes subséquentes.

6 Présentations avec démonstrations

Chaque étape du projet sera présentée en classe durant la période prévue au plan de cours, c’est-à- dire le jour de la remise. Chaque équipe présentera selon un horaire préétabli. La présence est obligatoire durant sa propre démonstration, mais facultative pour les autres présentations. Vous êtes tout de même invités à rester et participer aux présentations. Différentes équipes peuvent s’entraider et partager l'expérience, mais chaque équipe doit réaliser son projet de façon indépendante. Même si je vais prendre des notes me permettant de faire une évaluation préliminaire, l’évaluation finale sera basée sur les remises.

Références

Documents relatifs

After a fire test on a slab showed an unexpected shear failure of a glued laminated timber beam, a series of oven tests was carried out to study the shear behaviour of the

Dans In this situation, an excess of free water is the single and leading cause of hyponatremia and may be exacerbated by a thirst disorder, a loss of residual renal function and

Enfin pour offrir aux agents la possibilit ´e d’exploiter pleinement les moteurs d’inf ´erence s ´emantique, le cœur de la probl ´ematique adress ´ee par cette th `ese vise `a

But : A partir de ` donn´ ees d’entraˆınement, on veut apprendre une loi de pr´ ediction pour : pr´ edire une donn´ ee de sortie y ` a partir d’une donn´ ee d’entr´ ee x,

— Apprentissage supervisé : Dans ce type de problème, on cherche à définir une règle de

L’idée de se concentrer sur des plans li- néaires peut être justifiée dans ce cadre lorsque l’agent en charge de l’exécution (qui peut être différent de l’agent qui

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des

Dans cet article, nous proposons un réseau convolutionnel, associé à un mécanisme d’attention, permettant l’exploitation du signal audio brut, afin non seulement de classifier,