diff options
author | InigoGutierrez <inigogf.95@gmail.com> | 2022-06-29 14:33:37 +0200 |
---|---|---|
committer | InigoGutierrez <inigogf.95@gmail.com> | 2022-06-29 14:33:37 +0200 |
commit | c25a5d482937fc861e9d1cfc1ff36e479fcb2fb4 (patch) | |
tree | a02d68a2f41cbf05dce1cb29e18d663dbb362e19 /doc/tex/implementation.tex | |
parent | 080ef02ab7abc46eae1e2a550d26fdcb6c87450f (diff) | |
download | imago-c25a5d482937fc861e9d1cfc1ff36e479fcb2fb4.tar.gz imago-c25a5d482937fc861e9d1cfc1ff36e479fcb2fb4.zip |
Writing implementation section.
Diffstat (limited to 'doc/tex/implementation.tex')
-rw-r--r-- | doc/tex/implementation.tex | 66 |
1 files changed, 66 insertions, 0 deletions
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 |