aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorInigoGutierrez <inigogf.95@gmail.com>2022-06-29 14:33:37 +0200
committerInigoGutierrez <inigogf.95@gmail.com>2022-06-29 14:33:37 +0200
commitc25a5d482937fc861e9d1cfc1ff36e479fcb2fb4 (patch)
treea02d68a2f41cbf05dce1cb29e18d663dbb362e19 /doc
parent080ef02ab7abc46eae1e2a550d26fdcb6c87450f (diff)
downloadimago-c25a5d482937fc861e9d1cfc1ff36e479fcb2fb4.tar.gz
imago-c25a5d482937fc861e9d1cfc1ff36e479fcb2fb4.zip
Writing implementation section.
Diffstat (limited to 'doc')
-rw-r--r--doc/tex/biber.bib36
-rw-r--r--doc/tex/implementation.tex66
-rw-r--r--doc/tex/planification.tex10
-rw-r--r--doc/tex/tfg.tex2
4 files changed, 111 insertions, 3 deletions
diff --git a/doc/tex/biber.bib b/doc/tex/biber.bib
index 055ca8f..f22e058 100644
--- a/doc/tex/biber.bib
+++ b/doc/tex/biber.bib
@@ -46,6 +46,12 @@
url = {https://sabaki.yichuanshen.de}
}
+@online{keras,
+ title = {Keras: the Python deep learning API},
+ urldate = {2022},
+ url = {https://keras.io}
+}
+
@online{sl_go,
title = {Go},
organization = {Sensei's Library},
@@ -78,3 +84,33 @@
urldate = {2022},
url = {https://matplotlib.org/stable/gallery/images_contours_and_fields/image_annotated_heatmap.html}
}
+
+@online{python,
+ title = {Welcome to Python.org},
+ urldate = {2022},
+ url = {https://www.python.org}
+}
+
+@online{numpy,
+ title = {NumPy},
+ urldate = {2022},
+ url = {https://numpy.org}
+}
+
+@online{matplotlib,
+ title = {Matplotlib — Visualization with Python},
+ urldate = {2022},
+ url = {https://matplotlib.org}
+}
+
+@online{ply,
+ title = {PLY (Python Lex-Yacc)},
+ urldate = {2022},
+ url = {http://www.dabeaz.com/ply}
+}
+
+@online{neovim,
+ title = {Home - Neovim},
+ urldate = {2022},
+ url = {http://neovim.io}
+}
diff --git a/doc/tex/implementation.tex b/doc/tex/implementation.tex
index 297ba0e..40dfb93 100644
--- a/doc/tex/implementation.tex
+++ b/doc/tex/implementation.tex
@@ -1,5 +1,71 @@
\section{Implementation}
+\subsection{Development environment}
+
+\subsubsection{Language}
+
+The programming language of choice is Python\cite{python}. The rationale behind
+this decision has been stated on Section \ref{sec:programmingLanguage}. It also
+allows easy use of the Keras library for implementing neural networks.
+
+Various python libraries have been used to easy the development process or
+assist in the analysis of results. These are:
+
+\paragraph{Keras/Tensorflow\cite{keras}}
+
+Tensorflow is a platform for machine learning which provides a diverse range of
+tools, one of which is a python library for machine learning.
+
+Keras is a high-level API for Tensorflow allowing for the easy definition of
+neural networks. It permits easily testing and comparing different network
+layouts.
+
+\paragraph{NumPy\cite{numpy}}
+
+NumPy is a scientific package for python providing a lot of mathematical tools.
+The most interesting for this project are its capabilities to create and
+transform matrices.
+
+\paragraph{Matplotlib\cite{matplotlib}}
+
+Matplotlib is a python library for creating graphs and other visualizations. It
+is used to show the likelihood of moves the neural networks of the project
+create from a board configuration.
+
+\paragraph{PLY\cite{ply}}
+
+PLY is a tool for generating compilers in Python. It is an implementation of the
+lex and yacc utilities, allowing to create lexers and parsers. It is used in the
+project to create the SGF parser which transform SGF files to internal
+representations of Go matches.
+
+\paragraph{Other utility libraries}
+
+These are some utility libraries commonly used for frequent programming tasks:
+
+\begin{itemize}
+ \item \textbf{sys}, to stop the execution of the program or access system info such
+ as primitives maximum values.
+ \item \textbf{os}, to interact with files.
+ \item \textbf{re}, to check strings with regular expressions.
+ \item \textbf{random}, to get random values, for example to obtain a random
+ item from a list.
+ \item \textbf{copy}, to obtain deep copies of multidimensional arrays.
+\end{itemize}
+
+\subsubsection{Development tools}
+
+\paragraph{Neovim\cite{neovim}}
+
+\begin{itemize}
+
+ \item Extensions
+ \item Extensions
+
+\end{itemize}
+
+% Old stuff starts here
+
\subsection{Engine}
An implementation of GTP, that is, the piece of software which offers the GTP
diff --git a/doc/tex/planification.tex b/doc/tex/planification.tex
index 945c610..00695a1 100644
--- a/doc/tex/planification.tex
+++ b/doc/tex/planification.tex
@@ -145,13 +145,19 @@ Sabaki is a go board software compatible with GTP engines. It can serve as a GUI
for the engine developed in this project and as an example of the advantages of
following a standardized protocol.
+\subsubsection{Keras~\cite{keras}}
+
+Keras is a deep learning API for Python allowing for the high-level definition
+of neural networks. This permits easily testing and comparing different network
+layouts.
+
\subsection{Technological Infrastructure}
-\subsubsection{Programming language}
+\subsubsection{Programming language}\label{sec:programmingLanguage}
The resulting product of this project will be one or more pieces of software
able to be run locally on a personal computer. The programming language of
-choice is Python, for various reasons:
+choice is Python\cite{python}, for various reasons:
\begin{itemize}
diff --git a/doc/tex/tfg.tex b/doc/tex/tfg.tex
index 22ee0e9..f387064 100644
--- a/doc/tex/tfg.tex
+++ b/doc/tex/tfg.tex
@@ -122,7 +122,7 @@ inclusion to use this template is included here.
\input{tex/systemAnalysis.tex}
-\input{tex/systemDesign.tex}
+%\input{tex/systemDesign.tex}
\input{tex/implementation.tex}