Skip to content

Commit ab01df2

Browse files
committed
newpages quitados
1 parent b2e9b64 commit ab01df2

File tree

6 files changed

+41
-46
lines changed

6 files changed

+41
-46
lines changed

docs/AlphaDeepChess/Capitulos/AnalysisOfImprovements.tex

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ \subsection*{Graphical user interface}
8484
\parbox{\textwidth}{\noindent The GUI provides a user-friendly interface that communicates with the engine using the UCI protocol under the hood, greatly enhancing the debugging and testing experience. This tool can be used after compiling the engine by running \texttt{AlphaDeepChessGUI.py} with Python.}
8585

8686

87-
\begin{figure}[H]
87+
\begin{figure}
8888
\centering
8989
\includegraphics[width=1.0\textwidth]{Imagenes/gui.png}
9090
\caption{\textit{AlphaDeepChess}'s GUI}\label{fig:gui}
@@ -280,8 +280,11 @@ \subsection*{Late move reductions}
280280
\label{tab:bestEngineConfiguration}
281281
\end{table}
282282

283+
\vspace{3em}
284+
285+
\noindent We now compare the skill level of \textit{AlphaDeepChess} with the best configuration against \textit{Stockfish}.
283286

284-
\noindent Now, we compare the skill level of \textit{AlphaDeepChess} with the best configuration against \textit{Stockfish}.
287+
\vspace{2em}
285288

286289
\section{Evaluation versus \textit{Stockfish}}
287290

@@ -290,7 +293,7 @@ \section{Evaluation versus \textit{Stockfish}}
290293
\medskip
291294
\end{center}
292295

293-
\noindent \textit{AlphaDeepChess} lost all games against \textit{Stockfish}. This outcome was expected, as \textit{Stockfish} has an estimated Elo rating of around 3644~\cite{StockfishElo}, making it orders of magnitude stronger than the best human players. In contrast, as we will show in the next section, \textit{AlphaDeepChess} plays at a level comparable to a strong human player.
296+
\noindent \textit{AlphaDeepChess} was defeated in all games against \textit{Stockfish}. This result is not surprising, given that \textit{Stockfish} has an estimated Elo rating of approximately 3644~\cite{StockfishElo}, placing it far beyond even the strongest human players. In contrast, as we will demonstrate in the following section, \textit{AlphaDeepChess} performs at a level comparable to a strong player.
294297

295298
\newpage
296299

docs/AlphaDeepChess/Capitulos/DescripcionTrabajo.tex

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,15 @@ \chapter{Basic engine architecture}\label{cap:descripcionTrabajo}
1717

1818
\noindent We begin by examining the fundamental data structure used for chess position representation.
1919

20-
\newpage
21-
2220
\section{Chessboard representation: bitboards}
2321

2422
\noindent The chessboard is represented using a list of \textit{bitboards}. A bitboard is a 64-bit variable in which each bit corresponds to a square on the board. A bit is set to \texttt{1} if a piece occupies the corresponding square and \texttt{0} otherwise. The least significant bit (LSB) represents the \texttt{a1} square, while the most significant bit (MSB) corresponds to \texttt{h8}~\cite{Bitboards}.
25-
26-
\vspace{1em}
27-
28-
\noindent \parbox{\textwidth}{The complete implementation can be found in the \texttt{Board} class file in \texttt{include\textbackslash{}board\textbackslash{}board.hpp} and \texttt{src\textbackslash{}board\textbackslash{}board.cpp}.}
2923

3024
\vspace{1em}
3125

32-
\noindent A list of twelve bitboards is used, one for each type of chess piece.~\cref{fig:bitboardPositionExample} illustrates this concept with a chess position example.
26+
\noindent A list of twelve bitboards is used, one for each type of chess piece.~\cref{fig:bitboardPositionExample} illustrates this concept with a chess position example. The main advantages of bitboards is that we can operate on multiple squares simultaneously using bitwise operations (see~\cref{fig:bitboardMaskOperation}). For example, we can determine if there are any black pawns on the fifth rank by performing a bitwise AND operation with the corresponding mask.
3327

34-
\begin{figure}[H]
28+
\begin{figure}[t]
3529
\begin{minipage}[c]{0.35\textwidth}
3630
\newchessgame
3731
\chessboard[
@@ -60,31 +54,31 @@ \section{Chessboard representation: bitboards}
6054
\caption{List of bitboards data structure example.}\label{fig:bitboardPositionExample}
6155
\end{figure}
6256

63-
\noindent The main advantages of bitboards is that we can operate on multiple squares simultaneously using bitwise operations. For example, we can determine if there are any black pawns on the fifth rank by performing a bitwise AND operation with the corresponding mask.
64-
6557
\begin{figure}[H]
6658
\centering
67-
\begin{minipage}[c]{0.30\textwidth}
59+
\begin{minipage}[c]{0.3\textwidth}
6860
\centering
6961
\includegraphics[width=\textwidth]{Imagenes/bitboard_black_pawns.png}
7062
\caption*{Bitboard of black pawns}
7163
\end{minipage}
7264
\hfill
73-
\begin{minipage}[c]{0.30\textwidth}
65+
\begin{minipage}[c]{0.3\textwidth}
7466
\centering
7567
\includegraphics[width=\textwidth]{Imagenes/fifth_rank_mask.png}
7668
\caption*{Fifth rank mask}
7769
\end{minipage}
7870
\hfill
79-
\begin{minipage}[c]{0.30\textwidth}
71+
\begin{minipage}[c]{0.3\textwidth}
8072
\centering
8173
\includegraphics[width=\textwidth]{Imagenes/bitboardMaskResult.png}
8274
\caption*{Pawn's bitboard \& mask}
8375
\end{minipage}
84-
\caption*{Bitboard mask operation example.}\label{fig:bitboardMaskOperation}
76+
\caption{Bitboard mask operation example.}\label{fig:bitboardMaskOperation}
8577
\vspace{-\baselineskip}
8678
\end{figure}
8779

80+
\newpage
81+
8882
\subsection*{Game state}
8983

9084
\noindent In addition, we need to store the game state information. We designed a compact 64-bit structure to encapsulate all relevant data, enabling efficient copying of the complete game state through a single memory operation. The structure contains the following key fields:

docs/AlphaDeepChess/Capitulos/ImprovementTechniques.tex

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,12 @@ \chapter{Improvement techniques}\label{cap:ImprovementTechniques}
1010
\item Search with late move reductions.
1111
\end{itemize}
1212

13-
\newpage
14-
1513
\section{Transposition table}\label{sec:tt}
1614

1715
\noindent As discused in the previous chapter (see~\cref{sec:iterativeDeepening}), the basic implementation of the chess engine generates a large amount of redundant calculations due to the iterative deepening approach and also the concept of transpositions: situations in which the same board position is reached through different sequences of moves in the game tree.
18-
\noindent the Following image illustrates a position that can arise through multiple move orders. Where the white king could go to the g3 square from multiple paths.
16+
\noindent~\cref{fig:transposition_example} illustrates a position that can arise through multiple move orders. Where the white king could go to the g3 square from multiple paths.
1917

20-
\begin{figure}[H]
18+
\begin{figure}
2119
\centering
2220
\newchessgame
2321
\chessboard[
@@ -27,7 +25,7 @@ \section{Transposition table}\label{sec:tt}
2725
markmoves={c1-e3,e3-g3,c1-g1,g1-g3},
2826
arrow=to
2927
]
30-
\caption*{Lasker-Reichhelm Position, transposition example.}\label{fig:transposition_example}
28+
\caption{Lasker-Reichhelm Position, transposition example.}\label{fig:transposition_example}
3129
\end{figure}
3230

3331
\vspace{1em}
@@ -183,7 +181,7 @@ \subsection*{Magic bitboards}
183181
color=red, markfields={d6,f4,d2},
184182
color=green, markfields={c4,b4,a4,e4,d5,d3}
185183
]
186-
\caption*{Chess position with white rook legal moves in green and blockers in red.}\label{fig:magics_position}
184+
\caption{Chess position with white rook legal moves in green and blockers in red.}\label{fig:magics_position}
187185
\end{figure}
188186

189187
\subsection*{Magic number generation}
@@ -471,18 +469,15 @@ \section{Late move reductions}
471469
\vspace{1em}
472470

473471
\par
474-
In our implementation, a reduction of one ply is applied to non-capturing moves when the side to move is not in check, the remaining search depth is at least three plies, and the move index is beyond a threshold of the 10th move. The reduction condition is formally defined in Equation~\cref{eq:lmr}:
475-
476-
\vspace{1em}
472+
In our implementation, a reduction of one ply is applied to non-capturing moves when the side to move is not in check, the remaining search depth is at least three plies, and the move index is beyond a threshold of the 10th move. The reduction condition is formally defined in the following equation:
477473

478-
\begin{equation}
474+
\begin{equation*}
479475
\text{reduction} =
480476
\begin{cases}
481477
1, & \text{if } \text{isNotCheck} \wedge \text{depth} \geq 3 \wedge moveIndex \geq 10 \\
482478
0, & \text{otherwise}
483479
\end{cases}
484-
\label{eq:lmr}
485-
\end{equation}
480+
\end{equation*}
486481

487482
\vspace{1em}
488483

docs/AlphaDeepChess/TFGTeXiS.pdf

-932 Bytes
Binary file not shown.

docs/AlphaDeepChess/TeXiS/TeXiS_pream.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -791,6 +791,7 @@
791791
\crefname{chapter}{Chapter}{Chapters}
792792
\crefname{table}{Table}{Tables}
793793
\crefname{listing}{Listing}{Listings}
794+
\crefname{equation}{Equation}{Equations}
794795

795796
\usepackage{enumitem}
796797

docs/AlphaDeepChess/biblio.bib

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,17 @@ @misc{PVSplitting
77
lastaccess = {March, 2025}
88
}
99

10-
@misc{Shannon1950,
11-
author = {Claude E. Shannon},
12-
title = {Programming a Computer for Playing Chess},
13-
howpublished = {Computer History Museum Archive},
14-
year = {1950},
15-
url = {https://archive.computerhistory.org/projects/chess/related_materials/text/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon.062303002.pdf},
16-
lastaccess = {November, 2024}
10+
@article{Shannon1950,
11+
author = {Claude E. Shannon},
12+
title = {Programming a Computer for Playing Chess},
13+
journal = {Philosophical Magazine},
14+
volume = {41},
15+
year = {1950},
16+
pages = {256--275},
17+
doi = {10.1080/14786445008521796},
1718
}
1819

20+
%https://archive.computerhistory.org/projects/chess/related_materials/text/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon/2-0%20and%202-1.Programming_a_computer_for_playing_chess.shannon.062303002.pdf
1921
@misc{LawsOfChess,
2022
author = {Fédération Internationale des Échecs},
2123
title = {FIDE Laws of chess},
@@ -72,7 +74,7 @@ @misc{PextInstruction
7274

7375
@misc{UciProtocol,
7476
author = {Stefan-Meyer Kahlen},
75-
title = {Description of the universal chess interface (UCI)},
77+
title = {Description of the universal chess interface ({UCI})},
7678
howpublished = {Online},
7779
year = {2004},
7880
url = {https://www.wbec-ridderkerk.nl/html/UCIProtocol.html},
@@ -191,12 +193,12 @@ @misc{TranspositionTable
191193
}
192194

193195
@misc{Perft,
194-
author = {Chess Programming Wiki},
196+
author = {},
195197
title = {Perft},
196-
howpublished = {Online},
197198
year = {2025},
198-
url = {https://www.chessprogramming.org/Perft},
199-
lastaccess = {May, 2025}
199+
organization = {Chess Programming Wiki},
200+
url = {https://www.chessprogramming.org/Perft},
201+
urldate = {May, 2025}
200202
}
201203

202204
@misc{PerftResults,
@@ -211,7 +213,7 @@ @misc{PerftResults
211213
@misc{CuteChess,
212214
author = {CuteChess Developers},
213215
title = {CuteChess repository},
214-
howpublished = {Github},
216+
howpublished = {GitHub},
215217
year = {2024},
216218
url = {https://github.com/cutechess/cutechess},
217219
lastaccess = {May, 2025}
@@ -282,7 +284,7 @@ @misc{LateMoveReductions
282284
@misc{MagicsSource,
283285
author = {maksimKorzh},
284286
title = {Magics},
285-
howpublished = {Github},
287+
howpublished = {GitHub},
286288
year = {2020},
287289
url = {https://github.com/maksimKorzh/chess_programming/blob/master/src/magics/magics.txt},
288290
lastaccess = {May, 2025}
@@ -291,7 +293,7 @@ @misc{MagicsSource
291293
@misc{ChessProgrammingYT,
292294
author = {chessprogramming591},
293295
title = {Chess Programming},
294-
howpublished = {youtube},
296+
howpublished = {YouTube},
295297
year = {2020},
296298
url = {https://www.youtube.com/@chessprogramming591},
297299
lastaccess = {May, 2025}
@@ -300,7 +302,7 @@ @chessprogramming591
300302
@misc{SebastianLagueYT,
301303
author = {Sebastian Lague},
302304
title = {Coding Adventure: Chess},
303-
howpublished = {youtube},
305+
howpublished = {YouTube},
304306
year = {2021},
305307
url = {https://www.youtube.com/watch?v=U4ogK0MIzqk&list=PLFt_AvWsXl0cvHyu32ajwh2qU1i6hl77c},
306308
lastaccess = {May, 2025}
@@ -327,7 +329,7 @@ @misc{MagnusCarlsenElo
327329
@misc{NNUE,
328330
author = {Stockfish developers},
329331
title = {NNUE},
330-
howpublished = {github},
332+
howpublished = {GitHub},
331333
year = {2025},
332334
url = {https://github.com/official-stockfish/nnue-pytorch/blob/master/docs/nnue.md},
333335
lastaccess = {May, 2025}

0 commit comments

Comments
 (0)