aboutsummaryrefslogtreecommitdiff
path: root/doc/tex
diff options
context:
space:
mode:
authorInigoGutierrez <inigogf.95@gmail.com>2023-06-12 19:43:40 +0200
committerInigoGutierrez <inigogf.95@gmail.com>2023-06-12 19:43:40 +0200
commit65ac3a6b050dcb88688cdc2654b1ed6693e9a160 (patch)
tree19797a3d1a2f897628d0413482117c27c9cfe6b9 /doc/tex
parenta005228a986b17732ae7cccbedde450533cfe1f1 (diff)
downloadimago-65ac3a6b050dcb88688cdc2654b1ed6693e9a160.tar.gz
imago-65ac3a6b050dcb88688cdc2654b1ed6693e9a160.zip
Submitted version.
Diffstat (limited to 'doc/tex')
-rw-r--r--doc/tex/appendixes.tex48
-rw-r--r--doc/tex/imago.tex25
-rw-r--r--doc/tex/implementation.tex83
3 files changed, 124 insertions, 32 deletions
diff --git a/doc/tex/appendixes.tex b/doc/tex/appendixes.tex
index f9f189e..b4533d6 100644
--- a/doc/tex/appendixes.tex
+++ b/doc/tex/appendixes.tex
@@ -76,7 +76,7 @@ input or because of the \gls{ko} rule.
\subsubsection{The engine: the \texttt{imagocli.py} interface}
-\texttt{imagocli.py} is a text interface which follows the \acrshort{gtp}
+\texttt{imagocli.py} is a text interface which follows the \acrfull{gtp}
specification. It can be executed in a shell as:
{
@@ -87,8 +87,8 @@ specification. It can be executed in a shell as:
\par
}
-The \acrshort{ai} to be run can be passes as an argument to the \texttt{-e}
-option. The available arguments are:
+If desired, the \acrshort{ai} to be run can be passed as an argument to the
+\texttt{-e} option, but it is not necessary. The available arguments are:
\begin{itemize}
@@ -111,11 +111,11 @@ be executed as:
\par
}
-If no arguments are provided, the default configuration is to use the Monte
-Carlo Tree Search algorithm.
+If no arguments are provided the default configuration is to use the Monte Carlo
+Tree Search algorithm.
When executed interactively and before any input is provided it just waits for
-input, with no prompt whatsoever. This is in compliance with the \acrshort{gtp}
+input with no prompt whatsoever. This is in compliance with the \acrshort{gtp}
specification.
These are the commands that the program knows and a short description of what
@@ -125,8 +125,8 @@ each does:
\item \texttt{list\_commands}: Shows a list of the commands the engine
knows.
- \item \texttt{known\_command}: Receives an argument and tells wether it is a
- known command or not.
+ \item \texttt{known\_command}: Receives an argument and tells whether it is
+ a known command or not.
\item \texttt{name}: Shows the name of the program.
\item \texttt{version}: Shows the version of the program.
\item \texttt{protocol\_version}: Shows the implemented \acrshort{gtp}
@@ -320,13 +320,23 @@ The costs are calculated based on a programmer salary of 20€/hour.
\midrule
Game preliminary research & 15 & 300 \\
\midrule
- Game implementation & 55 & 1100 \\
+ Game implementation & 95 & 1900 \\
\midrule
- Game unit testing & 50 & 1000 \\
+ Game unit testing & 90 & 1800 \\
\midrule
- Game system testing & 5 & 100 \\
+ Game system testing & 15 & 300 \\
\midrule
- \textbf{Total} & \textbf{125} & \textbf{2500} \\
+ Engine preliminary research & 15 & 300 \\
+ \midrule
+ Engine implementation & 75 & 1500 \\
+ \midrule
+ Algorithms implementations & 135 & 2700 \\
+ \midrule
+ Engine testing & 75 & 1500 \\
+ \midrule
+ Results analysis & 30 & 600 \\
+ \midrule
+ \textbf{Total} & \textbf{545} & \textbf{10900} \\
\bottomrule
\end{tabular}
}
@@ -354,11 +364,11 @@ The costs are calculated based on a programmer salary of 20€/hour.
\toprule
\textbf{Category} & \textbf{Cost (€)} \\
\midrule
- Work & 2500 \\
+ Work & 10900 \\
\midrule
Materials & 600 \\
\midrule
- \textbf{Total} & \textbf{3100} \\
+ \textbf{Total} & \textbf{11500} \\
\bottomrule
\end{tabular}
}
@@ -372,17 +382,17 @@ The costs are calculated based on a programmer salary of 20€/hour.
\toprule
\textbf{Task} & \textbf{Cost (€)} \\
\midrule
- Game preliminary research & 300 \\
+ Game system development & 2200 \\
\midrule
- Game implementation & 1100 \\
+ Engine development & 4500 \\
\midrule
- Game unit testing & 1000 \\
+ Testing & 3600 \\
\midrule
- Game system testing & 100 \\
+ Result analysis & 600 \\
\midrule
Materials & 600 \\
\midrule
- \textbf{Total} & \textbf{3100} \\
+ \textbf{Total} & \textbf{11500} \\
\bottomrule
\end{tabular}
}
diff --git a/doc/tex/imago.tex b/doc/tex/imago.tex
index 4287330..ca72c7a 100644
--- a/doc/tex/imago.tex
+++ b/doc/tex/imago.tex
@@ -51,12 +51,13 @@
\includegraphics[width=0.3\textwidth]{img/logoEII.png}
\end{center}~\\[10pt]
\program\\
- \large An AI player of the game of Go
+ \large An AI player of the game of Go\\
+ \large (Juego Go basado en inteligencia artificial)\\
}
\author{Íñigo Gutiérrez Fernández}
-\date{}
+\date{Oviedo, June 2023}
\maketitle
@@ -71,12 +72,20 @@
\clearpage
\begin{abstract}
- The game of Go presents a complex problem for machine learning by virtue of
- containing a very wide and deep decision tree. This project has tried to
- tackle the problem by using different decision algorithms and also provides
- a full implementation of the game. These tools could be used by players and
- developers as a foundation for other machine learning projects or to simply
- keep studying the game.
+ With a history of more than 3000 years, the game of Go presents a complex
+ problem for machine learning by virtue of containing a very wide and deep
+ decision tree. Finally, in 2016, computer scientists from DeepMind were able
+ to create an artificial intelligence capable of defeating profesional
+ players of the game with a combination of old and new strategies. This
+ project has tried to follow their steps and tackle the problem by using
+ different decision algorithms, such as Monte Carlo Tree Search and neural
+ networks, and also provides a full implementation of the game, playable on
+ its own or available as a library for the engine developed for this project
+ and potentially others to come. The resulting strength of the developed
+ algorithms is no match to that of a profesional player, but it shows the
+ possibilities achievable just with the limited resources employed on this
+ project. These tools could be used by players and developers as a foundation
+ for other machine learning projects or to simply keep studying the game.
\end{abstract}
\clearpage
diff --git a/doc/tex/implementation.tex b/doc/tex/implementation.tex
index 4970c14..d3cd0c3 100644
--- a/doc/tex/implementation.tex
+++ b/doc/tex/implementation.tex
@@ -98,6 +98,9 @@ A version control tool widely used in software development environments
allows to store and manage snapshots of a project, navigate through them and
diverge into different development branches, among other useful features.
+The source code of this document and of the rest of the project is publicly
+available at \url{https://git.taamas.xyz/Taamas/imago}.
+
\subsubsection{Documentation Tools}
\paragraph{\LaTeX}
@@ -260,11 +263,13 @@ The script used to run the tests is shown on \lref{lst:test} and its output on
\subsubsection{Usability Testing}
-A human user was asked to interact with the interfaces of \program{} and
-presented with a questionary. The profile of this user is of someone who has
-played some Go matches and knows the fundamentals of the game but is a beginner,
-and who has little experience with computers outside of their usage as office
-tools and internet browsers. Here are their answers.
+Two human users were asked to interact with the interfaces of \program{} and
+presented with a questionary.
+
+The profile of the first user is of someone who has played some Go matches and
+knows the fundamentals of the game but is a beginner, and who has little
+experience with computers outside of their usage as office tools and internet
+browsers. Here are their answers.
\vspace{\interclassSpace}
@@ -330,3 +335,71 @@ tools and internet browsers. Here are their answers.
Yes.\\
\bottomrule
\end{tabular}
+
+The profile of the second user is of someone who has experience with computers
+and works as a software developer, but who has just the bare minimum knowledge
+of the game of Go. Here are their answers.
+
+\vspace{\interclassSpace}
+
+\begin{tabular}{p{0.4\linewidth}p{0.6\linewidth}}
+ \toprule
+ \multicolumn{2}{c}{\textbf{Playing against a human}} \\
+ \midrule
+ \textbf{Question} & \textbf{Answer} \\
+ \midrule
+ Were you able to start the interface? &
+ Yes, I was able to. \\
+ \midrule
+ How hard was the interface of the game to understand? &
+ I think six out of ten. Some people won't understand what a command is and
+ without a visual interface they could feel confused about it.\\
+ \bottomrule
+\end{tabular}
+
+\vspace{\interclassSpace}
+
+\begin{tabular}{p{0.4\linewidth}p{0.6\linewidth}}
+ \toprule
+ \multicolumn{2}{c}{\textbf{Playing against the engine}} \\
+ \midrule
+ \textbf{Question} & \textbf{Answer} \\
+ \midrule
+ Were you able to start the interface? &
+ Yes, I was. \\
+ \midrule
+ How hard was the interface of the game to understand? &
+ I think seven out of ten. I was expecting to follow some steps so I could
+ execute it at the same time I was reading the manual, but in the end the
+ most practical thing was read everything before execute commands.\\
+ \midrule
+ How strong did you find the engine? &
+ It followed good paths to win the game, I didn't feel random moves during
+ the game by its side.\\
+ \bottomrule
+\end{tabular}
+
+\vspace{\interclassSpace}
+
+\begin{tabular}{p{0.4\linewidth}p{0.6\linewidth}}
+ \toprule
+ \multicolumn{2}{c}{\textbf{Playing against the interface through a
+ third-party}} \\
+ \midrule
+ \textbf{Question} & \textbf{Answer} \\
+ \midrule
+ Were you able to start the interface? &
+ Yes, I was. \\
+ \midrule
+ Did you find any problems when setting up the engine? &
+ No, I didn't.\\
+ \midrule
+ Do you think this tool has value for studying Go? &
+ I think it is a good tool for a group of players, so they can practise and
+ even train the AI if they want to.\\
+ \bottomrule
+\end{tabular}
+
+The results of these usability tests were useful mostly to update the manual and
+make it easier to understand and follow and also to address some problems with
+the interfaces that raised up during the testing.