Commit 595128a0 authored by Markus Klinik's avatar Markus Klinik
Browse files

explain assignment encoding

parent 4e8d37b0
......@@ -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
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{Constraints and invalid assignments}
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