Models for Global Constraint Applications - Cork Constraint ...
Models for Global Constraint Applications - Cork Constraint ...
Models for Global Constraint Applications - Cork Constraint ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
constraint [33] and a pattern constraint [39] are used instead of the among and<br />
sequence constraints of CHIP. They both have somewhat different expressive<br />
power and use, but can express typical rules occurring in rostering.<br />
4.2.4 Objective<br />
There is no clearly defined objective that should be optimised in rostering problems.<br />
In most cases, users look <strong>for</strong> feasible solutions, or even infeasible solutions<br />
which minimise constraint violations. There are two balancing rules which may<br />
play the role of objectives: one is to balance any excess capacity in an even<br />
way over time and between shifts, the other is to treat people evenly, so that<br />
all persons obtain the same workload, expressed in shift (types) to be worked,<br />
weekend assignment, or assignments over public holidays.<br />
4.3 Additional <strong>Constraint</strong>s<br />
So far we have described the core constraints encountered in the nurse rostering<br />
problem, but there are many more constraints that can be added.<br />
4.3.1 Preferences<br />
The rostering system produces a plan <strong>for</strong> a period of four weeks into the future<br />
and in principle may assign any nurse to any of the shifts in that planning<br />
horizon. Often, persons have strong preferences <strong>for</strong> working particular shifts<br />
or <strong>for</strong> not working at certain times. It is trivial to take a small number of<br />
preferences into account by <strong>for</strong>cing an assignment or removing values from the<br />
domain of a variable. The problem is that taking all preferences together will<br />
nearly always lead to an infeasible problem.<br />
One approach to solve this issue is to use hierarchical constraint programming<br />
as presented in [34], where the solver tries to minimise the number of<br />
constraint violations.<br />
A disadvantage of this approach is that the global constraints have to be<br />
extended to handle constraint violations. In a limited way this has been attempted<br />
in the sequence constraint of CHIP, with additional indicator variables<br />
to indicate where violations occur. These variables can then be used in new<br />
constraints <strong>for</strong> example to balance the violations evenly through the schedule.<br />
Another approach is to treat preferences as heuristic choices which are tried<br />
in the search process. This is very easy to program, but it is quite difficult to<br />
balance preference treatment <strong>for</strong> all nurses in the roster.<br />
A third approach is an interactive constraint solving process, where a user<br />
enters choices via a user interface and sees what effect this choice has. This<br />
was proposed in [74], but relies on very strong constraint propagation to be<br />
workable. As soon as an infeasible constraint is added, this must be detected,<br />
giving the user the choice how to restore a feasible constraint set.<br />
4.3.2 Qualifications<br />
A rather common extension is to consider different qualifications of nurses and<br />
demands on each type of qualification <strong>for</strong> each shift. If the qualifications partition<br />
the set of nurses, then the problem can be trivially decomposed and each<br />
subproblem solved independently. If qualifications overlap, then the model may<br />
25