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$.