Commit 60b33284 authored by Markus Klinik's avatar Markus Klinik

resource frames figure

parent 9afca06a
......@@ -6,16 +6,51 @@ We have implemented our algorithm in the functional programming language Clean.
The source code is available at our university's GitLab.\footnote{\url{}}
The implementation works in two phases.
Phase one uses a genetic algorithm to find a set of good assignments.
Phase one uses a genetic algorithm to find a set of good assignments for a given instance definition.
Phase two uses these assignments to build schedules.
\subsection{Genetic Algorithm}
\subsection{Instance Definition}
A C2 instance definition consists of a list of resource definitions, a list of task definitions, a list of resource frame definitions, and a list of weights.
Resource frames specify resource affinity constraints.
A resource frame has a list of task definitions and a list of resource requirements.
Every resource requirement of a resource frame is by definition a resource requirement of all tasks in the frame, and assigning a resource to a frame requirement automatically assigns it to all tasks in the frame.
See figure \todo{TODO} for an example.
\node[draw,rectangle split,rectangle split parts=2,text width=2.0cm,anchor=north west] at (0,0)
{ Prepare
\node[draw,rectangle split,rectangle split parts=2,text width=2.0cm,anchor=north west] at (130,0)
{ Deploy
\node[draw,anchor=south east,outer sep=0pt] % outer sep=0pt so that the borders overlap
at (215,-60) (frameRequirement) {\textit{Transport}};
\draw (-10,10) rectangle (frameRequirement.south east);
\draw[->] (prepare.text east) -- (deploy.text west);
\caption{A resource frame in a simple prepare-deploy scenario.
The resource requirement of the frame applies to all tasks inside the frame.}
\subsection{Genetic Algorithm}
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.
Our encoding scheme is based on the one by \citet{MyszkowskiLNS2018}, extended with support for tasks with multiple skill requirements.
A chromosome encodes an assignment as follows.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment