From 595128a00d1b8c71db675c5f0db8410235ba0b72 Mon Sep 17 00:00:00 2001 From: Markus Klinik Date: Fri, 24 May 2019 13:53:56 +0200 Subject: [PATCH] explain assignment encoding --- implementation.tex | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/implementation.tex b/implementation.tex index c469fa0..bc4f378 100644 --- a/implementation.tex +++ b/implementation.tex @@ -12,6 +12,7 @@ Phase two uses these assignments to build schedules. \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. +Resources, tasks, and frames are numbered according to the order in which they appear in the definition. A resource definition consists of a name and a list of skills. A task definition consists of a name, a duration, a list of skill requirements, and a list of predecessors. @@ -59,13 +60,23 @@ We ported his code from Haskell to Clean and extended it in a number of ways to \paragraph{Encoding} 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. +A chromosome is a list of numbers, one number for each resource requirement in a resource definition. +The domain of a number in a chromosome is the list of all resources that have the corresponding capability. +For example, the instance in \cref{fig:resource-frames} has three capability requirements, one of each task and one of the frame. +Let there be four resources: Alice and Bob, who are both Operators, and a Heli and a Boat which are both Transports. +A chromosome for this instance is a list of three numbers $[o_p, o_d, t]$. +The first two numbers $o_p, o_d$ stand for the Operator of the Prepare and Deploy tasks, respectively. +They have the domain $[Alice, Bob]$. +The third number stands for the transport, and has domain $[Heli, Boat]$. +For example the chromosome $[0, 1, 1]$ encodes the assignment of Alice as the Operator of Prepare, Bob as the Operator of Deploy, and the Boat as the Transport of both tasks. -\paragraph{Selection} \paragraph{Crossover} \paragraph{Mutation} +\paragraph{Selection} + \paragraph{Constraints and invalid assignments} \paragraph{Scalarization} -- GitLab