Skip to content

Projet 1: Réalisation d'un pac-man multi agent

Description du projet

Dans ce projet votre défi va consister à implémenter différents agents (de plus en plus intelligents) incarnant pac-man dans sa version classique. La description du projet détaillée est accessible dans ce module de cours de Standford.

Notions théoriques nécessaires

Pour travailler sur ce projet vous aurez besoin de connaître les notions ci dessous. Si nous vous n'avons pas eu encore l'occasion de voir en détail certaines d'entre elles vous pouvez déja commencer à les appréhender en faisant vos propres recherches !

  • les notions de graphes et d'arbres
  • les algorithmes de recherche du plus court chemin
  • les algorithmes minimax et sa variation Expectiminimax utilisés dans la théorie des jeux et l'IA comme règle de décision.
  • l'algorithme d'élagage alpha-beta qui vous permettra de réduire le nombre de noeuds évalués lors du parcours de graphe
  • la notion de fonction d'évaluation

Environnement nécessaire

Au cours de ce projet vous aurez besoin de programmer votre agent pacman en python 3.

Si vous n'avez pas installé python

Si vous n'avez pas installé python sur votre machine, référez vous à la section pré-requis de ce cours, en installant un environnement virtuel dédié pour ce projet. Notez que vous n'aurez pas besoin pour ce projet de packages supplémentaires à python.

Code du projet

Clonez ce dépot git pour installer le code nécessaire au projet:

git clone git@github.com:HerySon/course_pacman_project.git
Le code contient différents modules permettant d'afficher le labyrinthe, de renvoyer chaque état de la partie, les actions des agents ainsi que leur intelligence artificielle. Vous n'aurez besoin de modifier dans le code que les parties concernant leur IA en implémentant dans le module multiAgentsSolution à minima la classe MinimaxAgent ainsi que les classes AlphaBetaAgent et ExpectimaxAgent si elle vous paraissent pertinentes pour modéliser votre agent.

Implémenter le code de mon agent en python

Si vous n'êtes pas familier avec python

Si vous n'êtes pas familier avec python, ca n'est pas très grave: les concepts présentés dans le cours ne dépendent pas d'un langage particulier. Vous pouvez vous formez aux bases de python pour la science des données en suivant cette leçon du cours Data Science.

L'algorithme minimax et ses variantes étant des sujets bien traités, vous trouverez facilement du code sur internet pour vous aider. N'hésitez pas à vous en servir, mais surtout en essayant de bien comprendre et tester le code que vous trouverez : je vous invite en particulier à examiner les valeurs attribuées aux noeuds de votre graphe lors du calcul du minimax !

Vous être maintenant prêt à commencer à programmer vos agents !