diff --git a/Rapport/Rapport.aux b/Rapport/Rapport.aux index afec7d0..beb22a3 100644 --- a/Rapport/Rapport.aux +++ b/Rapport/Rapport.aux @@ -32,25 +32,25 @@ \@writefile{lol}{\contentsline {lstlisting}{AlphaBetaPlayer.txt}{3}{lstlisting.-2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {3}Mesures}{4}{section.3}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Présentation}{4}{subsection.3.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}AlphaBeta}{5}{subsection.3.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 {3.2.2}Profondeur 2}{6}{subsubsection.3.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 {3.2.4}Profondeur 4}{8}{subsubsection.3.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 {3.2.6}Conclusion d’Alphabeta}{10}{subsubsection.3.2.6}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Negamax}{11}{subsection.3.3}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Profondeur 1}{11}{subsubsection.3.3.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Profondeur 2}{12}{subsubsection.3.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 {3.3.4}Profondeur 4}{14}{subsubsection.3.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 {3.3.6}Conclusion de Negamax}{15}{subsubsection.3.3.6}\protected@file@percent } -\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Negamax vs AlphaBeta}{16}{subsection.3.4}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}Profondeur 2, AlphaBeta premier joueur, Negamax second}{16}{subsubsection.3.4.1}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}Profondeur 2, Negamax premier joueur, AlphaBeta second}{17}{subsubsection.3.4.2}\protected@file@percent } -\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Conclusion de AlphaBeta vs Negamax}{17}{subsubsection.3.4.3}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {4}Difficultés rencontrés}{18}{section.4}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {5}Expérimentations}{18}{section.5}\protected@file@percent } -\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{18}{section.6}\protected@file@percent } -\gdef \@abspage@last{19} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.2}AlphaBeta}{6}{subsection.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.1}Profondeur 1}{6}{subsubsection.3.2.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.2}Profondeur 2}{7}{subsubsection.3.2.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.3}Profondeur 3}{8}{subsubsection.3.2.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.4}Profondeur 4}{9}{subsubsection.3.2.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.5}Profondeur 5}{11}{subsubsection.3.2.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.2.6}Conclusion d’Alphabeta}{12}{subsubsection.3.2.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Negamax}{13}{subsection.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.1}Profondeur 1}{13}{subsubsection.3.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.2}Profondeur 2}{14}{subsubsection.3.3.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.3}Profondeur 3}{15}{subsubsection.3.3.3}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.4}Profondeur 4}{16}{subsubsection.3.3.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.5}Profondeur 5}{17}{subsubsection.3.3.5}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.3.6}Conclusion de Negamax}{18}{subsubsection.3.3.6}\protected@file@percent } +\@writefile{toc}{\contentsline {subsection}{\numberline {3.4}Negamax vs AlphaBeta}{19}{subsection.3.4}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.1}Profondeur 2, AlphaBeta premier joueur, Negamax second}{19}{subsubsection.3.4.1}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.2}Profondeur 2, Negamax premier joueur, AlphaBeta second}{20}{subsubsection.3.4.2}\protected@file@percent } +\@writefile{toc}{\contentsline {subsubsection}{\numberline {3.4.3}Conclusion de AlphaBeta vs Negamax}{20}{subsubsection.3.4.3}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}Difficultés rencontrés}{21}{section.4}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {5}Expérimentations}{21}{section.5}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {6}Conclusion}{21}{section.6}\protected@file@percent } +\gdef \@abspage@last{22} diff --git a/Rapport/Rapport.log b/Rapport/Rapport.log index 05570f5..921ed32 100644 --- a/Rapport/Rapport.log +++ b/Rapport/Rapport.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.14159265-2.6-1.40.21 (MiKTeX 21.1) (preloaded format=pdflatex 2021.2.8) 28 FEB 2021 19:14 +This is pdfTeX, Version 3.14159265-2.6-1.40.21 (MiKTeX 21.1) (preloaded format=pdflatex 2021.2.8) 28 FEB 2021 23:13 entering extended mode **./Rapport.tex (Rapport.tex @@ -451,137 +451,159 @@ Underfull \hbox (badness 10000) in paragraph at lines 48--53 [] [4] - + +File: alphabeta.png Graphic file (type png) + +Package pdftex.def Info: alphabeta.png used on input line 58. +(pdftex.def) Requested size: 390.0pt x 241.1508pt. + +File: negamax.png Graphic file (type png) + +Package pdftex.def Info: negamax.png used on input line 62. +(pdftex.def) Requested size: 390.0pt x 241.1508pt. + File: prof1alphabeta.png Graphic file (type png) -Package pdftex.def Info: prof1alphabeta.png used on input line 61. +Package pdftex.def Info: prof1alphabeta.png used on input line 70. (pdftex.def) Requested size: 390.0pt x 241.1508pt. - [5 <./prof1alphabeta.png>] - + [5 <./alphabeta.png> <./negamax.png>] +Underfull \hbox (badness 10000) in paragraph at lines 73--75 + + [] + +[6 <./prof1alphabeta.png>] + File: prof2alphabeta.png Graphic file (type png) -Package pdftex.def Info: prof2alphabeta.png used on input line 71. +Package pdftex.def Info: prof2alphabeta.png used on input line 82. (pdftex.def) Requested size: 390.0pt x 241.1508pt. -Underfull \hbox (badness 10000) in paragraph at lines 74--77 +Underfull \hbox (badness 10000) in paragraph at lines 85--88 [] -[6 <./prof2alphabeta.png>] - +[7 <./prof2alphabeta.png>] + File: prof3alphabeta.png Graphic file (type png) -Package pdftex.def Info: prof3alphabeta.png used on input line 84. -(pdftex.def) Requested size: 390.0pt x 241.1508pt. - [7 <./prof3alphabeta.png>] - -File: prof4alphabeta.png Graphic file (type png) - -Package pdftex.def Info: prof4alphabeta.png used on input line 97. +Package pdftex.def Info: prof3alphabeta.png used on input line 95. (pdftex.def) Requested size: 390.0pt x 241.1508pt. -Underfull \hbox (badness 10000) in paragraph at lines 100--102 +Underfull \hbox (badness 10000) in paragraph at lines 98--100 [] - -File: prof4alphabeta-console.png Graphic file (type png) - -Package pdftex.def Info: prof4alphabeta-console.png used on input line 107. -(pdftex.def) Requested size: 390.0pt x 107.36887pt. -[8 <./prof4alphabeta.png> <./prof4alphabeta-console.png>] - -File: prof5alphabeta.png Graphic file (type png) - -Package pdftex.def Info: prof5alphabeta.png used on input line 115. +[8 <./prof3alphabeta.png>] + +File: prof4alphabeta.png Graphic file (type png) + +Package pdftex.def Info: prof4alphabeta.png used on input line 108. (pdftex.def) Requested size: 390.0pt x 241.1508pt. -Overfull \hbox (2.61531pt too wide) in paragraph at lines 122--123 +Underfull \hbox (badness 10000) in paragraph at lines 111--113 + + [] + +[9 <./prof4alphabeta.png>] + +File: prof4alphabeta-console.png Graphic file (type png) + +Package pdftex.def Info: prof4alphabeta-console.png used on input line 118. +(pdftex.def) Requested size: 390.0pt x 182.4463pt. + [10 <./prof4alphabeta-console.png>] + +File: prof5alphabeta.png Graphic file (type png) + +Package pdftex.def Info: prof5alphabeta.png used on input line 127. +(pdftex.def) Requested size: 390.0pt x 241.1508pt. + +Underfull \hbox (badness 10000) in paragraph at lines 130--133 + + [] + + +Overfull \hbox (2.61531pt too wide) in paragraph at lines 134--136 []\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 - - [] - -[9 <./prof5alphabeta.png>] - +[11 <./prof5alphabeta.png>] + File: prof5alphabeta-console.png Graphic file (type png) -Package pdftex.def Info: prof5alphabeta-console.png used on input line 127. -(pdftex.def) Requested size: 390.0pt x 105.57646pt. +Package pdftex.def Info: prof5alphabeta-console.png used on input line 138. +(pdftex.def) Requested size: 390.0pt x 187.25554pt. -Underfull \hbox (badness 10000) in paragraph at lines 134--137 +Underfull \hbox (badness 10000) in paragraph at lines 145--149 [] -[10 <./prof5alphabeta-console.png>] - +[12 <./prof5alphabeta-console.png>] + File: prof1negamax.png Graphic file (type png) -Package pdftex.def Info: prof1negamax.png used on input line 147. -(pdftex.def) Requested size: 390.0pt x 241.15366pt. - [11 <./prof1negamax.png>] - +Package pdftex.def Info: prof1negamax.png used on input line 159. +(pdftex.def) Requested size: 390.0pt x 241.1508pt. + [13 <./prof1negamax.png>] + File: prof2negamax.png Graphic file (type png) -Package pdftex.def Info: prof2negamax.png used on input line 159. +Package pdftex.def Info: prof2negamax.png used on input line 171. (pdftex.def) Requested size: 390.0pt x 241.1508pt. - [12 <./prof2negamax.png>] - + [14 <./prof2negamax.png>] + File: prof3negamax.png Graphic file (type png) -Package pdftex.def Info: prof3negamax.png used on input line 173. +Package pdftex.def Info: prof3negamax.png used on input line 185. (pdftex.def) Requested size: 390.0pt x 241.1508pt. -Underfull \hbox (badness 10000) in paragraph at lines 176--178 +Underfull \hbox (badness 10000) in paragraph at lines 188--190 [] -[13 <./prof3negamax.png>] - +[15 <./prof3negamax.png>] + File: prof4negamax.png Graphic file (type png) -Package pdftex.def Info: prof4negamax.png used on input line 186. +Package pdftex.def Info: prof4negamax.png used on input line 198. (pdftex.def) Requested size: 390.0pt x 241.15366pt. - + [16 <./prof4negamax.png>] + File: prof4negamax-console.png Graphic file (type png) -Package pdftex.def Info: prof4negamax-console.png used on input line 193. -(pdftex.def) Requested size: 390.0pt x 121.72337pt. - [14 <./prof4negamax.png> <./prof4negamax-console.png>] [15] - +Package pdftex.def Info: prof4negamax-console.png used on input line 205. +(pdftex.def) Requested size: 390.0pt x 203.08464pt. + [17 <./prof4negamax-console.png>] [18] + File: prof2alphaVSnegamax.png Graphic file (type png) -Package pdftex.def Info: prof2alphaVSnegamax.png used on input line 216. +Package pdftex.def Info: prof2alphaVSnegamax.png used on input line 228. (pdftex.def) Requested size: 390.0pt x 241.1508pt. - [16 <./prof2alphaVSnegamax.png>] - + [19 <./prof2alphaVSnegamax.png>] + File: prof2negamaxVSalpha.png Graphic file (type png) -Package pdftex.def Info: prof2negamaxVSalpha.png used on input line 226. +Package pdftex.def Info: prof2negamaxVSalpha.png used on input line 238. (pdftex.def) Requested size: 390.0pt x 241.1508pt. - [17 <./prof2negamaxVSalpha.png>] -Underfull \hbox (badness 10000) in paragraph at lines 239--240 + [20 <./prof2negamaxVSalpha.png>] +Underfull \hbox (badness 10000) in paragraph at lines 251--252 [] -Underfull \hbox (badness 10000) in paragraph at lines 248--249 +Underfull \hbox (badness 10000) in paragraph at lines 260--261 [] -[18] (Rapport.aux) +[21] (Rapport.aux) Package rerunfilecheck Info: File `Rapport.out' has not changed. (rerunfilecheck) Checksum: EDFE9D99E5E23084C392C6E02A66C3BB;1908. ) Here is how much of TeX's memory you used: - 9972 strings out of 479618 - 152388 string characters out of 2865027 + 9987 strings out of 479618 + 152591 string characters out of 2865027 703366 words of memory out of 3000000 - 26882 multiletter control sequences out of 15000+200000 + 26892 multiletter control sequences out of 15000+200000 414266 words of font info for 49 fonts, out of 3000000 for 9000 1141 hyphenation exceptions out of 8191 71i,6n,74p,396b,1916s stack positions out of 5000i,500n,10000p,200000b,50000s @@ -599,9 +621,9 @@ l\MiKTeX\fonts/pk/ljfour/jknappen/ec/dpi600\ecrm2074.pk> -Output written on Rapport.pdf (19 pages, 705094 bytes). +Output written on Rapport.pdf (22 pages, 775955 bytes). PDF statistics: - 632 PDF objects out of 1000 (max. 8388607) - 106 named destinations out of 1000 (max. 500000) - 287 words of extra memory for PDF output out of 10000 (max. 10000000) + 650 PDF objects out of 1000 (max. 8388607) + 109 named destinations out of 1000 (max. 500000) + 297 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/Rapport/Rapport.pdf b/Rapport/Rapport.pdf index cf8cd72..0611125 100644 Binary files a/Rapport/Rapport.pdf and b/Rapport/Rapport.pdf differ diff --git a/Rapport/Rapport.synctex.gz b/Rapport/Rapport.synctex.gz index 4c55564..93ab15d 100644 Binary files a/Rapport/Rapport.synctex.gz and b/Rapport/Rapport.synctex.gz differ diff --git a/Rapport/Rapport.tex b/Rapport/Rapport.tex index 900eba5..2fd11d7 100644 --- a/Rapport/Rapport.tex +++ b/Rapport/Rapport.tex @@ -53,6 +53,15 @@ La profondeur de recherche des deux joueurs sera toujours la même.\\ 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 + +\begin{figure}[!h] + \includegraphics[width=\textwidth]{alphabeta.png} +\end{figure} + +\begin{figure}[!h] + \includegraphics[width=\textwidth]{negamax.png} +\end{figure} + \subsection{AlphaBeta} \subsubsection{Profondeur 1} @@ -61,9 +70,11 @@ Tout les tests incluant un temps ont été fait sur la même machine et en même \includegraphics[width=\textwidth]{prof1alphabeta.png} \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. A 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 (tour 20) cet avantage est 47\% plus important par rapport au second joueur.\\ +Cependant, c'est le second joueur qui gagne la partie.\\ + L’augmentation de la complexité est plutôt linéaire.\\ -Il semblerait que jouer en premier est un avantage. +Il semblerait que jouer en deuxième apporte un avantage. \newpage \subsubsection{Profondeur 2} @@ -71,11 +82,11 @@ Il semblerait que jouer en premier est un avantage. \includegraphics[width=\textwidth]{prof2alphabeta.png} \end{figure} -Malgré qu’il soit second à jouer, joueur 2 obtient un avantage au niveau du tour 5 environ. Cet avantage augmente jusqu’au 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 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.\\ +Malgré qu’il soit second à jouer, le joueur 2 obtient un avantage au niveau du tour 5 environ. Cet avantage augmente jusqu’au 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.\\ Mais malgré cet avantage, la victoire est pour le joueur 1.\\ -La courbe est linéaire, comme sur la graphique précédent.\\ +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’est pas suffisant pour le résorber. La profondeur ne semble pas forcément augmenter le nombre de possibilités. \newpage \subsubsection{Profondeur 3} @@ -85,10 +96,10 @@ La courbe est linéaire, comme sur la graphique précédent.\\ \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. Cet avantage atteint un pic au tour 25 avec 60\% par rapport au second joueur.\\ -Cependant c'est le second joueur qui l'emporte, malgré son nombre de possibilités de jeu moins important. +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.\\ +La profondeur plus importante de l'algorithme n'augmente pas le nombre de tours de la partie.\\ Jouer en premier n'est pas obligatoirement avantageux. \newpage \subsubsection{Profondeur 4} @@ -97,46 +108,47 @@ Jouer en premier n'est pas obligatoirement avantageux. \includegraphics[width=\textwidth]{prof4alphabeta.png} \end{figure} -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.\\ +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.\\ C'est le premier joueur qui remporte la partie.\\ -Comme précédemment, la courbe est plutôt linéaire. Le nombre de tour est similaire à l'algorithme de profondeur inférieur.\\ +Comme précédemment, la courbe est plutôt linéaire. Le nombre de tours est similaire à l'algorithme de profondeur inférieur.\\ Sans avantage, le joueur 2 ne semble pas pouvoir renverser la tendance et doit s'incliner. - +\newpage \begin{figure}[!h] \includegraphics[width=\textwidth]{prof4alphabeta-console.png} \end{figure} -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). +Le temps de résolution de cet algorithme est de 1 minute et 38 secondes pour un total de 1 661 nÅ“uds visités (pour les deux joueurs). +\newpage \subsubsection{Profondeur 5} \begin{figure}[!h] \includegraphics[width=\textwidth]{prof5alphabeta.png} \end{figure} -Au tour 5 environ, le premier joueur obtient un léger avantage qui se résorbent au tour 22.\\ -Ensuite c'est le second joueur qui gagne un petit avantage qui se maintient jusqu'à la fin de partie .\\ -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.\\ +Au tour 5 environ, le premier joueur obtient un léger avantage qui se résorbe au tour 22.\\ +Ensuite, c'est le second joueur qui gagne un petit avantage qui se maintient jusqu'à la fin de la partie .\\ +Malgré l'avantage du joueur 2 à la 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 tours n'augmente pas.\\ L'avantage du second joueur sur la fin de la partie ne semble pas suffisant pour l'emporter. \newpage \begin{figure}[!h] \includegraphics[width=\textwidth]{prof5alphabeta-console.png} \end{figure} -Pour 1 702 nÅ“uds visités, l’algorithme dure 6 minutes et 54 secondes. +Pour 1 702 nÅ“uds visités, l’algorithme dure 7 minutes et 47 secondes. \subsubsection{Conclusion d’Alphabeta} -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. +L'ordre n'est pas un avantage. +Le second joueur surpasse des fois le premier joueur, alors qu'il n'a pas de réel 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. Cas similaire avec Alphabeta de profondeur 1. 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. -Il semblerait que le nombre de possibilité n'influe pas sur la victoire avec cet algorithme, malgré ce qu'on pourrait logiquement penser.\\ +Il semblerait que le nombre de possibilités n'influe pas sur la victoire avec cet algorithme, malgré ce qu'on pourrait logiquement penser.\\ -L’augmentation de la profondeur de l’algorithme AlphaBeta n’augmente pas forcément la complexité de ce dernier. Cependant l’augmentation 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 s’exécute durant plusieurs minutes. +L’augmentation de la profondeur de l’algorithme AlphaBeta n’augmente pas forcément la complexité de ce dernier. Cependant, l’augmentation de la complexité en fonction du nombre de tour est relativement linéaire.\\ +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 de profondeur 5 s’exécute durant plusieurs minutes. \newpage \subsection{Negamax} @@ -148,9 +160,9 @@ Le temps de résolution des algorithme pour des petites profondeurs (1, 2, 3) es \end{figure} Aucun des joueurs n’a d’avantage particulier.\\ -La complexité est environ 20 fois plus importante qu’AlphaBeta.\\ -Le joueur 1 est le gagnant. Avec cet algorithme aussi il semblerait que le premier joueur possède un avantage.\\ -L’augmentation de la complexité est moins importante au début et à la fin de partie mais est assez linéaire. +La complexité est environ 30 fois plus importante qu’AlphaBeta.\\ +Le joueur 2 est le gagnant. Avec cet algorithme, aussi, il semblerait que l'ordre ne soit pas un avantage.\\ +L’augmentation de la complexité est moins importante au début et à la fin de partie, mais est assez linéaire. \newpage \subsubsection{Profondeur 2} @@ -159,12 +171,12 @@ L’augmentation de la complexité est moins importante au début et à la fin d \includegraphics[width=\textwidth]{prof2negamax.png} \end{figure} -La complexité est 40 fois plus importante qu’avec la profondeur précédente.\\ +La complexité est 20 fois plus importante qu’avec la profondeur précédente.\\ La forme de la courbe est similaire au graphique précédent.\\ Aucun joueur n’a d’avantage 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 c’est le premier joueur qui l’emporte, alors qu’il n’avait pas un grand avantage. +Cependant, c’est le premier joueur qui l’emporte, alors qu’il n’avait 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. +La complexité est bien plus importante qu'avec le précédent algorithme, mais le nombre de tours est plus petit. \newpage \subsubsection{Profondeur 3} @@ -173,11 +185,11 @@ La complexité est bien plus importante qu'avec le précédent algorithme mais l \includegraphics[width=\textwidth]{prof3negamax.png} \end{figure} -La complexité de cet algorithme est 55 fois supérieur au précédent.\\ -Le joueur 1 commence à avoir un avantage au tour 10, avantage qui augmente jusqu’à la fin de la partie. Cependant cet avantage n’est pas suffisant et c’est le second joueur qui gagne.\\ +La complexité de cet algorithme est 55 fois supérieure au précédent.\\ +Le joueur 1 commence à avoir un avantage au tour 10, avantage qui augmente jusqu’à la fin de la partie. Cependant, cet avantage n’est pas suffisant et c’est le second joueur qui gagne.\\ 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. +La complexité est bien plus grande qu'avec le précédent graphique, mais le nombre de tours est le même. \newpage \subsubsection{Profondeur 4} @@ -187,25 +199,25 @@ La complexité est bien plus grande qu'avec le précédent graphique mais le nom \end{figure} La complexité est environ 10 fois supérieur à Negamax de profondeur 3. Le premier joueur possède un avantage au tour 10 qui augmente jusqu’au tour 22 et se réduit ensuite jusqu’à la fin de la partie.\\ -Malgré cet avantage c’est le second joueur qui remporte la partie. - +Malgré cet avantage, c’est le second joueur qui remporte la partie. +\newpage \begin{figure}[!h] \includegraphics[width=\textwidth]{prof4negamax-console.png} \end{figure} -Pour le parcours des 536 329 836 nÅ“uds, l’algorithme met 69 minutes et 43 secondes. +Pour le parcours des 536 329 836 nÅ“uds, l’algorithme met 70 minutes et 57 secondes. \subsubsection{Profondeur 5} Nous avons estimé la complexité de Negamax de profondeur 5 à au moins 8.2 milliards de nÅ“uds.\\ -Nous avons essayer de le lancer mais après 28 heures d’exé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. - +Nous avons é de le lancer, mais après 28 heures d’exécution sur le Raspberry Pi celui-ci n’étais 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. +\newpage \subsubsection{Conclusion de Negamax} L’augmentation de la complexité en fonction de la profondeur de l’algorithme est exponentielle.\\ La victoire d’un joueur n’a pas l’air influé par son avantage ou par son ordre de jeu.\\ -Du à sa complexité exponentielle, le temps d’exécution de cet algorithme l’est également. -Cependant le nombre de tour de jeu n'a pas l'air influé par la complexité de Negamax. +Dû à sa complexité exponentielle, le temps d’exécution de cet algorithme l’est également. +Cependant, le nombre de tours de jeu n'a pas l'air influé par la complexité de Negamax. \newpage \subsection{Negamax vs AlphaBeta} @@ -217,7 +229,7 @@ Cependant le nombre de tour de jeu n'a pas l'air influé par la complexité de N \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. +Avec cet avantage, il gagne la partie, malgré qu'il soit second à jouer. \newpage \subsubsection{Profondeur 2, Negamax premier joueur, AlphaBeta second} @@ -230,13 +242,13 @@ Identiquement au graphique précédent, le premier joueur utilisant l'algorithme \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. +L'algorithme Negamax parcours beaucoup plus de noeud, il prend rapidement un très gros avantage. +Cet algorithme est plus efficace qu'AlphaBeta, mais il est plus long à exécuter. \newpage \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:\\ +Nous avons rencontré quelques difficultés durant la réalisation du jeu, notamment dû à des incompréhensions des règles du jeu:\\ \begin{itemize} \item Lors du clonage toutes les cases même inoccupées étaient modifiées. diff --git a/Rapport/Rapport.toc b/Rapport/Rapport.toc index 63f53a5..b6d1b69 100644 --- a/Rapport/Rapport.toc +++ b/Rapport/Rapport.toc @@ -5,24 +5,24 @@ \contentsline {subsection}{\numberline {2.2}Algorithme d'élagage}{3}{subsection.2.2}% \contentsline {section}{\numberline {3}Mesures}{4}{section.3}% \contentsline {subsection}{\numberline {3.1}Présentation}{4}{subsection.3.1}% -\contentsline {subsection}{\numberline {3.2}AlphaBeta}{5}{subsection.3.2}% -\contentsline {subsubsection}{\numberline {3.2.1}Profondeur 1}{5}{subsubsection.3.2.1}% -\contentsline {subsubsection}{\numberline {3.2.2}Profondeur 2}{6}{subsubsection.3.2.2}% -\contentsline {subsubsection}{\numberline {3.2.3}Profondeur 3}{7}{subsubsection.3.2.3}% -\contentsline {subsubsection}{\numberline {3.2.4}Profondeur 4}{8}{subsubsection.3.2.4}% -\contentsline {subsubsection}{\numberline {3.2.5}Profondeur 5}{9}{subsubsection.3.2.5}% -\contentsline {subsubsection}{\numberline {3.2.6}Conclusion d’Alphabeta}{10}{subsubsection.3.2.6}% -\contentsline {subsection}{\numberline {3.3}Negamax}{11}{subsection.3.3}% -\contentsline {subsubsection}{\numberline {3.3.1}Profondeur 1}{11}{subsubsection.3.3.1}% -\contentsline {subsubsection}{\numberline {3.3.2}Profondeur 2}{12}{subsubsection.3.3.2}% -\contentsline {subsubsection}{\numberline {3.3.3}Profondeur 3}{13}{subsubsection.3.3.3}% -\contentsline {subsubsection}{\numberline {3.3.4}Profondeur 4}{14}{subsubsection.3.3.4}% -\contentsline {subsubsection}{\numberline {3.3.5}Profondeur 5}{15}{subsubsection.3.3.5}% -\contentsline {subsubsection}{\numberline {3.3.6}Conclusion de Negamax}{15}{subsubsection.3.3.6}% -\contentsline {subsection}{\numberline {3.4}Negamax vs AlphaBeta}{16}{subsection.3.4}% -\contentsline {subsubsection}{\numberline {3.4.1}Profondeur 2, AlphaBeta premier joueur, Negamax second}{16}{subsubsection.3.4.1}% -\contentsline {subsubsection}{\numberline {3.4.2}Profondeur 2, Negamax premier joueur, AlphaBeta second}{17}{subsubsection.3.4.2}% -\contentsline {subsubsection}{\numberline {3.4.3}Conclusion de AlphaBeta vs Negamax}{17}{subsubsection.3.4.3}% -\contentsline {section}{\numberline {4}Difficultés rencontrés}{18}{section.4}% -\contentsline {section}{\numberline {5}Expérimentations}{18}{section.5}% -\contentsline {section}{\numberline {6}Conclusion}{18}{section.6}% +\contentsline {subsection}{\numberline {3.2}AlphaBeta}{6}{subsection.3.2}% +\contentsline {subsubsection}{\numberline {3.2.1}Profondeur 1}{6}{subsubsection.3.2.1}% +\contentsline {subsubsection}{\numberline {3.2.2}Profondeur 2}{7}{subsubsection.3.2.2}% +\contentsline {subsubsection}{\numberline {3.2.3}Profondeur 3}{8}{subsubsection.3.2.3}% +\contentsline {subsubsection}{\numberline {3.2.4}Profondeur 4}{9}{subsubsection.3.2.4}% +\contentsline {subsubsection}{\numberline {3.2.5}Profondeur 5}{11}{subsubsection.3.2.5}% +\contentsline {subsubsection}{\numberline {3.2.6}Conclusion d’Alphabeta}{12}{subsubsection.3.2.6}% +\contentsline {subsection}{\numberline {3.3}Negamax}{13}{subsection.3.3}% +\contentsline {subsubsection}{\numberline {3.3.1}Profondeur 1}{13}{subsubsection.3.3.1}% +\contentsline {subsubsection}{\numberline {3.3.2}Profondeur 2}{14}{subsubsection.3.3.2}% +\contentsline {subsubsection}{\numberline {3.3.3}Profondeur 3}{15}{subsubsection.3.3.3}% +\contentsline {subsubsection}{\numberline {3.3.4}Profondeur 4}{16}{subsubsection.3.3.4}% +\contentsline {subsubsection}{\numberline {3.3.5}Profondeur 5}{17}{subsubsection.3.3.5}% +\contentsline {subsubsection}{\numberline {3.3.6}Conclusion de Negamax}{18}{subsubsection.3.3.6}% +\contentsline {subsection}{\numberline {3.4}Negamax vs AlphaBeta}{19}{subsection.3.4}% +\contentsline {subsubsection}{\numberline {3.4.1}Profondeur 2, AlphaBeta premier joueur, Negamax second}{19}{subsubsection.3.4.1}% +\contentsline {subsubsection}{\numberline {3.4.2}Profondeur 2, Negamax premier joueur, AlphaBeta second}{20}{subsubsection.3.4.2}% +\contentsline {subsubsection}{\numberline {3.4.3}Conclusion de AlphaBeta vs Negamax}{20}{subsubsection.3.4.3}% +\contentsline {section}{\numberline {4}Difficultés rencontrés}{21}{section.4}% +\contentsline {section}{\numberline {5}Expérimentations}{21}{section.5}% +\contentsline {section}{\numberline {6}Conclusion}{21}{section.6}% diff --git a/Rapport/alphabeta.png b/Rapport/alphabeta.png new file mode 100644 index 0000000..cd61d83 Binary files /dev/null and b/Rapport/alphabeta.png differ diff --git a/Rapport/negamax.png b/Rapport/negamax.png new file mode 100644 index 0000000..35ede87 Binary files /dev/null and b/Rapport/negamax.png differ diff --git a/Rapport/prof1alphabeta.png b/Rapport/prof1alphabeta.png index a0b3073..f0621f9 100644 Binary files a/Rapport/prof1alphabeta.png and b/Rapport/prof1alphabeta.png differ diff --git a/Rapport/prof1negamax.png b/Rapport/prof1negamax.png index 3f6fc5f..326ba67 100644 Binary files a/Rapport/prof1negamax.png and b/Rapport/prof1negamax.png differ diff --git a/Rapport/prof4alphabeta-console.png b/Rapport/prof4alphabeta-console.png index 5768f78..1b664d7 100644 Binary files a/Rapport/prof4alphabeta-console.png and b/Rapport/prof4alphabeta-console.png differ diff --git a/Rapport/prof4negamax-console.png b/Rapport/prof4negamax-console.png index 4500b38..3dfa027 100644 Binary files a/Rapport/prof4negamax-console.png and b/Rapport/prof4negamax-console.png differ diff --git a/Rapport/prof5alphabeta-console.png b/Rapport/prof5alphabeta-console.png index 043f079..159901a 100644 Binary files a/Rapport/prof5alphabeta-console.png and b/Rapport/prof5alphabeta-console.png differ