The Doctor Rostering Problem - Asser Fahrenholz
The Doctor Rostering Problem - Asser Fahrenholz
The Doctor Rostering Problem - Asser Fahrenholz
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Chapter 4. Solving the DRP 27<br />
Figure 4.6: <strong>The</strong> implementation of the schedule<br />
tests of the heuristics which should provide an indication of the performance of the<br />
heuristics.<br />
4.4 Heuristic implementations<br />
In this section, I will briefly cover the implementation of the heuristics described in<br />
this chapter, but before doing so, it is necessary to describe the data structure of the<br />
implementation.<br />
4.4.1 <strong>The</strong> data structure<br />
<strong>The</strong> language chosen to implement the heuristics is Java. It contains specific JDK 1.6<br />
implementations, meaning that the runtime environment required to run the program is<br />
Java JRE 1.6, which can be downloaded from Sun.com. <strong>The</strong> fact that one goal of this<br />
project was to deliver a program allowing the end user to produce schedules and that I<br />
had no previous experience with other environments than Java, made this decision easy.<br />
<strong>The</strong> approach chosen to design the program is one where user friendliness is prioritised.<br />
It was accepted from the beginning that neither I nor the end user would appreciate<br />
a low level language implementation, such as one in C, containing no graphical user<br />
interface.<br />
<strong>The</strong> implementation is done in an object oriented approach, meaning that every schedule,<br />
shift and day is instantiated as objects. This approach is chosen due to simplicity when<br />
modeling the problem. A downside to this is that the amount of object allocations can<br />
rise quickly when testing several problem instances.<br />
<strong>The</strong> schedule is modeled as a list (a Vector) of days and days are modeled as a list (an<br />
ArrayList) of shifts. Due to constraint H4, all days contains four shifts, while certain<br />
days contains five or six. <strong>The</strong> implementation is pictured in figure 4.6.