27.07.2013 Views

The Doctor Rostering Problem - Asser Fahrenholz

The Doctor Rostering Problem - Asser Fahrenholz

The Doctor Rostering Problem - Asser Fahrenholz

SHOW MORE
SHOW LESS

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.

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

Saved successfully!

Ooh no, something went wrong!