@@ -45,10 +45,23 @@ In \cref{sec:planning-vs-scheduling} we argue that planning and scheduling can n

Nonetheless, many such situations can be expressed as C2 scheduling problems, by choosing an appropriate level of abstraction.

For example, even though choosing between a helicopter and a boat requires different setup and cleanup procedures, we can model the situation as three generic tasks: setup, perform, and cleanup.

We assume that the personnel is sufficiently educated to know which setup and cleanup procedures are required for either transport.

Our resource affinity constraints can be used to guarantee that all three tasks deal with the same transport.

\begin{itemize}[noitemsep]

\item Planning and scheduling overlap when a resource is a case.

\item Stop criterion: keep calculating until convergence instead of fixed number of rounds

\item Feasibility checking. We don't do it. See \citet{CorreiaLS2012} for a method.

\end{itemize}

\paragraph{Stop criterion}

In our current implementation, the algorithm stops after a fixed number of generations.

This guarantees termination of the algorithm after a pre-determined time, but it might stop at an unfortunate moment where a new area of the search space has been discovered but not yet fully explored.

Other stop criteria have been proposed for evolutionary algorithms.

One could use different kinds of convergence criteria, like that the distance between the best and the worst solution in the population falls below a certain threshold, or that the best best solution has not been improved for some time.

\paragraph{Feasibility checking}

A scheduling problem is called \emph{feasible} when it has at least one valid solution.

Not every C2 scheduling problem is feasible.

It could be helpful to check feasibility of a scenario before setting out to finding the best solution.

Checking feasibility of C2 problems is tricky, because resources can have multiple capabilities.

Take for example a scenario with one task that requires two capabilities A and B, and one resource that has both.

Just looking at the cardinalities of the sets of resources with required capabilities is not sufficient.

One might conclude that there is one resource with capability A and one resource with capability B, but when assigning the resource to either, it becomes unavailable for the other.

\citet{CorreiaLS2012} describe a method of checking feasibility for scheduling problems with flexible resources, based on finding a flow in a specifically constructed network.