rapport : negamax vs alphabeta

This commit is contained in:
Antonin Boyon 2021-02-28 18:58:33 +01:00
parent 828185203d
commit 1044cd4a2b
17 changed files with 377 additions and 288 deletions

View File

@ -25,29 +25,32 @@
\providecommand \oddpage@label [2]{} \providecommand \oddpage@label [2]{}
\babel@aux{french}{} \babel@aux{french}{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{section.1}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{2}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {2}Organisation du code}{2}{section.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {2}L'algorithme de recherche}{2}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3}L'algorithme de recherche}{3}{section.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.1}Algorithme de base}{2}{subsection.2.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Algorithme de base}{3}{subsection.3.1}\protected@file@percent } \@writefile{lol}{\contentsline {lstlisting}{NegamaxPlayer.txt}{2}{lstlisting.-1}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{NegamaxPlayer.java}{3}{lstlisting.-1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {2.2}Algorithme d'élagage}{3}{subsection.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}Algorithme d'élagage}{4}{subsection.3.2}\protected@file@percent } \@writefile{lol}{\contentsline {lstlisting}{AlphaBetaPlayer.txt}{3}{lstlisting.-2}\protected@file@percent }
\@writefile{lol}{\contentsline {lstlisting}{AlphaBetaPlayer.java}{4}{lstlisting.-2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3}Mesures}{4}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {4}Mesures}{5}{section.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Présentation}{4}{subsection.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Présentation}{5}{subsection.4.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}AlphaBeta}{5}{subsection.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2}AlphaBeta}{6}{subsection.4.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Profondeur 1}{5}{subsubsection.3.2.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.1}Profondeur 1}{6}{subsubsection.4.2.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Profondeur 2}{6}{subsubsection.3.2.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.2}Profondeur 2}{7}{subsubsection.4.2.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.3}Profondeur 3}{7}{subsubsection.3.2.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.3}Profondeur 3}{8}{subsubsection.4.2.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.4}Profondeur 4}{8}{subsubsection.3.2.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.4}Profondeur 4}{9}{subsubsection.4.2.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.5}Profondeur 5}{9}{subsubsection.3.2.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.5}Profondeur 5}{10}{subsubsection.4.2.5}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.6}Conclusion dAlphabeta}{10}{subsubsection.3.2.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.2.6}Conclusion dAlphabeta}{11}{subsubsection.4.2.6}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Negamax}{10}{subsection.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {4.3}Negamax}{11}{subsection.4.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Profondeur 1}{10}{subsubsection.3.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.1}Profondeur 1}{11}{subsubsection.4.3.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Profondeur 2}{11}{subsubsection.3.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.2}Profondeur 2}{12}{subsubsection.4.3.2}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.3}Profondeur 3}{13}{subsubsection.3.3.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.3}Profondeur 3}{13}{subsubsection.4.3.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.4}Profondeur 4}{14}{subsubsection.3.3.4}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.4}Profondeur 4}{14}{subsubsection.4.3.4}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.5}Profondeur 5}{15}{subsubsection.3.3.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.5}Profondeur 5}{15}{subsubsection.4.3.5}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.6}Conclusion de Negamax}{15}{subsubsection.3.3.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {4.3.6}Conclusion de Negamax}{15}{subsubsection.4.3.6}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Negamax vs AlphaBeta}{15}{subsection.3.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5}Difficultés rencontrés}{15}{section.5}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}Profondeur 2, AlphaBeta premier joueur, Negamax second}{15}{subsubsection.3.4.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {6}Expérimentations}{15}{section.6}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}Profondeur 2, Negamax premier joueur, AlphaBeta second}{15}{subsubsection.3.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{16}{section.7}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Conclusion de AlphaBeta vs Negamax}{15}{subsubsection.3.4.3}\protected@file@percent }
\gdef \@abspage@last{17} \@writefile{toc}{\contentsline {section}{\numberline {4}Difficultés rencontrés}{17}{section.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {5}Expérimentations}{17}{section.5}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{17}{section.6}\protected@file@percent }
\gdef \@abspage@last{18}

View File

@ -1,12 +1,12 @@
This is pdfTeX, Version 3.14159265-2.6-1.40.21 (MiKTeX 20.12) (preloaded format=pdflatex 2021.1.12) 28 FEB 2021 12:14 This is pdfTeX, Version 3.14159265-2.6-1.40.21 (MiKTeX 21.1) (preloaded format=pdflatex 2021.2.8) 28 FEB 2021 18:49
entering extended mode entering extended mode
**./Rapport.tex **./Rapport.tex
(Rapport.tex (Rapport.tex
LaTeX2e <2020-10-01> patch level 2 LaTeX2e <2020-10-01> patch level 4
L3 programming layer <2020-12-07> xparse <2020-03-03> L3 programming layer <2021-01-09> xparse <2020-03-03>
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/base\article.cls (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/base\article.cls
Document Class: article 2020/04/10 v1.4m Standard LaTeX document class Document Class: article 2020/04/10 v1.4m Standard LaTeX document class
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/base\size12.clo (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/base\size12.clo
File: size12.clo 2020/04/10 v1.4m Standard LaTeX file (size option) File: size12.clo 2020/04/10 v1.4m Standard LaTeX file (size option)
) )
\c@part=\count177 \c@part=\count177
@ -21,36 +21,37 @@ File: size12.clo 2020/04/10 v1.4m Standard LaTeX file (size option)
\belowcaptionskip=\skip48 \belowcaptionskip=\skip48
\bibindent=\dimen138 \bibindent=\dimen138
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/base\inputenc.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/base\inputenc.sty
Package: inputenc 2020/08/01 v1.3d Input encoding file Package: inputenc 2020/08/01 v1.3d Input encoding file
\inpenc@prehook=\toks15 \inpenc@prehook=\toks15
\inpenc@posthook=\toks16 \inpenc@posthook=\toks16
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/base\fontenc.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/base\fontenc.sty
Package: fontenc 2020/08/10 v2.0s Standard LaTeX package Package: fontenc 2020/08/10 v2.0s Standard LaTeX package
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/babel\babel.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/babel\babel.sty
Package: babel 2020/10/27 3.51 The Babel package Package: babel 2020/12/16 3.52 The Babel package
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/babel\babel.def (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/babel\babel.def
File: babel.def 2020/10/27 3.51 Babel common definitions File: babel.def 2020/12/16 3.52 Babel common definitions
\babel@savecnt=\count185 \babel@savecnt=\count185
\U@D=\dimen139 \U@D=\dimen139
\l@babelnohyphens=\language79 \l@babelnohyphens=\language79
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/babel\txtbabel.def) (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/babel\txtbabel.def)
\bbl@readstream=\read2 \bbl@readstream=\read2
) )
\bbl@dirlevel=\count186 \bbl@dirlevel=\count186
************************************* *************************************
* Local config file bblopts.cfg used * Local config file bblopts.cfg used
* *
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/arabi\bblopts.cfg (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/arabi\bblopts.cfg
File: bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to "declared" options of File: bblopts.cfg 2005/09/08 v0.1 add Arabic and Farsi to "declared" options of
babel babel
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/babel-french\french. (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/babel-french\french.l
ldf df
Language: french 2020/10/10 v3.5l French support from the babel system Language: french 2020/10/10 v3.5l French support from the babel system
Package babel Info: \l@acadian = using hyphenrules for french Package babel Info: \l@acadian = using hyphenrules for french
(babel) (\language22) on input line 91. (babel) (\language22) on input line 91.
@ -77,71 +78,69 @@ Package babel Info: Making ? an active character on input line 433.
\parindentFFN=\dimen146 \parindentFFN=\dimen146
\FBfnindent=\dimen147 \FBfnindent=\dimen147
)) ))
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/carlisle\scalefnt.sty) (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/carlisle\scalefnt.sty)
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/graphics\keyval.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/graphics\keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC) Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks18 \KV@toks@=\toks18
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/hyperref\hyperref.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/hyperref\hyperref.sty
Package: hyperref 2020-05-15 v7.00e Hypertext links for LaTeX Package: hyperref 2020-05-15 v7.00e Hypertext links for LaTeX
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/ltxcmds\ltxcmds.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/ltxcmds\ltxcmds.sty
Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO) Package: ltxcmds 2020-05-10 v1.25 LaTeX kernel commands for general use (HO)
) (C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/iftex\iftex.sty )
(C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/iftex\iftex.sty
Package: iftex 2020/03/06 v1.0d TeX engine tests Package: iftex 2020/03/06 v1.0d TeX engine tests
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/pdftexcmds\pdftexcmd (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/pdftexcmds\pdftexcmds
s.sty .sty
Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/infwarerr\infwarerr. (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/infwarerr\infwarerr.s
sty ty
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO) Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
) )
Package pdftexcmds Info: \pdf@primitive is available. Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available. Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode found. Package pdftexcmds Info: \pdfdraftmode found.
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/kvsetkeys\kvsetkeys. (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/kvsetkeys\kvsetkeys.s
sty ty
Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO) Package: kvsetkeys 2019/12/15 v1.18 Key value parser (HO)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/kvdefinekeys\kvdefin (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/kvdefinekeys\kvdefine
ekeys.sty keys.sty
Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO) Package: kvdefinekeys 2019-12-19 v1.6 Define keys (HO)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/pdfescape\pdfescape. (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/pdfescape\pdfescape.s
sty ty
Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO) Package: pdfescape 2019/12/09 v1.15 Implements pdfTeX's escape features (HO)
) ) (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/hycolor\hycolor.sty
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/hycolor\hycolor.sty
Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO) Package: hycolor 2020-01-27 v1.10 Color options for hyperref/bookmark (HO)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/letltxmacro\letltxmacr (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/letltxmacro\letltxmacro
o.sty .sty
Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO) Package: letltxmacro 2019/12/03 v1.6 Let assignment for LaTeX macros (HO)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/auxhook\auxhook.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/auxhook\auxhook.sty
Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/kvoptions\kvoptions.st (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/kvoptions\kvoptions.sty
y
Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO) Package: kvoptions 2020-10-07 v3.14 Key value format for package options (HO)
) )
\@linkdim=\dimen148 \@linkdim=\dimen148
\Hy@linkcounter=\count194 \Hy@linkcounter=\count194
\Hy@pagecounter=\count195 \Hy@pagecounter=\count195
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/hyperref\pd1enc.def (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/hyperref\pd1enc.def
File: pd1enc.def 2020-05-15 v7.00e Hyperref: PDFDocEncoding definition (HO) File: pd1enc.def 2020-05-15 v7.00e Hyperref: PDFDocEncoding definition (HO)
Now handling font encoding PD1 ... Now handling font encoding PD1 ...
... no UTF-8 mapping file for font encoding PD1 ... no UTF-8 mapping file for font encoding PD1
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/intcalc\intcalc.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/intcalc\intcalc.sty
Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO) Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/etexcmds\etexcmds.st (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/etexcmds\etexcmds.sty
y
Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO)
) )
\Hy@SavedSpaceFactor=\count196 \Hy@SavedSpaceFactor=\count196
@ -153,18 +152,18 @@ Package hyperref Info: Backreferencing OFF on input line 4484.
Package hyperref Info: Implicit mode ON; LaTeX internals redefined. Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
Package hyperref Info: Bookmarks ON on input line 4717. Package hyperref Info: Bookmarks ON on input line 4717.
\c@Hy@tempcnt=\count197 \c@Hy@tempcnt=\count197
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/url\url.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/url\url.sty
\Urlmuskip=\muskip16 \Urlmuskip=\muskip16
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc. Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
) )
LaTeX Info: Redefining \url on input line 5076. LaTeX Info: Redefining \url on input line 5076.
\XeTeXLinkMargin=\dimen149 \XeTeXLinkMargin=\dimen149
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/bitset\bitset.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/bitset\bitset.sty
Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO) Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/bigintcalc\bigintcal (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/bigintcalc\bigintcalc
c.sty .sty
Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO
) )
)) ))
@ -181,7 +180,7 @@ Package hyperref Info: PDF/A mode OFF on input line 6377.
LaTeX Info: Redefining \ref on input line 6417. LaTeX Info: Redefining \ref on input line 6417.
LaTeX Info: Redefining \pageref on input line 6421. LaTeX Info: Redefining \pageref on input line 6421.
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/base\atbegshi-ltx.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/base\atbegshi-ltx.sty
Package: atbegshi-ltx 2020/08/17 v1.0a Emulation of the original atbegshi packa Package: atbegshi-ltx 2020/08/17 v1.0a Emulation of the original atbegshi packa
ge ge
with kernel methods with kernel methods
@ -191,10 +190,10 @@ with kernel methods
\c@Hfootnote=\count267 \c@Hfootnote=\count267
) )
Package hyperref Info: Driver (autodetected): hpdftex. Package hyperref Info: Driver (autodetected): hpdftex.
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/hyperref\hpdftex.def (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/hyperref\hpdftex.def
File: hpdftex.def 2020-05-15 v7.00e Hyperref driver for pdfTeX File: hpdftex.def 2020-05-15 v7.00e Hyperref driver for pdfTeX
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/base\atveryend-ltx.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/base\atveryend-ltx.sty
Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atvery packag Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atvery packag
e e
with kernel methods with kernel methods
@ -202,12 +201,12 @@ with kernel methods
\Fld@listcount=\count268 \Fld@listcount=\count268
\c@bookmark@seq@number=\count269 \c@bookmark@seq@number=\count269
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/rerunfilecheck\rerunfi (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/rerunfilecheck\rerunfil
lecheck.sty echeck.sty
Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO) Package: rerunfilecheck 2019/12/05 v1.9 Rerun checks for auxiliary files (HO)
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/uniquecounter\unique (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/uniquecounter\uniquec
counter.sty ounter.sty
Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO) Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO)
) )
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2 Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
@ -215,29 +214,28 @@ Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
) )
\Hy@SectionHShift=\skip49 \Hy@SectionHShift=\skip49
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/graphics\graphicx.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/graphics\graphicx.sty
Package: graphicx 2020/09/09 v1.2b Enhanced LaTeX Graphics (DPC,SPQR) Package: graphicx 2020/09/09 v1.2b Enhanced LaTeX Graphics (DPC,SPQR)
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/graphics\graphics.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/graphics\graphics.sty
Package: graphics 2020/08/30 v1.4c Standard LaTeX Graphics (DPC,SPQR) Package: graphics 2020/08/30 v1.4c Standard LaTeX Graphics (DPC,SPQR)
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/graphics\trig.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/graphics\trig.sty
Package: trig 2016/01/03 v1.10 sin cos tan (DPC) Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/graphics-cfg\graphics. (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/graphics-cfg\graphics.c
cfg fg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
) )
Package graphics Info: Driver file: pdftex.def on input line 105. Package graphics Info: Driver file: pdftex.def on input line 105.
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/graphics-def\pdftex.de (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/graphics-def\pdftex.def
f
File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
)) ))
\Gin@req@height=\dimen152 \Gin@req@height=\dimen152
\Gin@req@width=\dimen153 \Gin@req@width=\dimen153
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/listings\listings.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/listings\listings.sty
\lst@mode=\count270 \lst@mode=\count270
\lst@gtempboxa=\box47 \lst@gtempboxa=\box47
\lst@token=\toks19 \lst@token=\toks19
@ -251,34 +249,33 @@ File: pdftex.def 2020/10/05 v1.2a Graphics/color driver for pdftex
\lst@lineno=\count275 \lst@lineno=\count275
\lst@maxwidth=\dimen157 \lst@maxwidth=\dimen157
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/listings\lstmisc.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/listings\lstmisc.sty
File: lstmisc.sty 2020/03/24 1.8d (Carsten Heinz) File: lstmisc.sty 2020/03/24 1.8d (Carsten Heinz)
\c@lstnumber=\count276 \c@lstnumber=\count276
\lst@skipnumbers=\count277 \lst@skipnumbers=\count277
\lst@framebox=\box48 \lst@framebox=\box48
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/listings\listings.cfg (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/listings\listings.cfg
File: listings.cfg 2020/03/24 1.8d listings configuration File: listings.cfg 2020/03/24 1.8d listings configuration
)) ))
Package: listings 2020/03/24 1.8d (Carsten Heinz) Package: listings 2020/03/24 1.8d (Carsten Heinz)
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/algorithm2e\algorithm2 (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/algorithm2e\algorithm2e
e.sty .sty
Package: algorithm2e 2017/07/18 v5.2 algorithms environments Package: algorithm2e 2017/07/18 v5.2 algorithms environments
\c@AlgoLine=\count278 \c@AlgoLine=\count278
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/base\ifthen.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/base\ifthen.sty
Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC) Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
) )
\algocf@hangindent=\skip50 \algocf@hangindent=\skip50
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/ifoddpage\ifoddpage.st (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/ifoddpage\ifoddpage.sty
y
Package: ifoddpage 2016/04/23 v1.1 Conditionals for odd/even page detection Package: ifoddpage 2016/04/23 v1.1 Conditionals for odd/even page detection
\c@checkoddpage=\count279 \c@checkoddpage=\count279
) (C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/tools\xspace.sty
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/relsize\relsize.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/latex-tools\xspace.sty
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
) (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/relsize\relsize.sty
Package: relsize 2013/03/29 ver 4.1 Package: relsize 2013/03/29 ver 4.1
) )
\skiptotal=\skip51 \skiptotal=\skip51
@ -317,9 +314,9 @@ Package: relsize 2013/03/29 ver 4.1
\algocf@algoframe=\box55 \algocf@algoframe=\box55
\algocf@algobox=\box56 \algocf@algobox=\box56
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/l3backend\l3backend-pd (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/l3backend\l3backend-pdf
ftex.def tex.def
File: l3backend-pdftex.def 2020-09-24 L3 backend support: PDF output (pdfTeX) File: l3backend-pdftex.def 2021-01-09 L3 backend support: PDF output (pdfTeX)
\l__kernel_color_stack_int=\count283 \l__kernel_color_stack_int=\count283
\l__pdf_internal_box=\box57 \l__pdf_internal_box=\box57
) (Rapport.aux) ) (Rapport.aux)
@ -346,14 +343,14 @@ LaTeX Info: Redefining \dots on input line 18.
LaTeX Info: Redefining \up on input line 18. LaTeX Info: Redefining \up on input line 18.
Package hyperref Info: Link coloring OFF on input line 18. Package hyperref Info: Link coloring OFF on input line 18.
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/hyperref\nameref.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/hyperref\nameref.sty
Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section Package: nameref 2019/09/16 v2.46 Cross-referencing by name of section
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/refcount\refcount.sty (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/refcount\refcount.sty
Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO) Package: refcount 2019/12/15 v3.6 Data extraction from label references (HO)
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/generic/gettitlestring\getti (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/generic/gettitlestring\gettit
tlestring.sty lestring.sty
Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO) Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
) )
\c@section@level=\count284 \c@section@level=\count284
@ -366,8 +363,8 @@ LaTeX Info: Redefining \nameref on input line 18.
\openout3 = `Rapport.out'. \openout3 = `Rapport.out'.
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/context/base/mkii\supp-pdf.m (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/context/base/mkii\supp-pdf.mk
kii ii
[Loading MPS to PDF converter (version 2006.09.02).] [Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count285 \scratchcounter=\count285
\scratchdimen=\dimen164 \scratchdimen=\dimen164
@ -381,8 +378,8 @@ kii
\makeMPintoPDFobject=\count290 \makeMPintoPDFobject=\count290
\everyMPtoPDFconversion=\toks21 \everyMPtoPDFconversion=\toks21
) )
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/epstopdf-pkg\epstopdf- (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/epstopdf-pkg\epstopdf-b
base.sty ase.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
85. 85.
@ -394,29 +391,26 @@ LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 21. (Font) <7> on input line 21.
[0 [0
{C:/Users/Arthur/AppData/Local/MiKTeX/pdftex/config/pdftex.map}] {C:/Users/anton/AppData/Local/MiKTeX/pdftex/config/pdftex.map}]
(Rapport.toc (Rapport.toc
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <12> on input line 5. (Font) <12> on input line 4.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 5. (Font) <8> on input line 4.
LaTeX Font Info: External font `cmex10' loaded for size LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 5. (Font) <6> on input line 4.
) )
\tf@toc=\write4 \tf@toc=\write4
\openout4 = `Rapport.toc'. \openout4 = `Rapport.toc'.
[1] [1]
Overfull \hbox (7.60284pt too wide) in paragraph at lines 39--40 (C:\Users\anton\AppData\Local\Programs\MiKTeX\tex/latex/listings\lstlang1.sty
\T1/cmr/m/n/12 PLAYER et les classes filles NE-GA-MAX-PLAYER, RAN-DOM-PLAYER
[]
(C:\Users\Arthur\AppData\Local\Programs\MiKTeX\tex/latex/listings\lstlang1.sty
File: lstlang1.sty 2020/03/24 1.8d listings language file File: lstlang1.sty 2020/03/24 1.8d listings language file
) [2] )
Package hyperref Info: bookmark level for unknown lstlisting defaults to 0 on i Package hyperref Info: bookmark level for unknown lstlisting defaults to 0 on i
nput line 47. nput line 38.
(NegamaxPlayer.java
(NegamaxPlayer.txt
Overfull \hbox (138.62549pt too wide) in paragraph at lines 4--5 Overfull \hbox (138.62549pt too wide) in paragraph at lines 4--5
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][] [][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[] []
@ -426,7 +420,7 @@ Overfull \hbox (180.91553pt too wide) in paragraph at lines 20--21
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][][] [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[] []
) [3] (AlphaBetaPlayer.java [2]) (AlphaBetaPlayer.txt
Overfull \hbox (131.57715pt too wide) in paragraph at lines 5--6 Overfull \hbox (131.57715pt too wide) in paragraph at lines 5--6
[][][][][][][][][][][][][][][][][][][][][][][][][][][][][] [][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
[] []
@ -451,124 +445,181 @@ Overfull \hbox (166.81885pt too wide) in paragraph at lines 23--24
[][][][][][][][][][][][][][][][][][][][][][][][][] [][][][][][][][][][][][][][][][][][][][][][][][][]
[] []
) [4] [3])
Underfull \hbox (badness 10000) in paragraph at lines 61--66 Underfull \hbox (badness 10000) in paragraph at lines 48--53
[] []
[5] [4]
<prof1alphabeta.png, id=216, 1204.5pt x 744.7825pt> <prof1alphabeta.png, id=217, 903.375pt x 558.58687pt>
File: prof1alphabeta.png Graphic file (type png) File: prof1alphabeta.png Graphic file (type png)
<use prof1alphabeta.png> <use prof1alphabeta.png>
Package pdftex.def Info: prof1alphabeta.png used on input line 74. Package pdftex.def Info: prof1alphabeta.png used on input line 61.
(pdftex.def) Requested size: 390.0pt x 241.15366pt. (pdftex.def) Requested size: 390.0pt x 241.1508pt.
[6 <./prof1alphabeta.png>] [5 <./prof1alphabeta.png>]
<prof2alphabeta.png, id=224, 1204.5pt x 744.7825pt> <prof2alphabeta.png, id=224, 903.375pt x 558.58687pt>
File: prof2alphabeta.png Graphic file (type png) File: prof2alphabeta.png Graphic file (type png)
<use prof2alphabeta.png> <use prof2alphabeta.png>
Package pdftex.def Info: prof2alphabeta.png used on input line 84. Package pdftex.def Info: prof2alphabeta.png used on input line 71.
(pdftex.def) Requested size: 390.0pt x 241.15366pt. (pdftex.def) Requested size: 390.0pt x 241.1508pt.
[7 <./prof2alphabeta.png>]
<prof3alphabeta.png, id=230, 1204.5pt x 744.7825pt>
File: prof3alphabeta.png Graphic file (type png)
<use prof3alphabeta.png>
Package pdftex.def Info: prof3alphabeta.png used on input line 96.
(pdftex.def) Requested size: 390.0pt x 241.15366pt.
[8 <./prof3alphabeta.png>]
<prof4alphabeta.png, id=236, 1204.5pt x 744.7825pt>
File: prof4alphabeta.png Graphic file (type png)
<use prof4alphabeta.png>
Package pdftex.def Info: prof4alphabeta.png used on input line 105.
(pdftex.def) Requested size: 390.0pt x 241.15366pt.
Underfull \hbox (badness 10000) in paragraph at lines 108--111 Underfull \hbox (badness 10000) in paragraph at lines 74--77
[] []
<prof4alphabeta-console.png, id=237, 495.8525pt x 136.51pt> [6 <./prof2alphabeta.png>]
<prof3alphabeta.png, id=231, 903.375pt x 558.58687pt>
File: prof3alphabeta.png Graphic file (type png)
<use prof3alphabeta.png>
Package pdftex.def Info: prof3alphabeta.png used on input line 84.
(pdftex.def) Requested size: 390.0pt x 241.1508pt.
[7 <./prof3alphabeta.png>]
<prof4alphabeta.png, id=237, 903.375pt x 558.58687pt>
File: prof4alphabeta.png Graphic file (type png)
<use prof4alphabeta.png>
Package pdftex.def Info: prof4alphabeta.png used on input line 97.
(pdftex.def) Requested size: 390.0pt x 241.1508pt.
Underfull \hbox (badness 10000) in paragraph at lines 100--102
[]
<prof4alphabeta-console.png, id=238, 495.8525pt x 136.51pt>
File: prof4alphabeta-console.png Graphic file (type png) File: prof4alphabeta-console.png Graphic file (type png)
<use prof4alphabeta-console.png> <use prof4alphabeta-console.png>
Package pdftex.def Info: prof4alphabeta-console.png used on input line 113. Package pdftex.def Info: prof4alphabeta-console.png used on input line 107.
(pdftex.def) Requested size: 390.0pt x 107.36887pt. (pdftex.def) Requested size: 390.0pt x 107.36887pt.
[9 <./prof4alphabeta.png> <./prof4alphabeta-console.png>] [8 <./prof4alphabeta.png> <./prof4alphabeta-console.png>]
<prof5alphabeta.png, id=244, 1204.5pt x 744.7825pt> <prof5alphabeta.png, id=245, 903.375pt x 558.58687pt>
File: prof5alphabeta.png Graphic file (type png) File: prof5alphabeta.png Graphic file (type png)
<use prof5alphabeta.png> <use prof5alphabeta.png>
Package pdftex.def Info: prof5alphabeta.png used on input line 121. Package pdftex.def Info: prof5alphabeta.png used on input line 115.
(pdftex.def) Requested size: 390.0pt x 241.15366pt. (pdftex.def) Requested size: 390.0pt x 241.1508pt.
<prof5alphabeta-console.png, id=245, 496.85625pt x 134.5025pt>
Overfull \hbox (2.61531pt too wide) in paragraph at lines 122--123
[]\T1/cmr/m/n/12 Identique au pré-cé-dent gra-phique, la courbe est plu-tôt li-
néaire et le nombre
[]
Underfull \hbox (badness 10000) in paragraph at lines 122--123
[]
<prof5alphabeta-console.png, id=246, 496.85625pt x 134.5025pt>
File: prof5alphabeta-console.png Graphic file (type png) File: prof5alphabeta-console.png Graphic file (type png)
<use prof5alphabeta-console.png> <use prof5alphabeta-console.png>
Package pdftex.def Info: prof5alphabeta-console.png used on input line 129. Package pdftex.def Info: prof5alphabeta-console.png used on input line 127.
(pdftex.def) Requested size: 390.0pt x 105.57646pt. (pdftex.def) Requested size: 390.0pt x 105.57646pt.
[10 <./prof5alphabeta.png> <./prof5alphabeta-console.png>]
LaTeX Warning: `!h' float specifier changed to `!ht'.
Underfull \hbox (badness 10000) in paragraph at lines 134--137
[]
[9 <./prof5alphabeta.png>]
<prof1negamax.png, id=252, 1204.5pt x 744.7825pt> <prof1negamax.png, id=252, 1204.5pt x 744.7825pt>
File: prof1negamax.png Graphic file (type png) File: prof1negamax.png Graphic file (type png)
<use prof1negamax.png> <use prof1negamax.png>
Package pdftex.def Info: prof1negamax.png used on input line 146. Package pdftex.def Info: prof1negamax.png used on input line 146.
(pdftex.def) Requested size: 390.0pt x 241.15366pt. (pdftex.def) Requested size: 390.0pt x 241.15366pt.
[11 <./prof1negamax.png>]
<prof2negamax.png, id=258, 1204.5pt x 744.7825pt>
LaTeX Warning: `!h' float specifier changed to `!ht'.
<prof2negamax.png, id=253, 903.375pt x 558.58687pt>
File: prof2negamax.png Graphic file (type png) File: prof2negamax.png Graphic file (type png)
<use prof2negamax.png> <use prof2negamax.png>
Package pdftex.def Info: prof2negamax.png used on input line 157. Package pdftex.def Info: prof2negamax.png used on input line 157.
(pdftex.def) Requested size: 390.0pt x 241.15366pt. (pdftex.def) Requested size: 390.0pt x 241.1508pt.
[12 <./prof2negamax.png>] [10 <./prof5alphabeta-console.png>] [11 <./prof1negamax.png> <./prof2negamax.pn
<prof3negamax.png, id=265, 1204.5pt x 744.7825pt> g>] [12]
<prof3negamax.png, id=270, 903.375pt x 558.58687pt>
File: prof3negamax.png Graphic file (type png) File: prof3negamax.png Graphic file (type png)
<use prof3negamax.png> <use prof3negamax.png>
Package pdftex.def Info: prof3negamax.png used on input line 169. Package pdftex.def Info: prof3negamax.png used on input line 171.
(pdftex.def) Requested size: 390.0pt x 241.15366pt. (pdftex.def) Requested size: 390.0pt x 241.1508pt.
[13 <./prof3negamax.png>]
<prof4negamax.png, id=271, 1204.5pt x 744.7825pt> Underfull \hbox (badness 10000) in paragraph at lines 174--176
[]
[13 <./prof3negamax.png>]
<prof4negamax.png, id=276, 1204.5pt x 744.7825pt>
File: prof4negamax.png Graphic file (type png) File: prof4negamax.png Graphic file (type png)
<use prof4negamax.png> <use prof4negamax.png>
Package pdftex.def Info: prof4negamax.png used on input line 180. Package pdftex.def Info: prof4negamax.png used on input line 184.
(pdftex.def) Requested size: 390.0pt x 241.15366pt. (pdftex.def) Requested size: 390.0pt x 241.15366pt.
<prof4negamax-console.png, id=272, 354.57469pt x 110.66344pt> <prof4negamax-console.png, id=277, 354.57469pt x 110.66344pt>
File: prof4negamax-console.png Graphic file (type png) File: prof4negamax-console.png Graphic file (type png)
<use prof4negamax-console.png> <use prof4negamax-console.png>
Package pdftex.def Info: prof4negamax-console.png used on input line 187. Package pdftex.def Info: prof4negamax-console.png used on input line 191.
(pdftex.def) Requested size: 390.0pt x 121.72337pt. (pdftex.def) Requested size: 390.0pt x 121.72337pt.
[14 <./prof4negamax.png> <./prof4negamax-console.png>] [14 <./prof4negamax.png> <./prof4negamax-console.png>]
Underfull \hbox (badness 10000) in paragraph at lines 205--206 <prof2alphaVSnegamax.png, id=284, 903.375pt x 558.58687pt>
File: prof2alphaVSnegamax.png Graphic file (type png)
<use prof2alphaVSnegamax.png>
Package pdftex.def Info: prof2alphaVSnegamax.png used on input line 213.
(pdftex.def) Requested size: 390.0pt x 241.1508pt.
LaTeX Warning: `!h' float specifier changed to `!ht'.
<prof2negamaxVSalpha.png, id=285, 903.375pt x 558.58687pt>
File: prof2negamaxVSalpha.png Graphic file (type png)
<use prof2negamaxVSalpha.png>
Package pdftex.def Info: prof2negamaxVSalpha.png used on input line 222.
(pdftex.def) Requested size: 390.0pt x 241.1508pt.
LaTeX Warning: `!h' float specifier changed to `!ht'.
Underfull \hbox (badness 10000) in paragraph at lines 234--235
[] []
[15] [16 <./prof2alphaVSnegamax.png> <./prof2negamaxVSalpha.png>]
Underfull \hbox (badness 10000) in paragraph at lines 214--215 Underfull \hbox (badness 10000) in paragraph at lines 243--244
[] []
[15] [16] (Rapport.aux) [17] (Rapport.aux)
Package rerunfilecheck Info: File `Rapport.out' has not changed.
(rerunfilecheck) Checksum: 280C1A28673D5DEAFCACB955613B7B3D;1572. Package rerunfilecheck Warning: File `Rapport.out' has changed.
(rerunfilecheck) Rerun to get outlines right
(rerunfilecheck) or use package `bookmark'.
Package rerunfilecheck Info: Checksums for `Rapport.out':
(rerunfilecheck) Before: 3F24C2690F47FB4B1963156A6D7E2726;1658
(rerunfilecheck) After: EDFE9D99E5E23084C392C6E02A66C3BB;1908.
) )
Here is how much of TeX's memory you used: Here is how much of TeX's memory you used:
9910 strings out of 479697 9969 strings out of 479618
151316 string characters out of 2866658 152339 string characters out of 2865027
694007 words of memory out of 3000000 703256 words of memory out of 3000000
26747 multiletter control sequences out of 15000+200000 26880 multiletter control sequences out of 15000+200000
414266 words of font info for 49 fonts, out of 3000000 for 9000 414266 words of font info for 49 fonts, out of 3000000 for 9000
1141 hyphenation exceptions out of 8191 1141 hyphenation exceptions out of 8191
66i,6n,72p,402b,1197s stack positions out of 5000i,500n,10000p,200000b,50000s 71i,6n,74p,396b,1916s stack positions out of 5000i,500n,10000p,200000b,50000s
<C:\Users\Arthur\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi600\tcr <C:\Users\anton\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi600\tcrm
m1200.pk> <C:\Users\Arthur\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi 1200.pk> <C:\Users\anton\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi60
600\ecrm0600.pk> <C:\Users\Arthur\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen 0\ecrm0600.pk> <C:\Users\anton\AppData\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec
/ec/dpi600\ecbx1440.pk> <C:\Users\Arthur\AppData\Local\MiKTeX\fonts/pk/ljfour/j /dpi600\ecbx1440.pk> <C:\Users\anton\AppData\Local\MiKTeX\fonts/pk/ljfour/jknap
knappen/ec/dpi600\ecti1200.pk> <C:\Users\Arthur\AppData\Local\MiKTeX\fonts/pk/l pen/ec/dpi600\ecti1200.pk> <C:\Users\anton\AppData\Local\MiKTeX\fonts/pk/ljfour
jfour/jknappen/ec/dpi600\ecrm1200.pk> <C:\Users\Arthur\AppData\Local\MiKTeX\fon /jknappen/ec/dpi600\ecrm1200.pk> <C:\Users\anton\AppData\Local\MiKTeX\fonts/pk/
ts/pk/ljfour/jknappen/ec/dpi600\ecbx1200.pk> <C:\Users\Arthur\AppData\Local\MiK ljfour/jknappen/ec/dpi600\ecbx1200.pk> <C:\Users\anton\AppData\Local\MiKTeX\fon
TeX\fonts/pk/ljfour/jknappen/ec/dpi600\ecbx1728.pk> <C:\Users\Arthur\AppData\Lo ts/pk/ljfour/jknappen/ec/dpi600\ecbx1728.pk> <C:\Users\anton\AppData\Local\MiKT
cal\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi600\ecrm1440.pk> <C:\Users\Arthur\App eX\fonts/pk/ljfour/jknappen/ec/dpi600\ecrm1440.pk> <C:\Users\anton\AppData\Loca
Data\Local\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi600\ecrm2074.pk><C:/Users/Arth l\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi600\ecrm2074.pk><C:/Users/anton/AppData
ur/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr12.pfb><C:/U /Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr12.pfb><C:/Users/anton
sers/Arthur/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr8.p /AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmr8.pfb><C:/User
fb><C:/Users/Arthur/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/c s/anton/AppData/Local/Programs/MiKTeX/fonts/type1/public/amsfonts/cm/cmsy10.pfb
m/cmsy10.pfb> >
Output written on Rapport.pdf (17 pages, 601815 bytes). Output written on Rapport.pdf (18 pages, 701684 bytes).
PDF statistics: PDF statistics:
601 PDF objects out of 1000 (max. 8388607) 615 PDF objects out of 1000 (max. 8388607)
101 named destinations out of 1000 (max. 500000) 105 named destinations out of 1000 (max. 500000)
253 words of extra memory for PDF output out of 10000 (max. 10000000) 271 words of extra memory for PDF output out of 10000 (max. 10000000)

View File

@ -1,24 +1,27 @@
\BOOKMARK [1][-]{section.1}{Introduction}{}% 1 \BOOKMARK [1][-]{section.1}{Introduction}{}% 1
\BOOKMARK [1][-]{section.2}{Organisation du code}{}% 2 \BOOKMARK [1][-]{section.2}{L'algorithme de recherche}{}% 2
\BOOKMARK [1][-]{section.3}{L'algorithme de recherche}{}% 3 \BOOKMARK [2][-]{subsection.2.1}{Algorithme de base}{section.2}% 3
\BOOKMARK [2][-]{subsection.3.1}{Algorithme de base}{section.3}% 4 \BOOKMARK [2][-]{subsection.2.2}{Algorithme d'\351lagage}{section.2}% 4
\BOOKMARK [2][-]{subsection.3.2}{Algorithme d'\351lagage}{section.3}% 5 \BOOKMARK [1][-]{section.3}{Mesures}{}% 5
\BOOKMARK [1][-]{section.4}{Mesures}{}% 6 \BOOKMARK [2][-]{subsection.3.1}{Pr\351sentation}{section.3}% 6
\BOOKMARK [2][-]{subsection.4.1}{Pr\351sentation}{section.4}% 7 \BOOKMARK [2][-]{subsection.3.2}{AlphaBeta}{section.3}% 7
\BOOKMARK [2][-]{subsection.4.2}{AlphaBeta}{section.4}% 8 \BOOKMARK [3][-]{subsubsection.3.2.1}{Profondeur 1}{subsection.3.2}% 8
\BOOKMARK [3][-]{subsubsection.4.2.1}{Profondeur 1}{subsection.4.2}% 9 \BOOKMARK [3][-]{subsubsection.3.2.2}{Profondeur 2}{subsection.3.2}% 9
\BOOKMARK [3][-]{subsubsection.4.2.2}{Profondeur 2}{subsection.4.2}% 10 \BOOKMARK [3][-]{subsubsection.3.2.3}{Profondeur 3}{subsection.3.2}% 10
\BOOKMARK [3][-]{subsubsection.4.2.3}{Profondeur 3}{subsection.4.2}% 11 \BOOKMARK [3][-]{subsubsection.3.2.4}{Profondeur 4}{subsection.3.2}% 11
\BOOKMARK [3][-]{subsubsection.4.2.4}{Profondeur 4}{subsection.4.2}% 12 \BOOKMARK [3][-]{subsubsection.3.2.5}{Profondeur 5}{subsection.3.2}% 12
\BOOKMARK [3][-]{subsubsection.4.2.5}{Profondeur 5}{subsection.4.2}% 13 \BOOKMARK [3][-]{subsubsection.3.2.6}{Conclusion d\220Alphabeta}{subsection.3.2}% 13
\BOOKMARK [3][-]{subsubsection.4.2.6}{Conclusion d\220Alphabeta}{subsection.4.2}% 14 \BOOKMARK [2][-]{subsection.3.3}{Negamax}{section.3}% 14
\BOOKMARK [2][-]{subsection.4.3}{Negamax}{section.4}% 15 \BOOKMARK [3][-]{subsubsection.3.3.1}{Profondeur 1}{subsection.3.3}% 15
\BOOKMARK [3][-]{subsubsection.4.3.1}{Profondeur 1}{subsection.4.3}% 16 \BOOKMARK [3][-]{subsubsection.3.3.2}{Profondeur 2}{subsection.3.3}% 16
\BOOKMARK [3][-]{subsubsection.4.3.2}{Profondeur 2}{subsection.4.3}% 17 \BOOKMARK [3][-]{subsubsection.3.3.3}{Profondeur 3}{subsection.3.3}% 17
\BOOKMARK [3][-]{subsubsection.4.3.3}{Profondeur 3}{subsection.4.3}% 18 \BOOKMARK [3][-]{subsubsection.3.3.4}{Profondeur 4}{subsection.3.3}% 18
\BOOKMARK [3][-]{subsubsection.4.3.4}{Profondeur 4}{subsection.4.3}% 19 \BOOKMARK [3][-]{subsubsection.3.3.5}{Profondeur 5}{subsection.3.3}% 19
\BOOKMARK [3][-]{subsubsection.4.3.5}{Profondeur 5}{subsection.4.3}% 20 \BOOKMARK [3][-]{subsubsection.3.3.6}{Conclusion de Negamax}{subsection.3.3}% 20
\BOOKMARK [3][-]{subsubsection.4.3.6}{Conclusion de Negamax}{subsection.4.3}% 21 \BOOKMARK [2][-]{subsection.3.4}{Negamax vs AlphaBeta}{section.3}% 21
\BOOKMARK [1][-]{section.5}{Difficult\351s rencontr\351s}{}% 22 \BOOKMARK [3][-]{subsubsection.3.4.1}{Profondeur 2, AlphaBeta premier joueur, Negamax second}{subsection.3.4}% 22
\BOOKMARK [1][-]{section.6}{Exp\351rimentations}{}% 23 \BOOKMARK [3][-]{subsubsection.3.4.2}{Profondeur 2, Negamax premier joueur, AlphaBeta second}{subsection.3.4}% 23
\BOOKMARK [1][-]{section.7}{Conclusion}{}% 24 \BOOKMARK [3][-]{subsubsection.3.4.3}{Conclusion de AlphaBeta vs Negamax}{subsection.3.4}% 24
\BOOKMARK [1][-]{section.4}{Difficult\351s rencontr\351s}{}% 25
\BOOKMARK [1][-]{section.5}{Exp\351rimentations}{}% 26
\BOOKMARK [1][-]{section.6}{Conclusion}{}% 27

Binary file not shown.

Binary file not shown.

View File

@ -30,41 +30,28 @@
Le but de notre projet était de concevoir un algorithme de recherche performant sur un jeu d' \textit{Othello}. Le jeu est le plus abstrait possible, la partie nous intéressant étant la réalisation d'un algorithme de recherche efficace. Il est ainsi impossible de jouer au jeu, on ne peut que regarder le résultat d'une partie entre deux joueurs artificiels.\\ Le but de notre projet était de concevoir un algorithme de recherche performant sur un jeu d' \textit{Othello}. Le jeu est le plus abstrait possible, la partie nous intéressant étant la réalisation d'un algorithme de recherche efficace. Il est ainsi impossible de jouer au jeu, on ne peut que regarder le résultat d'une partie entre deux joueurs artificiels.\\
Une fois le jeu et l'algorithme de recherche implémentés, nous serons en mesure d'analyser ce dernier pour définir ses paramètres de fonctionnement optimaux. Nous aborderons dans un premier temps l'implémentation du jeu, puis celle de l'algorithme et enfin la présentation et l'analyse des mesures observées. Une fois le jeu et l'algorithme de recherche implémentés, nous serons en mesure d'analyser ce dernier pour définir ses paramètres de fonctionnement optimaux. Nous aborderons dans un premier temps l'implémentation du jeu, puis celle de l'algorithme et enfin la présentation et l'analyse des mesures observées.
\section{Organisation du code}
Notre code se compose de plusieurs classes dont nous allons détailler les rôles ci-dessous.
\begin{itemize}
\item La classe STATE: \\ Cette classe représente un état du jeu à un moment donné avec différents paramètres comme le nombre de pions de chaque joueur et leur position sur un plateau de jeu. Elle possède plusieurs méthodes lui permettant de créer une copie d'elle-même, de s'afficher, de trouver les coups possibles pour un joueur ou encore de jouer un coup.
\item La classe PAIR: \\ Cette classe nous a permis de représenter les coups possibles par une paire pion de départ, pion d'arrivée.
\item Les classes PLAYER: \\ Elles permettent de simuler un joueur, il en existe 4, la classe mère PLAYER et les classes filles NEGAMAXPLAYER, RANDOMPLAYER et ALPHABETAPLAYER. La classe RANDOMPLAYER renvoie un coup au hasard parmi les coups possibles. Pour le fonctionnement des deux autres classes, il est détaillé dans les pages qui suivent.
\item La classe POINT: \\ Elle nous permet simplement de représenter un point du plateau de jeu avec une coordonnée X et une coordonnée Y.
\end{itemize}
\section{L'algorithme de recherche} \section{L'algorithme de recherche}
\subsection{Algorithme de base} \subsection{Algorithme de base}
Nous avons utilisé un algorithme Negamax pour résoudre le problème, représenté en pseudo-code ci-dessous. Nous avons utilisé un algorithme Negamax pour résoudre le problème.
\lstinputlisting[language=Java]{NegamaxPlayer.txt} \lstinputlisting[language=Java]{NegamaxPlayer.txt}
\newpage
\subsection{Algorithme d'élagage} \subsection{Algorithme d'élagage}
Afin d'améliorer les performances de notre algorithme de base, nous avons implémenté une version avec élagage Alpha-Bêta, plus performante.
\lstinputlisting[language=Java]{AlphaBetaPlayer.txt} \lstinputlisting[language=Java]{AlphaBetaPlayer.txt}
\newpage
\section{Mesures} \section{Mesures}
\subsection{Présentation} \subsection{Présentation}
Les graphiques qui vont suivre ont été conçus à laide des algorithmes AlphaBeta et Negamax.\\ Les graphiques qui vont suivre ont été conçus à laide des algorithmes AlphaBeta et Negamax.\\
Ils sont lobjet de comparaisons entre les algorithmes, en fonction de leur type ou du joueur concerné (premier ou second joueur).\\ Ils sont lobjet de comparaisons entre les algorithmes, en fonction de leur type ou du joueur concerné (premier ou second joueur).\\
Ils traduisent la complexité de lalgorithme (le nombre de nœuds traversés) au fur et à mesure des tours de la partie.\\ Ils traduisent la complexité de lalgorithmes (le nombre de nœuds traversés) au fur et à mesure des tours de la partie.\\
Le premier joueur est associé à la courbe rouge et le deuxième à la bleue.\\ Le premier joueur est associé à la courbe rouge et le deuxième à la bleue.\\
La profondeur de recherche des deux joueurs sera toujours la même.\\ La profondeur de recherche des deux joueurs sera toujours la même.\\
Tous les tests incluant un temps ont été fait sur la même machine et en même temps : Raspberry pi 3 avec un processeur Quad Core 1.2GHz 64bit sous Raspbian OS 32 bits sans Bureau. Tout les tests incluant un temps ont été fait sur la même machine et en même temps: Raspberry pi 3 avec un processeur Quad Core 1.2GHz 64bit sous Raspbian OS 32 bits sans Bureau.
\newpage \newpage
\subsection{AlphaBeta} \subsection{AlphaBeta}
@ -74,7 +61,7 @@ Tous les tests incluant un temps ont été fait sur la même machine et en même
\includegraphics[width=\textwidth]{prof1alphabeta.png} \includegraphics[width=\textwidth]{prof1alphabeta.png}
\end{figure} \end{figure}
Le joueur 1 obtient assez vite (tour 5) un avantage (il possède plus de possibilités) qui augmente au fur et à mesure des tours. À son maximum (fin de la partie) cet avantage est 69\% plus important par rapport au second joueur.\\ Le joueur 1 obtient assez vite (tour 5) un avantage (il possède plus de possibilités) qui augmente au fur et à mesure des tours. A son maximum (fin de la partie) cet avantage est 69\% plus important par rapport au second joueur.\\
Laugmentation de la complexité est plutôt linéaire.\\ Laugmentation de la complexité est plutôt linéaire.\\
Il semblerait que jouer en premier est un avantage. Il semblerait que jouer en premier est un avantage.
\newpage \newpage
@ -84,11 +71,12 @@ Il semblerait que jouer en premier est un avantage.
\includegraphics[width=\textwidth]{prof2alphabeta.png} \includegraphics[width=\textwidth]{prof2alphabeta.png}
\end{figure} \end{figure}
Malgré quil soit second à jouer, joueur 2 obtient un avantage au niveau du tour 10 environ. Cet avantage augmente jusquau tour 30, avec un pic à 30\% par rapport au joueur 1, mais reste marginal. Il se réduit ensuite jusquà la fin de la partie.\\ Malgré quil soit second à jouer, joueur 2 obtient un avantage au niveau du tour 5 environ. Cet avantage augmente jusquau tour 30, avec un pic à 79\% par rapport au joueur 1. Il se réduit ensuite jusquà la fin de la partie.\\
Le nombre de tours est largement inférieur par rapport au précédent graphique. La complexité du joueur 1 est deux fois moins importante que sur le graphique précédent, malgré la profondeur plus importante.\\ Le nombre de tour est largement inférieur par rapport au précédent graphique. La complexité du joueur 1 est deux fois moins importante que sur le graphique précédent, malgré la profondeur plus importante.\\
Mais malgré cet avantage, la victoire est pour le joueur 1.\\ Mais malgré cet avantage, la victoire est pour le joueur 1.\\
La courbe est linéaire, comme sur le graphique précédent.\\
Être le premier à jouer semble donner un avantage, et le nombre de possibilités du joueur 2 plus important nétait pas suffisant pour le résorber. La profondeur ne semble pas forcément augmenter le nombre de possibilités. La courbe est linéaire, comme sur la graphique précédent.\\
Être le premier à jouer semble donner un avantage, et le nombre de possibilités du joueur 2 plus important nest pas suffisant pour le résorber. La profondeur ne semble pas forcément augmenter le nombre de possibilités.
\newpage \newpage
\subsubsection{Profondeur 3} \subsubsection{Profondeur 3}
@ -96,8 +84,12 @@ La courbe est linéaire, comme sur le graphique précédent.\\
\includegraphics[width=\textwidth]{prof3alphabeta.png} \includegraphics[width=\textwidth]{prof3alphabeta.png}
\end{figure} \end{figure}
Comme pour la profondeur 1, le joueur 1 a tôt, au tour 5 environ, un avantage qui augmente également au fur et à mesure de la partie et gagne cette dernière.\\ Comme pour la profondeur 1, le joueur 1 a tôt, au tour 5 environ, un avantage qui augmente également au fur et à mesure de la partie. Cet avantage atteint un pic au tour 25 avec 60\% par rapport au second joueur.\\
La situation est similaire à AlphaBeta de profondeur 1. Cependant c'est le second joueur qui l'emporte, malgré son nombre de possibilités de jeu moins important.
Comme précédemment la courbe est plutôt linéaire.\\
La profondeur plus importante de l'algorithme n'augmente pas le nombre de tour de la partie.\\
Jouer en premier n'est pas obligatoirement avantageux.
\newpage \newpage
\subsubsection{Profondeur 4} \subsubsection{Profondeur 4}
@ -105,15 +97,17 @@ La situation est similaire à AlphaBeta de profondeur 1.
\includegraphics[width=\textwidth]{prof4alphabeta.png} \includegraphics[width=\textwidth]{prof4alphabeta.png}
\end{figure} \end{figure}
Similaire au graphique de profondeur 2, le second joueur possède un avantage à partir du tour 5 environ. Mais au tour 20 cet avantage augmente drastiquement pour atteindre 100\% de plus, en fin de partie, par rapport au joueur 1. La complexité du premier joueur est particulièrement basse, presque 70\% moins importante quavec la profondeur de 1.\\ Le premier joueur possède un petit avantage à partir du tour 10 environ. Mais au tour 18 cet avantage se réduit, pour réaugmenter au tour 23 jusqu'à la fin de partie. Il atteint au maximum 28\% par rapport au joueur 2.\\
Pour la première fois, cest le second joueur qui gagne la partie.\\ C'est le premier joueur qui remporte la partie.\\
Lavantage très important du joueur 2 lui a permis de lemporter, malgré son désavantage de joueur en second.\\
Comme précédemment la courbe est plutôt linéaire. Le nombre de tour est similaire à l'algorithme de profondeur inférieur.\\
Sans avantage, le joueur 2 ne semble pas pouvoir renverser la tendance et doit s'incliner.
\begin{figure}[!h] \begin{figure}[!h]
\includegraphics[width=\textwidth]{prof4alphabeta-console.png} \includegraphics[width=\textwidth]{prof4alphabeta-console.png}
\end{figure} \end{figure}
Le temps de résolution de cet algorithme est de 1 minute et 12 secondes pour un total de 2 226 nœuds visités (pour les deux joueurs). Le temps de résolution de cet algorithme est de 1 minute et 12 secondes pour un total de 1 661 nœuds visités (pour les deux joueurs).
\subsubsection{Profondeur 5} \subsubsection{Profondeur 5}
@ -121,22 +115,28 @@ Le temps de résolution de cet algorithme est de 1 minute et 12 secondes pour un
\includegraphics[width=\textwidth]{prof5alphabeta.png} \includegraphics[width=\textwidth]{prof5alphabeta.png}
\end{figure} \end{figure}
Au tour 5 environ, le premier joueur obtient un léger avantage qui se résorbent au tour 30.\\ Au tour 5 environ, le premier joueur obtient un léger avantage qui se résorbent au tour 22.\\
Pour le reste de la partie, il ny a pas de réelle avantage dun joueur.\\ Ensuite c'est le second joueur qui gagne un petit avantage qui se maintient jusqu'à la fin de partie .\\
Conformément aux observations précédentes, sans avantage du joueur 2, cest le premier joueur qui lemporte. Malgré l'avantage du joueur 2 à le fin, c'est le joueur 1 qui l'emporte.
Identique au précédent graphique, la courbe est plutôt linéaire et le nombre de tour n'augmente pas.\\
L'avantage du second joueur sur la fin de la partie ne semble pas suffisant pour l'emporter.
\begin{figure}[!h] \begin{figure}[!h]
\includegraphics[width=\textwidth]{prof5alphabeta-console.png} \includegraphics[width=\textwidth]{prof5alphabeta-console.png}
\end{figure} \end{figure}
Pour 3 094 nœuds visités, lalgorithme dure 6 minutes et 54 secondes. Pour 1 702 nœuds visités, lalgorithme dure 6 minutes et 54 secondes.
\subsubsection{Conclusion dAlphabeta} \subsubsection{Conclusion dAlphabeta}
Jouer en premier donne un avantage. Il faut au second joueur un avantage conséquent (situé entre 30\% et 100\% par rapport au premier) pour lui permettre de lemporter.\\ Jouer en premier donne un avantage, le premier joueur gagne plus souvent. Mais le second joueur surpasse des fois le premier joueur, alors qu'il n'a pas de réelle avantage. En effet, alors qu'il avait 60\% de possibilité en moins par rapport au premier joueur, le second l'a emporté avec l'algorithme Alphabeta de profondeur 3.
De plus, cest sur les profondeurs paires que le second joueur semble posséder un avantage.\\ De plus, le second joueur possède un avantage de 79\% au maximum par rapport au premier joueur avec l'algorithme Alphabeta de profondeur 2. Et malgré cet avantage, c'est le joueur 1 qui remporte la partie.
Laugmentation de la profondeur de lalgorithme AlphaBeta naugmente pas forcément la complexité de ce dernier. Cependant laugmentation de la complexité en fonction du nombre de tours est relativement linéaire.\\ Il semblerait que le nombre de possibilité n'influe pas sur la victoire avec cet algorithme, malgré ce qu'on pourrait logiquement penser.\\
Le temps de résolution des algorithmes pour des petites profondeurs (1, 2, 3) est de quelques secondes, mais augmente drastiquement avec la profondeur, AlphaBeta(5) sexécute pendant plusieurs minutes.
Laugmentation de la profondeur de lalgorithme AlphaBeta naugmente pas forcément la complexité de ce dernier. Cependant laugmentation de la complexité en fonction du nombre de tour est relativement linéaire.\\
Le temps de résolution des algorithme pour des petites profondeurs (1, 2, 3) est de quelques secondes mais augmente drastiquement avec la profondeur, AlphaBeta de profondeur 5 sexécute durant plusieurs minutes.
\subsection{Negamax} \subsection{Negamax}
@ -146,7 +146,7 @@ Le temps de résolution des algorithmes pour des petites profondeurs (1, 2, 3) e
\includegraphics[width=\textwidth]{prof1negamax.png} \includegraphics[width=\textwidth]{prof1negamax.png}
\end{figure} \end{figure}
Aucun des joueurs na davantage particulier.\\ Aucun des joueurs na davantage particulier.\\
La complexité est environ 20 fois plus importante quAlphaBeta.\\ La complexité est environ 20 fois plus importante quAlphaBeta.\\
Le joueur 1 est le gagnant. Avec cet algorithme aussi il semblerait que le premier joueur possède un avantage.\\ Le joueur 1 est le gagnant. Avec cet algorithme aussi il semblerait que le premier joueur possède un avantage.\\
Laugmentation de la complexité est moins importante au début et à la fin de partie mais est assez linéaire. Laugmentation de la complexité est moins importante au début et à la fin de partie mais est assez linéaire.
@ -159,8 +159,10 @@ Laugmentation de la complexité est moins importante au début et à la fin d
La complexité est 40 fois plus importante quavec la profondeur précédente.\\ La complexité est 40 fois plus importante quavec la profondeur précédente.\\
La forme de la courbe est similaire au graphique précédent.\\ La forme de la courbe est similaire au graphique précédent.\\
Aucun joueur na davantage majeur au cours de la partie. Le second joueur a un petit avantage qui commence au tour 15 et qui finit au tour 33 où le premier prend lavantage, qui reste faible, jusquà la fin de la partie. \\ Aucun joueur na davantage majeur au cours de la partie. Le second joueur a un avantage qui commence au tour 19 jusqu'à ka fin de la partie. Cet avantage atteint au maximum 37\% par rapport au joueur 1. \\
Cependant, cest le second joueur qui lemporte, alors quil navait pas un grand avantage. Cela différencie cet algorithme de AlphaBeta. Cependant cest le premier joueur qui lemporte, alors quil navait pas un grand avantage.
La complexité est bien plus importante qu'avec le précédent algorithme mais le nombre de tour est plu petit.
\newpage \newpage
\subsubsection{Profondeur 3} \subsubsection{Profondeur 3}
@ -169,9 +171,11 @@ Cependant, cest le second joueur qui lemporte, alors quil navait pas
\includegraphics[width=\textwidth]{prof3negamax.png} \includegraphics[width=\textwidth]{prof3negamax.png}
\end{figure} \end{figure}
La complexité de cet algorithme est 15 fois supérieur au précédent.\\ La complexité de cet algorithme est 55 fois supérieur au précédent.\\
Le joueur 2 commence à avoir un avantage au tour 23, avantage qui augmente un peu jusquà la fin de la partie. Cependant, cet avantage nest pas suffisant et cest le premier joueur qui gagne.\\ Le joueur 1 commence à avoir un avantage au tour 10, avantage qui augmente jusquà la fin de la partie. Cependant cet avantage nest pas suffisant et cest le second joueur qui gagne.\\
La courbe est similaire à celles des autres profondeurs.
Les courbes évoluent de façon similaire.
La complexité est bien plus grande qu'avec le précédent graphique mais le nombre de tour est le même.
\newpage \newpage
\subsubsection{Profondeur 4} \subsubsection{Profondeur 4}
@ -180,8 +184,8 @@ La courbe est similaire à celles des autres profondeurs.
\includegraphics[width=\textwidth]{prof4negamax.png} \includegraphics[width=\textwidth]{prof4negamax.png}
\end{figure} \end{figure}
La complexité est environ 11 fois supérieur à Negamax de profondeur 3. Le premier joueur possède un avantage au tour 10 qui augmente jusquau tour 22 et se réduit ensuite jusquà la fin de la partie.\\ La complexité est environ 10 fois supérieur à Negamax de profondeur 3. Le premier joueur possède un avantage au tour 10 qui augmente jusquau tour 22 et se réduit ensuite jusquà la fin de la partie.\\
Malgré cet avantage, cest le second joueur qui remporte la partie. Malgré cet avantage cest le second joueur qui remporte la partie.
\begin{figure}[!h] \begin{figure}[!h]
\includegraphics[width=\textwidth]{prof4negamax-console.png} \includegraphics[width=\textwidth]{prof4negamax-console.png}
@ -192,17 +196,42 @@ Pour le parcours des 536 329 836 nœuds, lalgorithme met 69 minutes et 43 sec
\subsubsection{Profondeur 5} \subsubsection{Profondeur 5}
Nous avons estimé la complexité de Negamax de profondeur 5 à au moins 8.2 milliards de nœuds.\\ Nous avons estimé la complexité de Negamax de profondeur 5 à au moins 8.2 milliards de nœuds.\\
Nous avons essayé de le lancer, mais après 28 heures dexécution sur le Raspberry Pi celui-ci nétait pas terminé, de plus la complexité stockée comme attribut de la classe Player est stocké sur un entier signé 32 bits dont la limite positive est $2^{31} - 1$ soit inférieur à 8 milliards. Nous avons essayer de le lancer mais après 28 heures dexécution sur le Raspberry Pi celui-ci nétais pas terminé, de plus la complexité stocké comme attribut de la classe Player est stocké sur un entier signé 32 bits dont la limite positive est $2^{31} - 1$ soit inférieur à 8 milliards.
\subsubsection{Conclusion de Negamax} \subsubsection{Conclusion de Negamax}
Laugmentation de la complexité en fonction de la profondeur de lalgorithme est exponentielle.\\ Laugmentation de la complexité en fonction de la profondeur de lalgorithme est exponentielle.\\
La victoire dun joueur na pas lair influé par son avantage ou par son ordre de jeu.\\ La victoire dun joueur na pas lair influé par son avantage ou par son ordre de jeu.\\
Cet algorithme est très long et dû à sa complexité exponentielle, son temps dexécution lest également. Du à sa complexité exponentielle, le temps dexécution de cet algorithme lest également.
Cependant le nombre de tour de jeu n'a pas l'air influé par la complexité de Negamax.
\section{Difficultés rencontrées} \subsection{Negamax vs AlphaBeta}
Nous avons rencontré quelques difficultés durant la réalisation du jeu, notamment dues à des incompréhensions des règles du jeu :\\ \subsubsection{Profondeur 2, AlphaBeta premier joueur, Negamax second}
\begin{figure}[!h]
\includegraphics[width=\textwidth]{prof2alphaVSnegamax.png}
\end{figure}
Dès le premier tour, le joueur 2 avec l'algorithme Negamax, possède un très grand avantage qui augmente fortement par rapport au premier joueur.\\
Avec cette avantage il gagne la partie, malgré qu'il soit second à jouer.
\subsubsection{Profondeur 2, Negamax premier joueur, AlphaBeta second}
\begin{figure}[!h]
\includegraphics[width=\textwidth]{prof2negamaxVSalpha.png}
\end{figure}
Identiquement au graphique précédent, le premier joueur utilisant l'algorithme Negamax prend un avantage dès le premier tour. Son avantage augmente rapidement et se poursuit jusqu'à la fin de la partie pour enfin la remporter.
\subsubsection{Conclusion de AlphaBeta vs Negamax}
L'algorithme Negamax parcours beaucoup plus de noeuds, il prend rapidement un très gros avantage.
Cet algorithme est plus efficace de AlphaBeta, mais il est plus long à exécuter.
\section{Difficultés rencontrés}
Nous avons rencontrés quelques difficultés durant la réalisation du jeu, notamment du à des incompréhension des règles du jeu:\\
\begin{itemize} \begin{itemize}
\item Lors du clonage toutes les cases même inoccupées étaient modifiées. \item Lors du clonage toutes les cases même inoccupées étaient modifiées.

View File

@ -1,25 +1,28 @@
\babel@toc {french}{} \babel@toc {french}{}
\contentsline {section}{\numberline {1}Introduction}{2}{section.1}% \contentsline {section}{\numberline {1}Introduction}{2}{section.1}%
\contentsline {section}{\numberline {2}Organisation du code}{2}{section.2}% \contentsline {section}{\numberline {2}L'algorithme de recherche}{2}{section.2}%
\contentsline {section}{\numberline {3}L'algorithme de recherche}{3}{section.3}% \contentsline {subsection}{\numberline {2.1}Algorithme de base}{2}{subsection.2.1}%
\contentsline {subsection}{\numberline {3.1}Algorithme de base}{3}{subsection.3.1}% \contentsline {subsection}{\numberline {2.2}Algorithme d'élagage}{3}{subsection.2.2}%
\contentsline {subsection}{\numberline {3.2}Algorithme d'élagage}{4}{subsection.3.2}% \contentsline {section}{\numberline {3}Mesures}{4}{section.3}%
\contentsline {section}{\numberline {4}Mesures}{5}{section.4}% \contentsline {subsection}{\numberline {3.1}Présentation}{4}{subsection.3.1}%
\contentsline {subsection}{\numberline {4.1}Présentation}{5}{subsection.4.1}% \contentsline {subsection}{\numberline {3.2}AlphaBeta}{5}{subsection.3.2}%
\contentsline {subsection}{\numberline {4.2}AlphaBeta}{6}{subsection.4.2}% \contentsline {subsubsection}{\numberline {3.2.1}Profondeur 1}{5}{subsubsection.3.2.1}%
\contentsline {subsubsection}{\numberline {4.2.1}Profondeur 1}{6}{subsubsection.4.2.1}% \contentsline {subsubsection}{\numberline {3.2.2}Profondeur 2}{6}{subsubsection.3.2.2}%
\contentsline {subsubsection}{\numberline {4.2.2}Profondeur 2}{7}{subsubsection.4.2.2}% \contentsline {subsubsection}{\numberline {3.2.3}Profondeur 3}{7}{subsubsection.3.2.3}%
\contentsline {subsubsection}{\numberline {4.2.3}Profondeur 3}{8}{subsubsection.4.2.3}% \contentsline {subsubsection}{\numberline {3.2.4}Profondeur 4}{8}{subsubsection.3.2.4}%
\contentsline {subsubsection}{\numberline {4.2.4}Profondeur 4}{9}{subsubsection.4.2.4}% \contentsline {subsubsection}{\numberline {3.2.5}Profondeur 5}{9}{subsubsection.3.2.5}%
\contentsline {subsubsection}{\numberline {4.2.5}Profondeur 5}{10}{subsubsection.4.2.5}% \contentsline {subsubsection}{\numberline {3.2.6}Conclusion dAlphabeta}{10}{subsubsection.3.2.6}%
\contentsline {subsubsection}{\numberline {4.2.6}Conclusion dAlphabeta}{11}{subsubsection.4.2.6}% \contentsline {subsection}{\numberline {3.3}Negamax}{10}{subsection.3.3}%
\contentsline {subsection}{\numberline {4.3}Negamax}{11}{subsection.4.3}% \contentsline {subsubsection}{\numberline {3.3.1}Profondeur 1}{10}{subsubsection.3.3.1}%
\contentsline {subsubsection}{\numberline {4.3.1}Profondeur 1}{11}{subsubsection.4.3.1}% \contentsline {subsubsection}{\numberline {3.3.2}Profondeur 2}{11}{subsubsection.3.3.2}%
\contentsline {subsubsection}{\numberline {4.3.2}Profondeur 2}{12}{subsubsection.4.3.2}% \contentsline {subsubsection}{\numberline {3.3.3}Profondeur 3}{13}{subsubsection.3.3.3}%
\contentsline {subsubsection}{\numberline {4.3.3}Profondeur 3}{13}{subsubsection.4.3.3}% \contentsline {subsubsection}{\numberline {3.3.4}Profondeur 4}{14}{subsubsection.3.3.4}%
\contentsline {subsubsection}{\numberline {4.3.4}Profondeur 4}{14}{subsubsection.4.3.4}% \contentsline {subsubsection}{\numberline {3.3.5}Profondeur 5}{15}{subsubsection.3.3.5}%
\contentsline {subsubsection}{\numberline {4.3.5}Profondeur 5}{15}{subsubsection.4.3.5}% \contentsline {subsubsection}{\numberline {3.3.6}Conclusion de Negamax}{15}{subsubsection.3.3.6}%
\contentsline {subsubsection}{\numberline {4.3.6}Conclusion de Negamax}{15}{subsubsection.4.3.6}% \contentsline {subsection}{\numberline {3.4}Negamax vs AlphaBeta}{15}{subsection.3.4}%
\contentsline {section}{\numberline {5}Difficultés rencontrés}{15}{section.5}% \contentsline {subsubsection}{\numberline {3.4.1}Profondeur 2, AlphaBeta premier joueur, Negamax second}{15}{subsubsection.3.4.1}%
\contentsline {section}{\numberline {6}Expérimentations}{15}{section.6}% \contentsline {subsubsection}{\numberline {3.4.2}Profondeur 2, Negamax premier joueur, AlphaBeta second}{15}{subsubsection.3.4.2}%
\contentsline {section}{\numberline {7}Conclusion}{16}{section.7}% \contentsline {subsubsection}{\numberline {3.4.3}Conclusion de AlphaBeta vs Negamax}{15}{subsubsection.3.4.3}%
\contentsline {section}{\numberline {4}Difficultés rencontrés}{17}{section.4}%
\contentsline {section}{\numberline {5}Expérimentations}{17}{section.5}%
\contentsline {section}{\numberline {6}Conclusion}{17}{section.6}%

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

@ -22,8 +22,8 @@ public class MainStats {
System.out.println("joueur 1: " + p1); System.out.println("joueur 1: " + p1);
System.out.println("joueur 2: " + p2); System.out.println("joueur 2: " + p2);
int tour = 1; // Pour le rapport int tour = 1; // Pour le rapport
PrintWriter writer = new PrintWriter("statsj1.txt", StandardCharsets.UTF_8); PrintWriter writer = new PrintWriter("statsj1.txt");
PrintWriter writer2 = new PrintWriter("statsj2.txt", StandardCharsets.UTF_8); PrintWriter writer2 = new PrintWriter("statsj2.txt");
while(!game.isOver()) { while(!game.isOver()) {
Player player = game.getCurrentPlayer(); Player player = game.getCurrentPlayer();