27.06.2013 Views

Models for Global Constraint Applications - Cork Constraint ...

Models for Global Constraint Applications - Cork Constraint ...

Models for Global Constraint Applications - Cork Constraint ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!