Sujet du projet
Transcription
Sujet du projet
Master 2 IAGL Intelligence artificielle 2009-2010 Programmation d’un joueur artificiel Version du 23 février 2010 Le but du projet est de programmer un joueur artificiel pour un jeu de stratégie combinatoire abstrait, c’est-à-dire un jeu : – qui oppose deux joueurs ; – où les joueurs jouent à tour de rôle ; – où tous les éléments sont connus (information complète) ; – et où le hasard n’intervient pas. Le travail sera réalisé en groupe de 3 à 5 étudiants. Choix d’un jeu Votre première tâche consiste à choisir un jeu. Je vous conseille de privilégier un jeu que vous pratiquez (ou avez pratiqué) et dont vous connaissez bien les règles. Voici une liste non exhaustive de jeux possibles : dames, dames chinoises, Gomoku, Lines of action, Othello, Puissance 4, etc. Vous pouvez faire le choix d’un jeu qui n’est pas dans cette liste, à condition qu’il respecte les critères édictés au-dessus et qu’il présente une combinatoire suffisamment élevée pour être intéressant à traiter. Cahier des charges Une fois le jeu choisi, il vous faudra développer un programme respectant le cahier des charges suivant : – le programme peut être facilement installé et/ou exécuté par l’utilisateur ; – le programme fonctionne sous Linux ; – le programme dispose d’une interface graphique ; – le programme permet de choisir entre un mode humain-machine et un mode machinemachine ; – la machine doit jouer intelligemment ; – en mode humain-machine, l’utilisateur peut choisir un niveau de difficulté (par exemple : débutant, intermédiaire ou expert) ; – l’utilisateur peut demander un conseil au programme pour jouer un coup à sa place ; – l’utilisateur peut imposer une limite de temps pour jouer un coup ; – les parties (terminées ou non) peuvent être enregistrées ; – le programme dispose d’une documentation pour l’utilisateur ; – le code du programme est commenté et documenté ; – le code du programme est en licence open source. Par ailleurs, le choix définitif du (ou des) langage(s) de programmation pour la réalisation du projet est laissé à votre convenance, sachant que ma préférence personnelle s’oriente vers Java. L’ensemble de ce cahier des charges est négociable. Vous devez vous fixer un objectif raisonnable au début du projet et faire le nécessaire pour l’atteindre à la fin ; cet objectif sera consigné lors de la première séance de travaux pratiques. Nous ferons ensuite un point sur l’avancement de votre projet lors de chaque séance. 1 Évaluation Vous serez essentiellement évalués sur votre capacité à atteindre l’objectif que vous vous serez vous-même fixé et sur votre aptitude à travailler efficacement en équipe. Évidemment, la composante résolution de problèmes et jeux en intelligence artificielle du projet est la plus importante. Programmation Plus concrètement, je vous demanderai de me remettre, à l’issue de la première séance de travaux pratiques (1er février 2010), votre « feuille de route ». Ce document indiquera le nom des étudiants qui composent votre groupe, le rôle de chacun dans le cadre du projet (par exemple : coordinateur du groupe, responsable du code, de la documentation, du rapport, etc.), le jeu que vous avez choisi et la raison pour laquelle vous l’avez choisi, le cahier des charges que vous avez retenu et que nous aurons discuté lors de cette séance, et enfin votre langage de programmation et la raison pour laquelle vous l’avez choisi. Je vous conseille de réfléchir à ces questions dès le moment où vous aurez pris connaissance de ce sujet. Lors de la dernière séance de travaux pratiques (23 février 2010), vous me présenterez une démonstration de votre programme, même si sa réalisation n’est pas encore tout à fait achevée. Cela signifie donc qu’à cette date une première version “jouable” devra être disponible. Je vous laisserai ensuite quelques jours pour paufiner votre travail. La version définitive devra être rendue au plus tard le 5 mars 2010 12 mars 2010 sous la forme d’une archive compressée au format TGZ contenant les sources du programme. Rédaction Parallèlement au programme, je vous demande de rédiger un rapport de 6 à 10 pages. Ce travail de rédaction est essentiel pour votre évaluation. Dans ce compterendu doit figurer un rappel des règles du jeu que vous avez choisi, avec éventuellement quelques éléments historiques et des illustrations. Vous indiquerez, pour ce jeu, le niveau des programmes existants par rapport à un joueur humain et tenterez d’évaluer le niveau de votre propre programme. Vous détaillerez les techniques génériques d’intelligence artificielle que vous avez employées pour programmer votre joueur artificiel ainsi que les méthodes plus spécifiques au jeu que vous avez choisi (Quelle(s) stratégie(s) de recherche ? Quelle(s) fonction(s) pour évaluer un coup ? Quel compromis espace/temps ? Etc.). Vous expliciterez les choix d’implémentation qui vous ont posé des difficultés et/ou qui vous ont semblé importants. La présentation du rapport devra être soignée. L’utilisation de LATEX est recommandée. Je vous demande de me remettre un fichier au format PDF avant le 5 mars 2010 12 mars 2010. Dates importantes Lundi 1er février 2010 « Feuille de route » à l’issue de la première séance de travaux pratiques. Mardi 23 février 2010 Démonstration du programme durant la dernière séance de travaux pratiques. Vendredi 5 mars 2010 12 mars 2010 Remise de la version finale du programme (archive TGZ) et du rapport (fichier PDF). Ceux-ci seront à envoyer par courriel à l’adresse [email protected]. 2