From 9afca06a296203d0c105f0fd3bfb50631efb149c Mon Sep 17 00:00:00 2001 From: Markus Klinik Date: Fri, 24 May 2019 10:42:10 +0200 Subject: [PATCH] implementation: structure --- implementation.tex | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/implementation.tex b/implementation.tex index 7418f3f..8ba56bd 100644 --- a/implementation.tex +++ b/implementation.tex @@ -1,22 +1,32 @@ \section{Implementation} \label{sec:implementation} +In this section we describe some design decisions of the implementation of our method. +We have implemented our algorithm in the functional programming language Clean. +The source code is available at our university's GitLab.\footnote{\url{https://gitlab.science.ru.nl/mklinik/ga-scheduler}} + The implementation works in two phases. -Phase one uses a genetic algorithm to find an assignment. -Phase two uses this assignment to build a schedule. +Phase one uses a genetic algorithm to find a set of good assignments. +Phase two uses these assignments to build schedules. \subsection{Genetic Algorithm} -Describe our implementation. +Our genetic algorithm is based on the implementation by \citet{Alexeev2014SimpleGeneticAlgorithm}. +We ported his code from Haskell to Clean and extended it in a number of ways to make it fit our needs. + +\paragraph{Encoding} + +\paragraph{Selection} + +\paragraph{Crossover} + +\paragraph{Mutation} + +\paragraph{Constraints and invalid assignments} + +\paragraph{Scalarization} -\begin{itemize}[noitemsep] -\item crossover -\item mutation -\item constraints -\item scalarization -\item invalid assignments -\end{itemize} \subsection{Greedy Schedule Building} -- GitLab