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