Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • francesco-bariatti/pingouins
  • Samuel.Felton/pingouins
  • Lucas.Clement/pingouins
3 results
Show changes
Showing
with 45 additions and 679 deletions
Doc/fr/Soutenance/images/board.png

34.6 KiB

Doc/fr/Soutenance/images/board_game.png

33.5 KiB

Doc/fr/Soutenance/images/board_move.png

45.1 KiB

Doc/fr/Soutenance/images/boite_jeu.jpg

165 KiB

Doc/fr/Soutenance/images/go_board.jpg

1.13 MiB

Doc/fr/Soutenance/images/insa.png

23 KiB

Doc/fr/Soutenance/images/mcts.png

91.8 KiB

Doc/fr/Soutenance/images/moves.png

11 KiB

Doc/fr/Soutenance/images/penguin_bitboard.png

15.3 KiB

Doc/fr/Soutenance/images/pingual.jpg

188 KiB

Doc/fr/Soutenance/images/reflection.jpg

2.25 MiB

Doc/fr/Soutenance/images/tiles.jpg

595 KiB

package main;
/**
* Graphical User Interface for the Penguin Game project.
* https://gitlab.insa-rennes.fr/francesco-bariatti/pingouins
* This Interface has been written by Francesco Bariatti, Adrien Gasté, Mikael Le, Romain Lebouc.
* Copyright (C) 2016 Francesco Bariatti < francesco.bariatti@insa-rennes.fr >, Adrien Gasté < adrien.gaste@insa-rennes.fr >, Mikael Le < mikael.le@insa-rennes.fr >, Romain Lebouc < romain.lebouc@insa-rennes.fr >
* This Interface is licensed under the MIT license: you can find a copy in the file LICENSE.txt shipped with the whole project.
* -------------------------------------------------------------------------------------------------------------------------------------
* This software uses the org.json library: you can find it at http://mvnrepository.com/artifact/org.json/json , here is the copyright notice of the library:
* Copyright (c) 2002 JSON.org
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
* The Software shall be used for Good, not Evil.
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
import controller.Controller;
import javafx.application.Application;
......
No preview for this file type
Files under AI/src, with the exception of AI/src/game/penguin.hpp and AI/src/game/penguin.cpp have been written by Pascal Garcia
Copyright (C) 2016 Pascal Garcia
Every other file of the project, including AI/src/game/penguin.hhp and .cpp, have been written by Francesco Bariatti, Adrien Gasté, Mikael Le, Romain Lebouc.
Copyright (C) 2016 Francesco Bariatti < francesco.bariatti@insa-rennes.fr >, Adrien Gasté < adrien.gaste@insa-rennes.fr >, Mikael Le < mikael.le@insa-rennes.fr >, Romain Lebouc < romain.lebouc@insa-rennes.fr >
This project is licensed under the MIT License:
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Except as contained in this notice, the name(s) of (the) Author shall not be used in advertising or
otherwise to promote the sale, use or other dealings in this Software without
prior written authorization from (the)Author.
Rapport :
- Introduction (1 page)
- Présentation Etudes Pratiques
- Présentation Projet du Pingouin
- Présentation MCTS Algorithm
- Etudes Pratiques
- Tâche à réaliser
- Créer les règles du jeu du pingouin pour être utilisé par le MCTS
- Créer une interface graphique
- Réalisation
- Intro : MCTS codé en C++, nous avons donc du étudier ce nouveau langage
- MCTS et Tic-Tac-Toe : jeu simple pour comprendre le MCTS et le C++
- MCTS et Pingouins : But du projet (JSon)
- Interface graphique : User-friendly interface (JavaFX)
- Gestion de projet
- Gitlab
- Conclusion
-Remerciements
Introduction :
Les études pratiques sont des projets réalisés chaque année pas les élèves du département Informatique de l’INSA de Rennes qui s’étalent sur 10 mois.
Cette étude pratique se présente sous la forme d'une Intelligence Artificielle (IA) à créer pour un jeu de plateau, qui sera jouable contre via une interface graphique.
1.1 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.
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.
Les pingouins ne peuvent pas passer à travers des autres pingouins (y compris ceux du même joueur) et des trous crées par les déplacements des pions. Lorsqu'un joueur ne peut pas jouer, ceux
pouvant encore jouer continuent.
Le jeu se termine lorsque aucun des pingouins ne peut se déplacer, et le joueur avec le plus de points remporte la partie.
\\Rajouter image du jeu
1.2 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.
La construction de cet arbre est composée de 4 étapes :
- la sélection : En considérant un arbre partiellement construit suite à plusieurs simulations, un chemin est alors choisi aléatoirement jusqu'au dernier noeud qui est une feuille;
ce principe repose sur le tirage aléatoire pondéré.
- l'expansion : A partir du noeud considéré, il développe ses enfants puis on en choisit un au hasard.
- 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.
- la rétropropagation : A 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.
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.
Étude Pratique
2.1 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.
2.1.1 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.
2.1.2 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.
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.
Le projet a été effectué à l'aide de Git pour faciliter l'accès aux différentes versions du code.
3.1 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++, la langage utilisé pour coder l'algorithme.
Pascal GARCIA nous a conseillé de représenter la grille sous forme de bitboards(italique) 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 bitboards satisfaisait un de ces états, la partie se terminait.
3.2 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.
Chacun des pingouins a été modélisé par un bitboard de 32 bits.
Le plateau a été représenté à l'aide de 3 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.
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 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).
Une solution envisagée a été de mettre chaque type d'informations dans un 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 bitboard personnel.
(image : Structure 1 pingouin 32 bits cf Representation_Pingouins)
3.3 Intégration de l'interface graphique pour le jeu
Conclusion
Remerciements
File deleted
\documentclass{report} % Permet de spécifier le type du document (article,book, slides...)
\usepackage[utf8]{inputenc}
%Package utilisation accents
\usepackage{graphicx}
\usepackage{titlesec}
\titleformat{\chapter}[display]
{\normalfont\bfseries}{}{0pt}{\Huge}
\title{Étude Pratique : Développement d'une Intelligence Artificielle
à base de l'algorithme Monte Carlo Tree Search}
\date{2015 - 2016}
\author{BARIATTI Francesco\and LE Mikael\and LEBOUC Romain\and GASTÉ Adrien}
%Propriétés du \maketitle : Formatage de la page de garde
\begin{document}
\pagenumbering{gobble}
\maketitle
\newpage
\tableofcontents
\newpage
\pagenumbering{arabic}
\chapter{Introduction}
\smallbreak Les études pratiques sont des projets réalisés chaque année pas les élèves du département Informatique de l’INSA de Rennes qui s’étalent sur 10 mois.
\smallbreak Cette étude pratique se présente sous la forme d'une Intelligence Artificielle (IA) à créer pour un jeu de plateau, qui sera jouable via une interface graphique.
\section{Le Jeu du Pingouin}
\smallbreak 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}.
\smallbreak 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.
\smallbreak Les pingouins ne peuvent pas passer à travers des autres pingouins (y compris ceux du même joueur) et des trous crées par les déplacements des pions. Lorsqu'un joueur ne peut pas jouer, ceux
pouvant encore jouer continuent.
\smallbreak Le jeu se termine lorsque aucun des pingouins ne peut se déplacer, et le joueur avec le plus de points remporte la partie.
\begin{figure}[!h]
\centering
\includegraphics[width=150px,height=150px]{./Images/Plateau_Pingouin.jpg}
\caption{Plateau du Jeu du Pingouin}
\label{Plateau}
\end{figure}
\section{L'algorithme Monte-Carlo Tree Search (MCTS)}
\smallbreak 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.
\smallbreak La construction de cet arbre est composée de 4 étapes :
\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}
\begin{figure}[!h]
\includegraphics[width=\linewidth]{./Images/MCTS.png}
\caption{Étapes du MCTS}
\label{lol}
\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.
\newpage
\chapter{Étude Pratique}
\section{Tâche à réaliser}
\smallbreak 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.
\section{Implémentation du MCTS}
\smallbreak 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{Création d'une interface graphique}
\smallbreak 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.
\newpage
\chapter{Réalisation}
\smallbreak 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.
\smallbreak Le projet a été effectué à l'aide de Git pour faciliter l'accès aux différentes versions du code.
\section{Prise en main du MCTS avec le Tic-Tac-Toe}
\smallbreak 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.
\smallbreak 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.
\section{Création de l'IA pour le Jeu du Pingouin}
\smallbreak 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.
\smallbreak 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.
\smallbreak 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.
\smallbreak 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).
\begin{figure}[!h]
\includegraphics[width=\linewidth]{./Images/Structure_Pingouin.png}
\caption{Découpage du \textit{bitboard} pour un pingouin}
\end{figure}
\smallbreak 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.
\section{Intégration de l'interface graphique pour le jeu}
\newpage
\subsection*{Conclusion}
\subsection*{Remerciements}
\end{document}
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (MiKTeX 2.9 64-bit) (preloaded format=pdflatex 2016.5.9) 9 MAY 2016 16:45
entering extended mode
**./Rapport_style.tex
(Rapport_style.tex
LaTeX2e <2015/10/01> patch level 2
Babel <3.9n> and hyphenation patterns for 69 languages loaded.
("F:\Program Files\MiKTeX 2.9\tex\latex\base\article.cls"
Document Class: article 2014/09/29 v1.4h Standard LaTeX document class
("F:\Program Files\MiKTeX 2.9\tex\latex\base\size11.clo"
File: size11.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
)
\c@part=\count79
\c@section=\count80
\c@subsection=\count81
\c@subsubsection=\count82
\c@paragraph=\count83
\c@subparagraph=\count84
\c@figure=\count85
\c@table=\count86
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
) ("F:\Program Files\MiKTeX 2.9\tex\latex\base\inputenc.sty"
Package: inputenc 2015/03/17 v1.2c Input encoding file
\inpenc@prehook=\toks14
\inpenc@posthook=\toks15
("F:\Program Files\MiKTeX 2.9\tex\latex\base\utf8.def"
File: utf8.def 2015/09/07 v1.1p UTF-8 support for inputenc
Now handling font encoding OML ...
... no UTF-8 mapping file for font encoding OML
Now handling font encoding T1 ...
... processing UTF-8 mapping file for font encoding T1
("F:\Program Files\MiKTeX 2.9\tex\latex\base\t1enc.dfu"
File: t1enc.dfu 2015/09/07 v1.1p UTF-8 support for inputenc
defining Unicode char U+00A0 (decimal 160)
defining Unicode char U+00A1 (decimal 161)
defining Unicode char U+00A3 (decimal 163)
defining Unicode char U+00AB (decimal 171)
defining Unicode char U+00AD (decimal 173)
defining Unicode char U+00BB (decimal 187)
defining Unicode char U+00BF (decimal 191)
defining Unicode char U+00C0 (decimal 192)
defining Unicode char U+00C1 (decimal 193)
defining Unicode char U+00C2 (decimal 194)
defining Unicode char U+00C3 (decimal 195)
defining Unicode char U+00C4 (decimal 196)
defining Unicode char U+00C5 (decimal 197)
defining Unicode char U+00C6 (decimal 198)
defining Unicode char U+00C7 (decimal 199)
defining Unicode char U+00C8 (decimal 200)
defining Unicode char U+00C9 (decimal 201)
defining Unicode char U+00CA (decimal 202)
defining Unicode char U+00CB (decimal 203)
defining Unicode char U+00CC (decimal 204)
defining Unicode char U+00CD (decimal 205)
defining Unicode char U+00CE (decimal 206)
defining Unicode char U+00CF (decimal 207)
defining Unicode char U+00D0 (decimal 208)
defining Unicode char U+00D1 (decimal 209)
defining Unicode char U+00D2 (decimal 210)
defining Unicode char U+00D3 (decimal 211)
defining Unicode char U+00D4 (decimal 212)
defining Unicode char U+00D5 (decimal 213)
defining Unicode char U+00D6 (decimal 214)
defining Unicode char U+00D8 (decimal 216)
defining Unicode char U+00D9 (decimal 217)
defining Unicode char U+00DA (decimal 218)
defining Unicode char U+00DB (decimal 219)
defining Unicode char U+00DC (decimal 220)
defining Unicode char U+00DD (decimal 221)
defining Unicode char U+00DE (decimal 222)
defining Unicode char U+00DF (decimal 223)
defining Unicode char U+00E0 (decimal 224)
defining Unicode char U+00E1 (decimal 225)
defining Unicode char U+00E2 (decimal 226)
defining Unicode char U+00E3 (decimal 227)
defining Unicode char U+00E4 (decimal 228)
defining Unicode char U+00E5 (decimal 229)
defining Unicode char U+00E6 (decimal 230)
defining Unicode char U+00E7 (decimal 231)
defining Unicode char U+00E8 (decimal 232)
defining Unicode char U+00E9 (decimal 233)
defining Unicode char U+00EA (decimal 234)
defining Unicode char U+00EB (decimal 235)
defining Unicode char U+00EC (decimal 236)
defining Unicode char U+00ED (decimal 237)
defining Unicode char U+00EE (decimal 238)
defining Unicode char U+00EF (decimal 239)
defining Unicode char U+00F0 (decimal 240)
defining Unicode char U+00F1 (decimal 241)
defining Unicode char U+00F2 (decimal 242)
defining Unicode char U+00F3 (decimal 243)
defining Unicode char U+00F4 (decimal 244)
defining Unicode char U+00F5 (decimal 245)
defining Unicode char U+00F6 (decimal 246)
defining Unicode char U+00F8 (decimal 248)
defining Unicode char U+00F9 (decimal 249)
defining Unicode char U+00FA (decimal 250)
defining Unicode char U+00FB (decimal 251)
defining Unicode char U+00FC (decimal 252)
defining Unicode char U+00FD (decimal 253)
defining Unicode char U+00FE (decimal 254)
defining Unicode char U+00FF (decimal 255)
defining Unicode char U+0102 (decimal 258)
defining Unicode char U+0103 (decimal 259)
defining Unicode char U+0104 (decimal 260)
defining Unicode char U+0105 (decimal 261)
defining Unicode char U+0106 (decimal 262)
defining Unicode char U+0107 (decimal 263)
defining Unicode char U+010C (decimal 268)
defining Unicode char U+010D (decimal 269)
defining Unicode char U+010E (decimal 270)
defining Unicode char U+010F (decimal 271)
defining Unicode char U+0110 (decimal 272)
defining Unicode char U+0111 (decimal 273)
defining Unicode char U+0118 (decimal 280)
defining Unicode char U+0119 (decimal 281)
defining Unicode char U+011A (decimal 282)
defining Unicode char U+011B (decimal 283)
defining Unicode char U+011E (decimal 286)
defining Unicode char U+011F (decimal 287)
defining Unicode char U+0130 (decimal 304)
defining Unicode char U+0131 (decimal 305)
defining Unicode char U+0132 (decimal 306)
defining Unicode char U+0133 (decimal 307)
defining Unicode char U+0139 (decimal 313)
defining Unicode char U+013A (decimal 314)
defining Unicode char U+013D (decimal 317)
defining Unicode char U+013E (decimal 318)
defining Unicode char U+0141 (decimal 321)
defining Unicode char U+0142 (decimal 322)
defining Unicode char U+0143 (decimal 323)
defining Unicode char U+0144 (decimal 324)
defining Unicode char U+0147 (decimal 327)
defining Unicode char U+0148 (decimal 328)
defining Unicode char U+014A (decimal 330)
defining Unicode char U+014B (decimal 331)
defining Unicode char U+0150 (decimal 336)
defining Unicode char U+0151 (decimal 337)
defining Unicode char U+0152 (decimal 338)
defining Unicode char U+0153 (decimal 339)
defining Unicode char U+0154 (decimal 340)
defining Unicode char U+0155 (decimal 341)
defining Unicode char U+0158 (decimal 344)
defining Unicode char U+0159 (decimal 345)
defining Unicode char U+015A (decimal 346)
defining Unicode char U+015B (decimal 347)
defining Unicode char U+015E (decimal 350)
defining Unicode char U+015F (decimal 351)
defining Unicode char U+0160 (decimal 352)
defining Unicode char U+0161 (decimal 353)
defining Unicode char U+0162 (decimal 354)
defining Unicode char U+0163 (decimal 355)
defining Unicode char U+0164 (decimal 356)
defining Unicode char U+0165 (decimal 357)
defining Unicode char U+016E (decimal 366)
defining Unicode char U+016F (decimal 367)
defining Unicode char U+0170 (decimal 368)
defining Unicode char U+0171 (decimal 369)
defining Unicode char U+0174 (decimal 372)
defining Unicode char U+0175 (decimal 373)
defining Unicode char U+0176 (decimal 374)
defining Unicode char U+0177 (decimal 375)
defining Unicode char U+0178 (decimal 376)
defining Unicode char U+0179 (decimal 377)
defining Unicode char U+017A (decimal 378)
defining Unicode char U+017B (decimal 379)
defining Unicode char U+017C (decimal 380)
defining Unicode char U+017D (decimal 381)
defining Unicode char U+017E (decimal 382)
defining Unicode char U+0218 (decimal 536)
defining Unicode char U+0219 (decimal 537)
defining Unicode char U+021A (decimal 538)
defining Unicode char U+021B (decimal 539)
defining Unicode char U+200C (decimal 8204)
defining Unicode char U+2013 (decimal 8211)
defining Unicode char U+2014 (decimal 8212)
defining Unicode char U+2018 (decimal 8216)
defining Unicode char U+2019 (decimal 8217)
defining Unicode char U+201A (decimal 8218)
defining Unicode char U+201C (decimal 8220)
defining Unicode char U+201D (decimal 8221)
defining Unicode char U+201E (decimal 8222)
defining Unicode char U+2030 (decimal 8240)
defining Unicode char U+2031 (decimal 8241)
defining Unicode char U+2039 (decimal 8249)
defining Unicode char U+203A (decimal 8250)
defining Unicode char U+2423 (decimal 9251)
)
Now handling font encoding OT1 ...
... processing UTF-8 mapping file for font encoding OT1
("F:\Program Files\MiKTeX 2.9\tex\latex\base\ot1enc.dfu"
File: ot1enc.dfu 2015/09/07 v1.1p UTF-8 support for inputenc
defining Unicode char U+00A0 (decimal 160)
defining Unicode char U+00A1 (decimal 161)
defining Unicode char U+00A3 (decimal 163)
defining Unicode char U+00AD (decimal 173)
defining Unicode char U+00B8 (decimal 184)
defining Unicode char U+00BF (decimal 191)
defining Unicode char U+00C5 (decimal 197)
defining Unicode char U+00C6 (decimal 198)
defining Unicode char U+00D8 (decimal 216)
defining Unicode char U+00DF (decimal 223)
defining Unicode char U+00E6 (decimal 230)
defining Unicode char U+00EC (decimal 236)
defining Unicode char U+00ED (decimal 237)
defining Unicode char U+00EE (decimal 238)
defining Unicode char U+00EF (decimal 239)
defining Unicode char U+00F8 (decimal 248)
defining Unicode char U+0131 (decimal 305)
defining Unicode char U+0141 (decimal 321)
defining Unicode char U+0142 (decimal 322)
defining Unicode char U+0152 (decimal 338)
defining Unicode char U+0153 (decimal 339)
defining Unicode char U+0174 (decimal 372)
defining Unicode char U+0175 (decimal 373)
defining Unicode char U+0176 (decimal 374)
defining Unicode char U+0177 (decimal 375)
defining Unicode char U+0218 (decimal 536)
defining Unicode char U+0219 (decimal 537)
defining Unicode char U+021A (decimal 538)
defining Unicode char U+021B (decimal 539)
defining Unicode char U+2013 (decimal 8211)
defining Unicode char U+2014 (decimal 8212)
defining Unicode char U+2018 (decimal 8216)
defining Unicode char U+2019 (decimal 8217)
defining Unicode char U+201C (decimal 8220)
defining Unicode char U+201D (decimal 8221)
)
Now handling font encoding OMS ...
... processing UTF-8 mapping file for font encoding OMS
("F:\Program Files\MiKTeX 2.9\tex\latex\base\omsenc.dfu"
File: omsenc.dfu 2015/09/07 v1.1p UTF-8 support for inputenc
defining Unicode char U+00A7 (decimal 167)
defining Unicode char U+00B6 (decimal 182)
defining Unicode char U+00B7 (decimal 183)
defining Unicode char U+2020 (decimal 8224)
defining Unicode char U+2021 (decimal 8225)
defining Unicode char U+2022 (decimal 8226)
)
Now handling font encoding OMX ...
... no UTF-8 mapping file for font encoding OMX
Now handling font encoding U ...
... no UTF-8 mapping file for font encoding U
defining Unicode char U+00A9 (decimal 169)
defining Unicode char U+00AA (decimal 170)
defining Unicode char U+00AE (decimal 174)
defining Unicode char U+00BA (decimal 186)
defining Unicode char U+02C6 (decimal 710)
defining Unicode char U+02DC (decimal 732)
defining Unicode char U+200C (decimal 8204)
defining Unicode char U+2026 (decimal 8230)
defining Unicode char U+2122 (decimal 8482)
defining Unicode char U+2423 (decimal 9251)
))
("F:\Program Files\MiKTeX 2.9\tex\latex\graphics\graphicx.sty"
Package: graphicx 2014/10/28 v1.0g Enhanced LaTeX Graphics (DPC,SPQR)
("F:\Program Files\MiKTeX 2.9\tex\latex\graphics\keyval.sty"
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks16
)
("F:\Program Files\MiKTeX 2.9\tex\latex\graphics\graphics.sty"
Package: graphics 2014/10/28 v1.0p Standard LaTeX Graphics (DPC,SPQR)
("F:\Program Files\MiKTeX 2.9\tex\latex\graphics\trig.sty"
Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
) ("F:\Program Files\MiKTeX 2.9\tex\latex\00miktex\graphics.cfg"
File: graphics.cfg 2007/01/18 v1.5 graphics configuration of teTeX/TeXLive
)
Package graphics Info: Driver file: pdftex.def on input line 94.
("F:\Program Files\MiKTeX 2.9\tex\latex\pdftex-def\pdftex.def"
File: pdftex.def 2011/05/27 v0.06d Graphics/color for pdfTeX
("F:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\infwarerr.sty"
Package: infwarerr 2010/04/08 v1.3 Providing info/warning/error messages (HO)
)
("F:\Program Files\MiKTeX 2.9\tex\generic\oberdiek\ltxcmds.sty"
Package: ltxcmds 2011/11/09 v1.22 LaTeX kernel commands for general use (HO)
)
\Gread@gobject=\count87
))
\Gin@req@height=\dimen103
\Gin@req@width=\dimen104
)
("F:\Program Files\MiKTeX 2.9\tex\latex\base\fontenc.sty"
Package: fontenc 2005/09/27 v1.99g Standard LaTeX package
("F:\Program Files\MiKTeX 2.9\tex\latex\base\t1enc.def"
File: t1enc.def 2005/09/27 v1.99g Standard LaTeX file
LaTeX Font Info: Redeclaring font encoding T1 on input line 48.
))
! LaTeX Error: Option clash for package inputenc.
See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...
l.10 \usepackage
[french]{babel}
The package inputenc has already been loaded with options:
[utf8]
There has now been an attempt to load it with options
[latin1]
Adding the global options:
utf8,latin1
to your \documentclass declaration may fix this.
Try typing <return> to proceed.
("F:\Program Files\MiKTeX 2.9\tex\generic\babel\babel.sty"
Package: babel 2016/01/08 3.9n The Babel package
*************************************
* Local config file bblopts.cfg used
*
("F:\Program Files\MiKTeX 2.9\tex\latex\00miktex\bblopts.cfg"
File: bblopts.cfg 2006/07/31 v1.0 MiKTeX 'babel' configuration
)
("F:\Program Files\MiKTeX 2.9\tex\latex\babel-french\frenchb.ldf"
Language: frenchb 2016/01/01 v3.1k French support from the babel system
("F:\Program Files\MiKTeX 2.9\tex\generic\babel\babel.def"
File: babel.def 2016/01/08 3.9n Babel common definitions
\babel@savecnt=\count88
\U@D=\dimen105
)
\l@acadian = a dialect from \language\l@french
\l@canadien = a dialect from \language\l@french
\FBcolonskip=\skip43
\FBthinskip=\skip44
\FB@interchartokenstateORI=\count89
Package babel Info: Making : an active character on input line 372.
Package babel Info: Making ; an active character on input line 373.
Package babel Info: Making ! an active character on input line 374.
Package babel Info: Making ? an active character on input line 375.
\FBguillskip=\skip45
\FBguill@level=\count90
\FB@everypar=\toks17
\FB@Mht=\dimen106
\std@mcc=\count91
\dec@mcc=\count92
\listindentFB=\skip46
\labelwidthFB=\skip47
\leftmarginFB=\skip48
\parindentFFN=\dimen107
))
("F:\Program Files\MiKTeX 2.9\tex\latex\carlisle\scalefnt.sty") (Rapport_style.aux)
\openout1 = `Rapport_style.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 42.
LaTeX Font Info: ... okay on input line 42.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 42.
LaTeX Font Info: ... okay on input line 42.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 42.
LaTeX Font Info: ... okay on input line 42.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 42.
LaTeX Font Info: ... okay on input line 42.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 42.
LaTeX Font Info: ... okay on input line 42.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 42.
LaTeX Font Info: ... okay on input line 42.
("F:\Program Files\MiKTeX 2.9\tex\context\base\supp-pdf.mkii"
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count93
\scratchdimen=\dimen108
\scratchbox=\box26
\nofMPsegments=\count94
\nofMParguments=\count95
\everyMPshowfont=\toks18
\MPscratchCnt=\count96
\MPscratchDim=\dimen109
\MPnumerator=\count97
\makeMPintoPDFobject=\count98
\everyMPtoPDFconversion=\toks19
)
LaTeX Info: Redefining \degres on input line 42.
LaTeX Info: Redefining \dots on input line 42.
LaTeX Info: Redefining \up on input line 42.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <12> on input line 44.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 44.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 44.
[1
{C:/Users/Adrien/AppData/Local/MiKTeX/2.9/pdftex/config/pdftex.map}] (Rapport_style.toc
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <10.95> on input line 3.
)
\tf@toc=\write3
\openout3 = `Rapport_style.toc'.
[2]
<./Images/Plateau_Pingouin.jpg, id=14, 2457.18pt x 2457.18pt>
File: ./Images/Plateau_Pingouin.jpg Graphic file (type jpg)
<use ./Images/Plateau_Pingouin.jpg>
Package pdftex.def Info: ./Images/Plateau_Pingouin.jpg used on input line 70.
(pdftex.def) Requested size: 150.53639pt x 150.53639pt.
[3 <./Images/Plateau_Pingouin.jpg>] <./Images/MCTS.png, id=20, 1284.8pt x 429.605pt>
File: ./Images/MCTS.png Graphic file (type png)
<use ./Images/MCTS.png>
Package pdftex.def Info: ./Images/MCTS.png used on input line 91.
(pdftex.def) Requested size: 398.33858pt x 133.19583pt.
[4 <./Images/MCTS.png>] [5]
<./Images/Structure_Pingouin.png, id=29, 988.69376pt x 183.68625pt>
File: ./Images/Structure_Pingouin.png Graphic file (type png)
<use ./Images/Structure_Pingouin.png>
Package pdftex.def Info: ./Images/Structure_Pingouin.png used on input line 138.
(pdftex.def) Requested size: 398.33858pt x 74.00572pt.
[6 <./Images/Structure_Pingouin.png>] [7] [8] (Rapport_style.aux) )
Here is how much of TeX's memory you used:
2668 strings out of 493634
34194 string characters out of 3143742
99320 words of memory out of 3000000
6040 multiletter control sequences out of 15000+200000
15512 words of font info for 37 fonts, out of 3000000 for 9000
1025 hyphenation exceptions out of 8191
28i,6n,30p,332b,439s stack positions out of 5000i,500n,10000p,200000b,50000s
<C:\Users\Adrien\AppData\Local\MiKTeX\2.9\fonts\pk\
ljfour\jknappen\ec\dpi600\ecti1095.pk> <C:\Users\Adrien\AppData\Local\MiKTeX\2.9\fonts\pk\ljfour\jknappen\ec\dpi600\eccc
1095.pk> <C:\Users\Adrien\AppData\Local\MiKTeX\2.9\fonts\pk\ljfour\jknappen\ec\dpi600\ecbx1200.pk> <C:\Users\Adrien\AppD
ata\Local\MiKTeX\2.9\fonts\pk\ljfour\jknappen\ec\dpi600\ecrm1095.pk> <C:\Users\Adrien\AppData\Local\MiKTeX\2.9\fonts\pk\
ljfour\jknappen\ec\dpi600\ecbx1095.pk> <C:\Users\Adrien\AppData\Local\MiKTeX\2.9\fonts\pk\ljfour\jknappen\ec\dpi600\ecbx
1440.pk> <C:\Users\Adrien\AppData\Local\MiKTeX\2.9\fonts\pk\ljfour\jknappen\ec\dpi600\eccc1200.pk> <C:\Users\Adrien\AppD
ata\Local\MiKTeX\2.9\fonts\pk\ljfour\jknappen\ec\dpi600\ecrm1200.pk> <C:\Users\Adrien\AppData\Local\MiKTeX\2.9\fonts\pk\
ljfour\jknappen\ec\dpi600\ecbx1728.pk>
Output written on Rapport_style.pdf (8 pages, 2121249 bytes).
PDF statistics:
320 PDF objects out of 1000 (max. 8388607)
0 named destinations out of 1000 (max. 500000)
16 words of extra memory for PDF output out of 10000 (max. 10000000)