We have presented an algorithm that calculates solutions to the C2 scheduling problem.

The C2 scheduling problem expresses the scheduling requirements in damage control scenarios on board of navy ships.

It is a variant of the MSRCPSP, and extends it with resource affinity constraints and user-defined quality functions.

We use an evolutionary algorithm to search the solution space for schedules that have a good score according to the weighted product of all objectives.

We argue that evolutionary algorithms lend itself well for our problem, because we are not only interested in the best schedule, but also in alternative solutions.

Evolutionary algorithms calculate sets of solutions, which as a by-product contains the best alternative solutions it has found.

Furthermore, evolutionary algorithms do not need knowledge about the function they are trying to optimize.

This is useful for our purpose, because user-defined quality functions can be arbitrary Turing-complete calculations, and there can be no general heuristic that could take advantage of them to guide the search.