From 521a7cd056970639530b6b512165d4c96d9f50f3 Mon Sep 17 00:00:00 2001 From: Francesco Bariatti <francesco.bariatti@insa-rennes.fr> Date: Sat, 14 May 2016 19:56:04 +0200 Subject: [PATCH] Revision rapport Latex by Francesco --- .../Rapport en LaTeX/Rapport_style.pdf | Bin 2121249 -> 2124053 bytes .../Rapport en LaTeX/Rapport_style.tex | 98 +++++++++--------- 2 files changed, 48 insertions(+), 50 deletions(-) diff --git a/LaTex/Rapport Final/Rapport en LaTeX/Rapport_style.pdf b/LaTex/Rapport Final/Rapport en LaTeX/Rapport_style.pdf index 8291716e62c9c1cb1f89c0e036a53942183f86d4..45dda6feedfd423c4ae36ddd073516390f169669 100644 GIT binary patch delta 38247 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 WEJtDmBN0d>3IzwBI%Vl-1^zD(wk!<* delta 39370 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 diff --git a/LaTex/Rapport Final/Rapport en LaTeX/Rapport_style.tex b/LaTex/Rapport Final/Rapport en LaTeX/Rapport_style.tex index 71c58c1..8bc8747 100644 --- a/LaTex/Rapport Final/Rapport en LaTeX/Rapport_style.tex +++ b/LaTex/Rapport Final/Rapport en LaTeX/Rapport_style.tex @@ -1,13 +1,13 @@ -\documentclass[a4paper,11pt]{article} +\documentclass[a4paper,11pt,titlepage]{article} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % PACKAGES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{graphicx} -%\usepackage[T1]{fontenc} +\usepackage[T1]{fontenc} \usepackage[utf8]{inputenc} \usepackage[hidelinks]{hyperref} -%\usepackage[french]{babel} +\usepackage[french]{babel} \setlength{\voffset} {-0.54cm} \setlength{\hoffset} {-0,04cm} @@ -28,18 +28,17 @@ \title{ \textbf{Étude Pratique : Développement d'une Intelligence Artificielle à base de l'algorithme Monte Carlo Tree Search} } -\author{Francesco \textsc{BARIATTI} \and Adrien \textsc{GASTÉ} \and Mikael \textsc{LE} \and Romain \textsc{LEBOUC} +\author{Francesco BARIATTI \and Adrien GASTÉ \and Mikael LE \and Romain LEBOUC \\ - Encadrant : Pascal \textsc{GARCIA}} + Encadrant : Pascal GARCIA} -\date{2015 - 2016} +\date{Année scolaire 2015/16} \begin{document} \maketitle \pagenumbering{gobble} -\newpage \tableofcontents @@ -56,7 +55,7 @@ Cette étude pratique se présente sous la forme d'une Intelligence Artificielle \subsection{Le Jeu du Pingouin} -Le Jeu du Pingouin est un jeu de plateau confrontant 2 à 4 joueurs sur un plateau de 60 cases hexagonales, sur lesquelles se trouvent de 1 à 3 poissons, comme présenté dans la figure \ref{Plateau}. +Le Jeu du Pingouin est un jeu de plateau confrontant 2 à 4 joueurs sur un plateau de 60 cases hexagonales, sur lesquelles se trouvent de 1 à 3 poissons, comme présenté dans la figure \ref{Plateau} . Chaque joueur place 4 pingouins sur le plateau en début de partie. À chaque tour, il en déplace un dans l'une des 6 directions possibles, en récupérant la case sur laquelle le pingouin se trouvait. Il gagne alors autant de points qu'il y a de poissons dessus. @@ -74,19 +73,17 @@ Le jeu se termine lorsque aucun des pingouins ne peut se déplacer, et le joueur \subsection{L'algorithme Monte-Carlo Tree Search (MCTS)} -Le Monte-Carlo Tree Search est un algorithme de recherche de décision, utilisé dans les jeux tel que le Go ou encore Ms. Pacman. -Son principe repose sur la simulation de plusieurs millions de parties qui permettent de construire progressivement un arbre et d'ensuite choisir le meilleur chemin. +Le \textit{Monte-Carlo Tree Search} est un algorithme de recherche de décision, utilisé dans les jeux tel que le Go ou encore Ms. Pacman. +Son principe repose sur la simulation de plusieurs millions de parties qui permettent de construire progressivement un arbre et d'ensuite choisir le meilleur chemin pour le tour courant du joueur. -La construction de cet arbre est composée de 4 étapes : +Les implémentations peuvent avoir des différences (comme le score donné à une partie gagnante ou perdante, ou les valeurs stockées dans les nœuds), mais le principe de base est toujours le même est il est composé de 4 étapes qui sont répétées pour construire l'arbre du jeu: \begin{itemize} - \item la sélection : En considérant un arbre partiellement construit suite à plusieurs simulations, un chemin est alors choisi par un calcul se servant des valuations aux noeuds, permettant ainsi d'explorer des choix moins bons, jusqu'au dernier noeud qui est une feuille; - ce principe repose sur le tirage aléatoire pondéré. - \item l'expansion : À partir du noeud considéré, il développe ses enfants puis on en choisit un au hasard. - \item la simulation : Il simule alors des prises de décision pour chacun des joueurs aléatoirement depuis cet enfant (la feuille courante) jusqu'à la fin du jeu. Il observe ensuite quel joueur a gagné - la simulation. - \item la rétropropagation : À chaque noeud est associé un score de 2 nombres : le premier est le nombre de parties gagnées par l'IA, le 2ème est le nombre total de parties jouées sur la branche courante. - Après l'étape précédente, on met à jour le score de chaque noeud de l'arbre en remontant du noeud courant à la racine. - \end{itemize} + \item \textbf{Sélection} : En considérant un arbre partiellement construit suite à plusieurs simulations, un chemin est alors choisi par un calcul se servant des valuations aux nœuds, permettant ainsi d'explorer les meilleurs chemins en priorité, jusqu'à une feuille. Ce principe repose sur le tirage aléatoire pondéré. + \item \textbf{Expansion} : À partir du nœud considéré, ses enfants sont alors développés puis un est choisi au hasard pour la suite. + \item \textbf{Simulation} : Une simulation des prises de décision pour chacun des joueurs est alors faite aléatoirement depuis cet enfant jusqu'à la fin du jeu. Le résultat de cette simulation est alors observé. + \item \textbf{Rétropropagation} : À chaque nœud est associé un score de 2 nombres : le premier est le nombre de parties gagnées par l'IA, le deuxième est le nombre total de parties jouées sur la branche courante. + Le score des nœuds se trouvant sur le chemin entre la racine et le fils choisi par l'expansion est alors mis à jour pour prendre en compte le résultat de la simulation. +\end{itemize} \begin{figure}[!h] \includegraphics[width=\linewidth]{./Images/MCTS.png} @@ -94,47 +91,44 @@ La construction de cet arbre est composée de 4 étapes : \label{mcts} \end{figure} -L'un des avantages indéniables de l'algorithme est qu'il peut être interrompu à tout moment, le choix de la branche optimale sera fait à partir de l'arbre déjà construit. De plus, C'est un -algorithme sans heuristique, c'est à dire qu'il n'a pas besoin de connaître au préalable les règles du jeu pour être bon. +L'un des avantages indéniables de l'algorithme est qu'il peut être interrompu à tout moment: le choix de la branche optimale sera fait à partir de l'arbre construit jusqu'à ce moment là . De plus, c'est un algorithme sans heuristique, c'est à dire qu'il n'a pas besoin de connaître au préalable les règles du jeu pour bien jouer. \newpage -\section{Étude Pratique} - \subsection{Tâche à réaliser} -La tâche à réaliser est de programmer le jeu du Pingouin en Langage C++ et y implémenter le MCTS pour l'IA. Le mode Joueur contre IA est imposé. Il faut -également créer une interface utilisateur pour rendre le programme accessible à tous. - - \subsection{Implémentation du MCTS} -L'algorithme à implémenter dans le programme est le MCTS. Il a déjà été programmé par notre encadrant Pascal GARCIA en C++. C'est donc à nous de le faire intéragir avec le programme du jeu afin que -l'IA choisisse la meilleure solution en fonction du coup fait par le joueur humain. +\section{Tâche à réaliser} +La tâche à réaliser est de programmer le jeu du Pingouin en Langage C++ et y implémenter le MCTS comme IA. Le mode Joueur contre IA est imposé. Il faut également créer une interface utilisateur pour rendre le programme accessible à tous. + \subsection{Implémentation du jeu} +L'algorithme à implémenter dans le programme est le MCTS. L'algorithme a déjà été programmé par notre encadrant Pascal GARCIA en C++, mais il nécessite d'une représentation efficace du jeu pour pouvoir faire ses simulations. \\ +C'est donc à nous de faire cette représentation de sorte à qu'elle respecte l'interface définie par Pascal GARCIA et qu'elle comporte des calculs rapides pour passer d'une étape à l'autre du jeu. \subsection{Création d'une interface graphique} -Pour permettre de rendre l'application facile à utiliser, une interface graphique doit être programmée; les intéractions Homme-Machine se font à la souris. Il n'y a pas de restriction sur la méthode utilisée. +Pour permettre de rendre l'application facile à utiliser, une interface graphique doit être programmée; les interactions Homme-Machine se font à la souris. Il n'y a pas de restriction sur la méthode utilisée. \\ +Il va de soi que l'interface graphique doit pouvoir lancer le jeu et communiquer les coups du joueur à l'IA et inversement. \newpage \section{Réalisation} -A chaque séance, nous nous sommes généralement divisés en 2 équipes de 2 afin d'avancer plus rapidement le projet sur 2 points différents. Lorsque nous avions l'occasion, nous rencontrions -notre encadrant afin qu'il donne son avis ainsi que des conseils pour des problèmes que nous n'arrivions pas à résoudre. +A chaque séance, nous nous sommes généralement divisés en 2 équipes de 2 afin d'avancer plus rapidement le projet sur deux points différents. +Lorsque nous avions l'occasion, nous rencontrions notre encadrant afin qu'il donne son avis ainsi que des conseils pour des problèmes que nous n'arrivions pas à résoudre. -Le projet a été effectué à l'aide de Git pour faciliter l'accès aux différentes versions du code. +Le projet a été effectué à l'aide de \href{https://fr.wikipedia.org/wiki/Git}{\emph{Git}} pour faciliter l'accès aux différentes versions du code. \subsection{Prise en main du MCTS avec le Tic-Tac-Toe} -Afin de comprendre et tester le fonctionnement du MCTS, nous avons décidé, pendant le 1er semestre, de l'implémenter sur un jeu simple, à savoir le Tic-Tac-Toe. -Cela nous a également permis d'apprendre à programmer en C++, le langage utilisé pour coder l'algorithme. +Afin de comprendre et tester le fonctionnement du MCTS, nous avons décidé, pendant le 1er semestre, de l'implémenter sur un jeu simple: le Tic-Tac-Toe. +Cela nous a également permis d'apprendre à programmer en C++, langage qu'on ne connaissait pas, et dans lequel le MCTS est codé. -Pascal GARCIA nous a conseillé de représenter la grille sous forme de \textit{bitboards} de 16 bits pour optimiser les calculs, l'un représentant les croix et l'autre les cercles. -Les états gagnants étaient sous forme d'entiers et lorsque l'un des \textit{bitboards} satisfaisait un de ces états, la partie se terminait. +Pascal GARCIA nous a conseillé de représenter la grille sous forme de \textit{bitboards\footnote{Une bitboard est juste un nombre entier classique, dans lequel chaque bit est interprété de façon particulière. Souvent chaque bit représente la présence, ou l'absence, d'un élément dans une case du plateau}} de 16 bits pour optimiser les calculs, l'un représentant les croix et l'autre les cercles. +Les états gagnants étaient des \textit{bitboards}, définis dans le code comme des entiers. Lorsque l'un des \textit{bitboards} satisfaisait(selon certaines opérations bit à bit) un de ces états, la partie se terminait. - \subsection{Création de l'IA pour le Jeu du Pingouin} -La deuxième étape du projet consiste à coder le Jeu du Pingouin de telle sorte que l'IA respecte les règles et comprenne la condition de victoire. + \subsection{Le Jeu du Pingouin} +La deuxième étape du projet consiste à coder le Jeu du Pingouin de telle sorte que l'IA respecte les règles et comprenne la condition de victoire et que les calculs pour effectuer chaque coup soient rapides, pour que le MCTS puisse simuler énormement de parties dans le temps imparti. + \subsubsection{Choix de représentation} Chacun des pingouins a été modélisé par un \textit{bitboard} de 32 bits. -Le plateau a été représenté à l'aide de 3 \textit{bitboards} de 64 bits (chacun représentant la présence de 1,2 ou 3 poissons sur les cases) que nous avons ensuite complété avec la position des pingouins. +Le plateau a été représenté à l'aide de 3 \textit{bitboards} de 64 bits (chacun représentant la présence de 1,2 ou 3 poissons sur les cases): la présence d'obstacles sur une case est calculée grâce à des opérations bit à bit(\textit{and, or, not}) -Il a fallu confronter le problème du déplacement des pions qui n'existait pas dans le Tic-Tac-Toe : en effet, il n'a pas été évident de relier déplacement sur le plateau et déplacement et sa représentation -en \textit{bitboard}. La solution retenue a été de numéroter les 60 cases du plateau et de faire correspondre le déplacement de chacune des 6 directions par un calcul arithmétique. +Il a fallu confronter le problème du déplacement des pions qui n'existait pas dans le Tic-Tac-Toe : en effet, il n'a pas été évident de relier le déplacement sur le plateau(en six directions possibles) avec la représentation du plateau en \textit{bitboard}. La solution retenue a été de numéroter les 60 cases du plateau et de faire correspondre le déplacement de chacune des 6 directions par un calcul arithmétique. De plus, la modélisation optimale des pingouins a été trouvée difficilement car il a fallu associer plusieurs types d'informations différentes à chacun des pingouins (par exemple, le nombre de déplacements possibles dans une direction). @@ -144,23 +138,27 @@ De plus, la modélisation optimale des pingouins a été trouvée difficilement \label{pingouin} \end{figure} -Une solution envisagée a été de mettre chaque type d'informations dans un \textit{bitboard} en particulier, mais cela s'est révélé trop difficile à gérer. Nous avons alors opté de stocker toutes les informations concernant un pingouin dans un \textit{bitboard} personnel. +Une solution envisagée a été de mettre chaque type d'informations dans un \textit{bitboard} en particulier, mais cela s'est révélé trop difficile à gérer. Nous avons alors opté pour stocker toutes les informations concernant un pingouin dans un \textit{bitboard} personnel. + + \subsubsection{Avantage de la représentation en bitboards} +L'enjeu principal pour l’implémentation du jeu était la rapidité: plus un coup était rapide plus de parties le MCTS pourrait simuler pendant son tour. c'était donc nécessaire que pour avoir le contenu d'une case, ou la position d'un pingouin le calcul soit rapide. Il était donc hors de question de stocker les valeurs dans un tableau dans la mémoire, les \textit{bitboards} permettent d'utiliser la puissance des calculs bit à bit(exécutables en un cycle de processeur). + +La recherche d'information se fait avec des masques appliqués sur les variables: par exemple l'entier 63 (les 6 bits de poids faible à 1) appliqué sur un pingouin permet d'obtenir sa position. +Le \textit{bitboard} des obstacles (un 1 dans les cases où il y a soit de l'eau, soit un pingouin) est calculé dynamiquement à chaque tour en combinant les trois \textit{bitboards} des poissons et les positions des pingouins, ce qui permet d'avoir une valeur en moins à stocker et mettre à jour. + - \subsection{Intégration de l'interface graphique pour le jeu} + \subsection{L'interface graphique} TODO: gui \newpage \section{Conclusion} -Il y a eu quelques difficultés rencontrées au début du projet. En effet, le langage utilisé par Pascal GARCIA pour coder l'IA, à savoir le C++, nous était inconnu, et la complexité de transcrire les règles du jeu de plateau de tel sorte que le programme puisse les comprendre. Nous avons alors consacré notre 1er semestre à implémenter ce programme dans un jeu plus simple, le Tic-Tac-Toe, afin de se familiariser avec ces concepts. Cette décision nous a permis d'avoir un développement beaucoup plus rapide pour l'IA du jeu du pingouin, ce qui nous a laissé le temps nécessaire pour développer une interface graphique conventionnelle.\newline +Il y a eu quelques difficultés rencontrées au début du projet: me langage utilisé par Pascal GARCIA pour coder l'IA, à savoir le C++, nous était inconnu, et la complexité de transcrire les règles d'un jeu de plateau de tel sorte que le programme puisse les comprendre était importante. +Nous avons alors consacré notre 1er semestre à implémenter ce programme dans un jeu plus simple, le Tic-Tac-Toe, afin de se familiariser avec ces concepts. Cette décision nous a permis d'avoir un développement beaucoup plus rapide pour l'IA du jeu du pingouin, ce qui nous a laissé le temps nécessaire pour développer une interface graphique conventionnelle. -Le produit obtenu satisfait entièrement le cahier des charges : le mode Joueur vs IA a été implémentée avec succès, ce dernier possédant le niveau d'un joueur expérimenté. Il serait intéressant de rajouter des fonctionnalités supplémentaires, tel que choisir le niveau de difficulté, voire même utiliser notre expérience acquise sur un autre jeu.\newline +Le produit obtenu satisfait entièrement le cahier des charges : le mode Joueur vs IA a été implémentée avec succès, ce dernier possédant le niveau d'un joueur expérimenté. Il serait intéressant de rajouter des fonctionnalités supplémentaires, tel que choisir le niveau de difficulté, voire même utiliser notre expérience acquise sur un autre jeu. Nous remercions Pascal GARCIA, notre encadrant, pour sa disponibilité et ses conseils. - - - - \end{document} -- GitLab