diff --git a/c2-scheduling-problem.tex b/c2-scheduling-problem.tex index 7742b6eff5310def92a4882ab5136c72bb3c5de8..58be0d34abd8279c50597e39732b632a31d62909 100644 --- a/c2-scheduling-problem.tex +++ b/c2-scheduling-problem.tex @@ -28,11 +28,10 @@ The meaning of such an equality is that the resource assigned to capability requ We require that all entries in a resource affinity constraint refer to the same capability. \paragraph{Assignments} -An assignment is a set of tuples $\tuple{t, i, r}$ that assigns a resource $r$ to every capability requirement $c_i$ of every task $t$. +An assignment $A$ is a set of tuples $\tuple{t, i, r}$ that assigns a resource $r$ to every capability requirement $c_i$ of every task $t$. \paragraph{Schedules} -A schedule is an assignment together with a set of tuples $\tuple{t, s}$ that assigns a start time $s \in \N$ to every task $t$. -The end time of a task is its start time plus its duration. +A schedule is a tuple $\tuple{A, S}$ of an assignment $A$ together with a set $S$ of start times $\tuple{t, s}$ that assigns a start time $s \in \N$ to every task $t$. \paragraph{Validity} We say that an assignment is \emph{valid} iff @@ -46,3 +45,20 @@ We say that a schedule is \emph{valid} iff \item it respects the task ordering, which means every task's start time $s_t$ is after the end time of all of its predecessors $\vec{p}_t$ \item no resource is assigned to two tasks that are overlapping in time. \end{itemize} +The end time of a task is its start time plus its duration. + +\paragraph{Quality function} +A quality function $f(r, t, i, E, A)$ takes as arguments a resource $r \in R$, a task $t \in T$, a capability index $i$, an environment $E$, and an assignment $A$, and returns either Maximize $q$ or Minimize $q$ with $q \in \mathbb{R}$. +The quality function calculates how well $r$ will perform capability requirement $c_i$ of task $t$, given an environment and an assignment. +Maximize and Minimize are annotations that specify if $q$ is a more-is-better or less-is-better objective. +We require that quality functions are consistent with these tags, which means for each $t$ and $c_i$ it returns the same tag. +Only then is it meaningful to compare different resources for the same capability requirement of a task. + + +\paragraph{C2 scheduling problem} +With the definitions above we can now define the C2 scheduling problem. +Given a set of capabilities $C$, a set of tasks $T$, a set of resources $R$, a set of affinity constraints, an environment $E$, and a quality function $f$, calculate a valid schedule $\tuple{A, S}$ that optimizes the objective vector +\begin{IEEEeqnarray*}{c} +\tuple{f(r, t, i, E, A)} \textrm{ for each } \tuple{r, t, i} \in $A$ +\end{IEEEeqnarray*} +Optimizing the objective vector means to find the largest possible $q$ for each Maximize $q$, and the smallest possible $q$ for each Minimize $q$.