Inhaltsverzeichnis
Tabellenverzeichnis iii
Abbildungsverzeichnis vi
Abk ürzungsverzeichnis vii
Symbolverzeichnis - Allgemein und MIP viii
Symbolverzeichnis - DP xi
1 Einleitung 1
2 Literaturüberblick 6
3 Beschreibung des Schichtplanungsproblems 11
3.1 Begriffe der Schichtplanung 11
3.2 Spaltengenerierungsverfahren zur Lösung der Schichtplanung 12
3.3 Nebenbedingungen der Schichtplanung 14
4 Formulierung als Kürzeste Wege Problem 15
4.1 Beschreibung des Graphen 15
4.2 Erweiterung um Ressourcenbeschränkungen 18
5 Gemischt ganzzahliges Programm 21
5.1 Beschreibung des grundlegenden MIPs 21
5.1.1 Notation des MIPs 21
5.1.2 Erläuterung des MIPs 24
5.1.3 Relaxierung der Ressourcenvariablen 27
5.2 Einführung weiterer Nebenbedingungen 28
5.2.1 Berücksichtigung eines Dienstes 29
5.2.2 Berücksichtigung von Überstunden und Fehlstunden 33
5.2.3 Berücksichtigung einer Mittagspause 36
5.2.4 Berücksichtigung eines Zeitfensters 39
5.2.5 Werte des vorherigen Planungshorizonts 40
5.3 Preprocessing 41
5.4 Komplexität des RCSPs 43
6 Dynamisches Programm 45
6.1 Einführung in die dynamische Programmierung 45
6.2 Beschreibung des grundlegenden DPs 50
6.2.1 Modellierung des RCSPs als DP 51
6.2.2 Induktionsreihenfolge des DPs 52
6.2.3 Darstellung des Algorithmus 54
i
Inhaltsverzeichnis
6.3 Einführung weiterer Nebenbedingungen 65
6.3.1 Berücksichtigung eines Dienstes 66
6.3.2 Berücksichtigung von Überstunden und Fehlstunden 72
6.3.3 Berücksichtigung einer Mittagspause 74
6.3.4 Berücksichtigung eines Startzeitfensters 78
6.3.5 Werte des vorherigen Planungshorizonts 79
6.4 Beschleunigung des Algorithmus 80
6.5 Bedingungen für die optimale Lösung 86
7 Zeitliche Analyse der Lösungsverfahren 89
7.1 Parametereinstellung und Beschreibung der Variationen 89
7.2 Ergebnisse der Laufzeitanalysen 91
7.2.1 Häufigkeit der Effizienzprüfung 92
7.2.2 Variation der ORDER Regel 93
7.2.3 Praxisbeispiel 95
7.2.4 Praxisbeispiel II 97
7.2.5 Variation der Dichte der Deltas 98
7.2.6 Auslassung der Nebenbedingungen „Mittagspause“, „Dienst“
bzw. „Startzeitfenster“ 100
7.2.7 Variation der Mindestarbeitszeit 103
7.2.8 Variation der Höchstarbeitszeit 105
7.2.9 Variation des Startzeitfensters 105
7.3 Zusammenfassung 106
8 Ausblick 108
A Vollständiges Modell des MIPs xiv
B Vollständiges Modell des DPs xvii
C Ausführliche Ergebnisse der Laufzeitanalysen xxiii
C.1 Häufigkeit der Effizienzprüfung xxiii
C.2 Variation der ORDER Regel xxiv
C.3 Praxisbeispiel xxv
C.4 Praxisbeispiel II xxvi
C.5 Variation der Dichte der Deltas xxvii
C.6 Auslassung der Nebenbedingungen „Mittagspause“, „Dienst“ bzw.
„Startzeitfenster“ xxix
C.7 Variation der Mindestarbeitszeit xxxi
C.8 Variation der Höchstarbeitszeit xxxiii
C.9 Variation des Startzeitfensters xxxv
Literaturverzeichnis xxxvii
ii
Tabellenverzeichnis
Tab. 1 Zur Wochenarbeitszeit
angerechnete
und
ausbezahlte
Stunden eines Dienstes. . . . . . . . . . . . . . . . . . . . . . . . . 29 Tab. 2 Allgemeine Parametereinstellungen. . . . . . . . . . . . . . . . 89 Tab. 3 Abweichende Parametereinstellungen bei Variation der Häufigkeit der Effizienzprüfung. . . . . . . . . . . . . . . . . . . . 92 Tab. 4 Lösungszeiten bei Variation der Häufigkeit der Effizienzprüfung. 93 Tab. 5 Kennwerte der Labels bei Variation der Häufigkeit der Effizienzprüfung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Tab. 6 Abweichende Parametereinstellungen bei Variation der ORDER Regel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Tab. 7 Lösungszeiten bei Variation der ORDER Regel. . . . . . . . . 94 Tab. 8 Kennwerte der Labels bei Variation der ORDER Regel. . . . 94 Tab. 9 Abweichende Parametereinstellungen im Praxisbeispiel. . . . . 95 Tab. 10
Tab. 11 ungleich Null im MIP und SP im Praxisbeispiel. . . . . . . . . 96 Tab. 12 Kennwerte der Labels des DPs im Praxisbeispiel. . . . . . . . 97 Tab. 13 Abweichende Parametereinstellungen beim zweiten Praxisbeispiel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Tab. 14 Lösungszeiten des MIPs, SPs und DPs für das zweite Praxis- problem. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Tab. 15 Kennwerte der Labels für das DP im zweiten Praxisbeispiel. . 98
Tab. 18
δ D für zwei Wochen. . . . . . . . . . . . . . . . . . . . . . . . 99 Kennwerte der Labels bei Variation der Dichten von δ dem und Tab. 19
δ D für vier Wochen. . . . . . . . . . . . . . . . . . . . . . . . 100 Tab. 20 Abweichende Parametereinstellungen bei Auslassung der Nebenbedingung für die Mittagspause. . . . . . . . . . . . . . . 101 Tab. 21 Lösungszeiten bei Auslassung der Nebenbedingungen „Mittagspause“, „Dienst“ bzw. „Startzeitfenster“. . . . . . . . . . . 101 Tab. 22 Kennwerte der Labels bei Auslassung der Nebenbedingungen „Mittagspause“, „Dienst“ bzw. „Startzeitfenster“. . . . . . . . 102 Tab. 23 Abweichende Parametereinstellungen bei Variation der Mindestarbeitszeit. . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Tab. 24 Lösungszeiten bei Variation der Mindestarbeitszeit. . . . . . . 103 Tab. 25 Kennwerte der Labels bei Variation der Mindestarbeitslänge
Tabellenverzeichnis
Tab. 26 Kennwerte der Labels bei Variation der Mindestarbeitslänge über vier Wochen. . . . . . . . . . . . . . . . . . . . . . . . . 104 Tab. 27 Lösungszeiten bei Variation der Höchstarbeitszeit. . . . . . . 105 Tab. 28 Lösungszeiten bei Variation des Startzeitfensters. . . . . . . . 105 Tab. C.1 Lösungzeiten bei Variation der Häufigkeit der Effizienzprüfung - ausführliche Darstellung. . . . . . . . . . . . . . . . . . xxiii Tab. C.2 Kennwerte der Labels bei Variation der Häufigkeit der Effizienzprüfung - ausführliche Darstellung. . . . . . . . . . . . . . xxiii Tab. C.3 Lösungzeiten bei Variation der ORDER Regel - ausführliche Darstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiv Tab. C.4 Kennwerte der Labels bei Variation der ORDER Regel - aus- führlicheDarstellung. . . . . . . . . . . . . . . . . . . . . . . xxiv Tab. C.5 Lösungzeiten des MIPs, DPs und SPs im Praxisbeispiel - aus- führlicheDarstellung. . . . . . . . . . . . . . . . . . . . . . . xxv Tab. C.6 Kennwerte der Labels beim Praxisbeispiel - ausführliche Darstellung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Tab. C.7 Anzahl an Variablen, Nebenbedingungen und Koeffizienten ungleich Null im MIP und SP im zweiten Praxisbeispiel. . . . xxvi Tab. C.8 Lösungszeiten bei Variation der Dichten von δ dem und δ D - ausführliche Darstellung.. . . . . . . . . . . . . . . . . . . . . xxvii Tab. C.9 Kennwerte der Labels bei Variation der Dichten von δ dem und δ D für zwei Wochen - ausführliche Darstellung. . . . . . . . . xxvii Tab. C.10 Kennwerte der Labels bei Variation der Dichten von δ dem und δ D für vier Wochen - ausführliche Darstelung. . . . . . . . . xxviii Tab. C.11 Kennwerte der Labels bei Variation der Dichten von δ dem und δ D für sechs Wochen - ausführliche Darstelung. . . . . . . . . xxviii Tab. C.12 Lösungszeiten bei Auslassung der Nebenbedingungen „Mit-
Tab. C.13 Kennwerte der Labels bei Auslassung der Nebenbedingungen
Tab. C.14 Lösungszeiten bei Variation der Mindestarbeitszeit - ausführ- licheDarstellung. . . . . . . . . . . . . . . . . . . . . . . . . xxxi Tab. C.15 Kennwerte der Labels bei Variation der Mindestarbeitszeit - ausführliche Darstellung.. . . . . . . . . . . . . . . . . . . . . xxxii Tab. C.16 Lösungszeiten bei Variation der Höchstarbeitszeit - ausführ- licheDarstellung. . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii Tab. C.17 Kennwerte der Labels bei Variation der Höchstarbeitszeit über
Tabellenverzeichnis
Tab. C.18 Lösungszeiten bei Variation des Startzeitfensters - ausführli- cheDarstellung. . . . . . . . . . . . . . . . . . . . . . . . . . xxxv Tab. C.19 Kennwerte der Labels bei Variation des Startzeitfensters über
Abbildungsverzeichnis
Abb. 1 Ein Schichtplan über sieben Tage.
Abb. 2 Aufbau des Graphen G.
Abb. 3 Arbeit und Pause auf dem Graphen G.
Abb. 4 Graph G mit Ressourcenvariablen, Ressourcenfenstern und
Kantengewichten.
Abb. 5 Graph G mit Binärvariablen von Arbeit und Pause.
Abb. 6 Graph G mit Binärvariablen von Arbeit, Pause und Dienst.
Abb. 7 Graph G mit Binärvariablen der Mittagspause.
Abb. 8 Stufen im dynamischen Programm.
Abb. 9 Ausschnitt eines Schichtplans vor dem Verschieben von Ar-
beitsschichten.
Abb. 10 Ausschnitt eines Schichtplans nach dem Verschieben von Ar-
beitsschichten.
vi
Abkürzungsverzeichnis
Abkürzungsverzeichnis
B&B Branch & Bound
B&P Branch & Price CG Spaltengenerierungsverfahren (engl.: column generation) DL Anzahl an dominierten Labels im dynamischen Programm DP Dynamische Programmierung bzw. Programm EL Anzahl an erstellten Labels im dynamischen Programm IP Ganzzahlige Programmierung bzw. Programm (engl.: integer programming) LP Lineare Programmierung bzw. lineares Programm LV Anzahl an notwendigen paarweisen Vergleichen der Labels
M Mittelwert (engl.: mean) MIP Gemischt ganzzahlige Programmierung bzw. Programm (engl.: mixed integer programming) MP Masterproblem des Spaltengenerierungsverfahrens NB Nebenbedingung(en)
RCSP Kürzeste Wege Problem mit Ressourcenbeschränkung (engl.: resource constrained shortest path problem) SD Standardabweicheung (engl.: standard deviation SP Subproblem des Spaltengenerierungsverfahrens bzw. konkretes Subproblem aus Brunner et al. (2010) SPP Kürzeste Wege Problem (engl.: shortest path problem) VC Variationskoeffizient (engl.: coefficient of variation)
vii
Symbolverzeichnis - Allgemein und MIP
Symbolverzeichnis - Allgemein und MIP
c sched Gesamtkosten, die aus einem Schichtplan resultieren D Index für den Dienst D Menge der Tage im Planungshorizont
δ δ dem Wert der Dualvariable der Arbeitsnachfrage- ab
δ D Wert der Dualvariablen der Dienstnachfrage- ab
E A Zeitpunkt, zu dem die reguläre Arbeit A spätestens endet
E
WE
Letzter Tag des Wochenendes
f
1
(j) Gibt die Stundenanzahl des im Knoten
j
∈ V
D
f 2 (j) Funktion, welche jeder Nummer eines Knotens j ∈ V eine
h w
Index eines obenliegenden Knotens mit i ∈ V i
i − Beide Vorgängerknoten des Knotens i
i − Vorgängerknoten des Knotens i aus den oberen Knoten V i − Vorgängerknoten des Knotens i aus den unteren Knoten V Index eines untenliegenden Knotens mit j ∈ V j K d Anzahl an Knoten pro Tag
Anzahl an Knoten pro Woche, mit K w = (|V| − 2)\|W| K w λ(·) Verhältnis der Lösungszeit zur Anzahl an erstellten (EL)
M
N D Maximale Anzahl an Diensten pro Woche
viii
Symbolverzeichnis - Allgemein und MIP
Anzahl an Überstunden in der Woche w ∈ W 0 o w P Index für Pause
Binärvariable, mit 1, wenn der Arzt in der Periode (j − , j) q j − ,j
mit j ∈ V eine Mittagspause absolviert, 0 sonst Index für Ressourcen, mit r ∈ T r R A Anzahl an Arbeitsstunden, welche in Woche w nicht zur Ver-
w
fügung stehen R D Ressourcenverbrauch des Dienstes
Dichte der δ dem bzw. δ D , welche das Verhältnis von der An- ρ(δ)
zahl an δ dem > 0 bzw. δ D > 0 pro 24 Stunden ausdrückt Höchstdauer der Ressource r ∈ T R r
R P Anzahl an Stunden, welche vor Beginn des Planungshorizonts bereits pausiert wurden R r (a) Höhe der Ressource r ∈ T im Knoten a ∈ V Mindestdauer der Ressource r ∈ T R r t Index des Knotens im Graphen mit der höchsten Nummer S A Zeitpunkt, zu dem die reguläre Arbeit A frühestens beginnt S D Zeitpunkt, zu dem der Dienst D beginnt
S
WE
Tag, zu dem das Wochenende beginnt
T
T
late
T
post
Mindestdauer
an
Arbeit nach Beendigung einer Mittagspause
T
pre
Mindestdauer
an
Arbeit vor Aufnahme einer Mittagspause
T
win
Maximale Länge zwischen frühestem und spätestem Arbeitsbeginn
pro
Woche Anzahl an „Fehlstunden“ in der Woche w ∈ W u w v Vertragliche Wochenarbeitszeit
i ∈ V} ⊂ V
V Menge der untenliegenden Knoten, mit V = {j|j mod 2 = 0 : j ∈ V} ⊂ V
Symbolverzeichnis - Allgemein und MIP
D ˆ V Teilmenge der untenliegenden Knoten bei denen der Dienst
w
V e Teilmenge des letzten untenliegenden Knotens der Woche w,
w
V non Menge der Knoten, bei denen die Variable χ ∈
χ
W
W 0 Menge der Wochen im Planungshorizont einschließlich der Vorwoche, mit W 0 = W ∪ {0} WA Index für die Wochenarbeit w Index für eine Woche
Binärvariable, mit 1, wenn der Arzt in Periode (j − , j) pau- x j − j siert, 0 sonst
Binärvariable, mit 1, wenn der Arzt in Periode (i − , i) arbei- x i − i tet, 0 sonst
Binärvariable, mit 1, wenn der Arzt in der Periode (j − y j − j o , j)
Symbolverzeichnis - DP
Symbolverzeichnis - DP
A j (x j )
a ∗
b Index für eine Mittagspause bei der Entscheidung a j
j
δ D Wert der Dualvariablen der Dienstnachfrage- j
(d so ) k
j
j
j
EF F (X j ) Methode des Algorithmus im dynamischen Programm, welche die Zustände x j ∈ X j auf Effizienz überprüft e win Zeitpunkt des Endes eines Startzeitfensters
(j) f 3
Γ
24/7 angibt, dass es möglich ist, rund um die Uhr zu arbeiten I {A} (x) Indikatorfunktion (auch charakteristische Funktion genannt)
j Index für eine Stufe j so Index für eine Stufe, auf welcher an einem Sonntag der Dienst
D
beginnt
Symbolverzeichnis - DP
j
j
∧ Operator zwischen zwei Argumenten, welcher die UND-Verknüpfung angibt ∨ Operator zwischen zwei Argumenten, welcher die ODER-Verknüpfung angibt
ORDER(X j ) Methode des Algorithmus im dynamischen Programm, wel-
P(Ω) Potenzmenge einer beliebigen Menge Ω, wobei in dieser Arbeit ∅ / ∈ P(Ω) definiert sei
p
Φ
r(x
j
,a
j
) Ertragsfunktion
r
init
Wert der Zielfunktion
auf
der Stufe
j
= 0
R
P
Minimaler Wert der Pausenressource
R
P
von
allen
Endzu-
min,VW
ständen einer Vorwoche (R
r
)
k
j
S
j
s win Zeitpunkt des Beginns eines Startzeitfensters t(x j ,a j ) T r ansformationsfunktion im dynamischen Programm, wobei
V (x j ) Wertfunktion X j Menge aller Zustände auf der Stufe j x j Zustand auf der Stufe j
xii
Symbolverzeichnis - DP
x init Initialisierungszustand, mit welchem die dynamische Pro-
x ∗ Optimale Folge von Zuständen
xiii
1 Einleitung
1 Einleitung
Der wachsende Kostendruck im Dienstleistungssektor und insbesondere im Ge-sundheitswesen macht es notwendig vorhandene Ressourcen möglichst effizient einzusetzen (Thungjaroenkul et al. 2007). Der größte Anteil der Ausgaben in diesen Sektoren wird für Personal verwendet. Eine Reduzierung dieser Kosten scheitert oft an der Variabilität des Bedarfs und der gleichzeitigen Notwendigkeit fester Schichtpläne. Überdies sind Präferenzen der Arbeitnehmer und gesetzliche Vorgaben zu berücksichtigen.
Der aktuelle Bericht „Pflege-Thermometer“ des deutschen Instituts für an- gewandtePflegeforschung (dip) zeigt, dass der Abbau von Pflegekräften in Krankenhäusern bei gleichzeitigem Aufbau an ärztlichem Personal fortgesetzt wird. (Isfort und Weidner 2007, S.5):
„Sowohl bei den Stellen für pflegerische Hilfskräfte (Krankenpflegehelfer/innen) als auch für das examinierte Pflegepersonal (Krankenpflegekräfte) wurden in erheblichem Umfang Reduzierungen vorgenommen. Es wurden 48.000 Vollzeitäquivalente (-13,5%) für Krankenpflegekräfte in den bettenführenden Bereichen im Zeitraum von zehn Jahren abgebaut. Dabei hat sich die Fallzahl der stationär behandelten Patienten erhöht und die Verweildauer der Patienten ist gesunken. Es erfolgte im gleichen Zeitraum ein Aufbau des ärztlichen Personals in erheblichem Umfang (+19,5%). Die Belastungszahl des Pflegedienstes nach Fällen stieg in zehn Jahren von 48 Patienten auf 59, was einem Plus von 23% entspricht!“
Weitere Informationen, die bestätigen, dass dieser Trend im Jahr 2008 fortgesetzt wurde, sind im Bericht des Statistischen Bundesamtes „Grunddaten der Krankenhäuser“ (Statistisches Bundesamt 2009) zu finden. Oben beschriebene Entwicklungen verstärken die Notwendigkeit eine effiziente Schichtplanung für das im Krankenhaus eingesetzte Personal zu entwickeln. Der Großteil der aktuellen Forschung bezieht sich auf die Planung des Pflegepersonals (nurse scheduling). Eine Übersicht über bisherige Veröffentlichungen hierzu gibt Cheang et al. (2003) und Burke et al. (2004). Bisherige entwickelte Methoden, welche für einen kurzen bzw. mittleren Planungshorizont bei Pflegepersonal eingesetzt werden können, wurden bereits mit einigem Erfolg umgesetzt (Bard und Purnomo 2005, Kellogg und Walczak 2007). Das Problem der Schichtplanung von Ärzten wird bisher jedoch weniger behandelt. Ein Grund ist die erhöhte Komplexität im Vergleich zur Planung von Pflegepersonal. Flexible Arbeitsverträge, welche vom Krankenhaus, Bun-desland, Ausbildungsstand und Status des Arztes abhängen, erschweren eine Generalisierung erheblich.
In Brunner et al. (2009) wurde ein neuer Ansatz gewählt, um dieses Problem anzugehen. Der gewählte Ansatz erlaubt eine flexible Generierung von
1
1 Einleitung
Schichtplänen, wobei eine große Anzahl an Parametern frei gewählt werden kann.
Das beschriebene Problem wurde als lineares Programm (LP) modelliert und anhand von Daten aus der Praxis für 16 Anästhesisten des Klinikums rechts der Isar in München getestet. Für große Instanzen wurde aufgrund der großen Variablen- und Nebenbedingungsanzahl keine Lösung in vertretbarer Zeit gefunden.
Daher wurde in einem nächsten Schritt ein Branch & Price (B&P) Ver-fahren 1 benutzt (Brunner et al. 2010), wobei im Subproblem des Spalten-
generierungsverfahrens (engl.: column generation bzw. CG) die Schichtpläne der einzelnen Ärzte erzeugt werden. Das Subproblem (SP) wird dort als ein gemischt ganzzahliges Programm (engl.: mixed integer program bzw. MIP) modelliert. Für komplexere Probleminstanzen ist die Lösung als MIP jedoch ineffizient bzgl. der Lösungszeit.
Ziel dieser Arbeit ist es daher, das Subproblem der Schichtplanerzeugung geeignet zu reformulieren und effizient zu lösen, um die bisherige Lösungszeit zu verbessern.
Folgende Parameter sind bei der Generierung eines Schichtplans zu berücksichtigen. Ein Arzt kann für eine reguläre Arbeit eingeteilt werden, welche eine Mindest- und Höchstdauer besitzt. Des Weiteren gibt es die Möglichkeit eines Bereitschaftsdienstes, welcher im Folgenden als „Dienst“ bezeichnet wird. Hierbei ist der Arzt 24 Stunden im Klinikum anwesend, um für unvorhergesehene Nachfrage, z.B. Notfälle, eingesetzt zu werden. Es gibt eine maximale Anzahl an Diensten pro Woche, welche ein Arzt übernehmen kann. Ein Teil dieser Arbeitszeit wird der regulären Wochenarbeitszeit angerechnet. Nach einer Arbeit bzw. einem Dienst muss eine Mindestpausenlänge eingehalten werden. Weitere Restriktionen sind die Berücksichtigung einer maximalen Wochenarbeitszeit und einer Mittagspause. Da die Arbeit eines Arztes zu einem beliebigen Zeit- punkt ineiner Woche beginnen kann, wird zudem gefordert, dass sich die verschiedenen Arbeitsstartzeitpunkte einer Woche innerhalb eines definierten Zeitfensters befinden. Hiervon ist der Beginn des Dienstes ausgenommen. Abbildung 1 zeigt als Beispiel einen Ausschnitt eines Schichtplans über sieben Tage. Jeder Tag ist in 24 Perioden eingeteilt, wobei Periode Null um 0 Uhr beginnt und um 1 Uhr endet. Die hellgrau bzw. dunkelgrau hinterlegte Zahl 1 steht hierbei für Arbeit bzw. Dienst, die Zahl 0 repräsentiert eine Pause (Mittagspause oder Pause zwischen zwei Schichten). Die Arbeit für diesen Arzt beginnt beispielsweise am ersten und fünften Tag um 7 Uhr. An diesen Tagen wird auch eine Mittagspause eingeplant, die durch die Null im Block der hellgrau hinterlegten Einsen erkennbar ist. Diese findet jeweils von 12 bis 13 Uhr
1 Eine Übersicht zu der Branch & Price Literatur gibt Barnhart et al. (1998). Eine Einfüh-
rung in B&P kann in Grünert und Irnich (2005a, Kapitel 3) gefunden werden.
2
statt. Am zweiten und sechsten Tag hat der Arzt einen Dienst, welcher um 8 Uhr beginnt und 24 Stunden dauert.
Es ist auch erkennbar, dass nach einer Arbeit oder einem Dienst eine Mindestpausenlänge von zwölf Stunden eingehalten wird. Bei der Erstellung eines Schichtplans für einen einzelnen Arzt ist der pe- riodenabhängigeNutzen der Arbeit über den gesamten Planungshorizont zu optimieren. Der Nutzen einer Periode ist hierbei der nichtnegative Wert der Dualvariablen für diese Periode. Der gesamte Nutzen ergibt sich aus den reduzierten Kosten einer Spalte. Es sei daran erinnert, dass die Schichtplangenerierung die Erzeugung einer Spalte im Subproblem darstellt und diese bei einem B&P so lange fortgesetzt wird, bis der Nutzen einer Spalte nichtnegativ ist. Um die reduzierten Kosten einer Spalte zu berechnen, wird hierbei die Summe der Dualvariablen von einem positiven Wert, welcher die Kosten für Überstunden berücksichtigt, subtrahiert.
In der Reformulierung wird das Subproblem in dieser Arbeit als ein Netzwerk modelliert und als Kürzeste Wege Problem mit Ressourcenbeschränkung (engl.: resource constrained shortest path problem oder RCSP) dargestellt. Als Lösungsverfahren werden sowohl ein MIP als auch die dynamische Programmierung (DP) gewählt.
Im folgenden Kapitel 2 wird eine Übersicht über die Literatur gegeben. Hierbei wird auf bisherige Forschungsarbeiten im Zusammenhang der Schichtplanung (scheduling) eingegangen und insbesondere jene dargestellt, welche im Lösungsverfahren ein Netzwerk bzw. ein RCSP wählen. Überdies werden Arbeiten erwähnt, welche die dynamische Programmierung als Lösung verwenden. Es wird deutlich, dass oftmals ein scheduling Problem als B&P gelöst wird, wobei das Subproblem meist als Netzwerkflussproblem modelliert und mit einem DP gelöst wird. Fast immer sind starke Einschränkungen bzgl. der Flexibilität bei der Erzeugung des Schichtplans vorhanden.
3
1 Einleitung
In Kapitel 3 wird die Problemstellung detailliert erläutert. Hierbei wird auf den Zusammenhang zum Spaltengenerierungsverfahren aus Brunner et al. (2010) eingegangen. Zudem werden die Nebenbedingungen mit den entsprechenden Parametern eingeführt.
In Kapitel 4 wird der Graph beschrieben, welcher für die Modellierung des RCSPs verwendet wird. Zuerst wird der Graph mit Kantengewichten beschrieben und der Zusammenhang zur Schichtplanung dargestellt. In Kapitel 4.2 werden den Knoten Ressourcen zugeordnet, um die einzelnen Nebenbedingungen abbilden zu können.
Kapitel 5 beschreibt das gemischt ganzzahlige Modell. In Kapitel 5.1 werden nur die Nebenbedingungen an Mindest- und Höchstarbeitszeit und die Mindestpausendauer berücksichtigt. Das Grundmodell des MIP wird eingeführt und die Notation erläutert. Zudem wird auf mögliche Variablenrelaxationen eingegangen. Darauf aufbauend wird das Modell in Kapitel 5.2 erweitert, um den Dienst, die Überstunden und Fehlstunden, die Mittagspause, das Startzeitfenster der Arbeit und mögliche Werte aus dem vorherigen Planungshorizont zu berücksichtigen. Um die Lösungsdauer des Algorithmus in Abhängigkeit der möglichen Arbeitszeit zu verbessern, wird eine Eingrenzung der Variablen durchgeführt, welche in Kapitel 5.3 dargestellt ist. Als letztes Teilkapitel wird die Komplexität des RCSPs erläutert. Es ist ein schwach NP-vollständiges Problem und kann, wenn als dynamisches Programm (DP) formuliert, in pseudopolynomialer Zeit gelöst werden.
Da das Kürzeste Wege Problem mit Ressourcenbeschränkung als MIP keine verbesserte Lösungszeit hervorbrachte, wurde in Kapitel 6 das RCSP als dynamisches Programm modelliert. Nach einer Einführung in die dynamische Programmierung wird ab Kapitel 6.2 erläutert, wie das DP modelliert wird, um das RCSP abbilden zu können. In einem nächsten Schritt wird der für das dynamische Programm verwendete Algorithmus beschrieben. Laufzeitanalysen der beiden Lösungsverfahren werden in Kapitel 7 dargestellt. Hierbei wird deutlich, dass die Lösung des RCSP als MIP im Durchschnitt langsamer als die ursprüngliche Formulierung aus Brunner et al. (2010) ist. Die deutliche Beschleunigung des Lösungsprozesses, vor allem für komplexe Instanzen, durch die Formulierung als DP wird ersichtlich. Zusätzlich werden für das Modell der dynamischen Programmierung Analysen anhand verschiedener Parametereinstellungen vorgenommen.
Im letzten Kapitel werden die Resultate zusammengefasst und ein Ausblick für weiterführende Untersuchungen gegeben.
Das „Symbolverzeichnis - DP“ beinhaltet die in Kapitel 6 eingeführten Symbole, welche ausschließlich für die Beschreibung des dynamischen Programms verwendet werden. Alle weiteren Symbole, welche in den anderen Kapiteln erstmals erwähnt werden, finden sich im „Symbolverzeichnis - Allgemein und MIP“.
4
1 Einleitung
Da die Modellierung des DPs auf Erkenntnissen vorheriger Kapitel aufbaut, sind Symbole, welche in Kapitel 6 benutzt werden, auch im zweitgenannten Symbolverzeichnis zu finden.
5
2 Literaturüberblick
2 Literaturüberblick
Der Überblick über bisher veröffentlichte Literatur ist in drei Teilen gegliedert. Zuerst wird ein Überblick über Probleme der Schichtplanung im Allgemeinen gegeben. Danach folgen Abschnitte über Artikel, in welchen das Schichtplanungsproblem als Kürzeste Wege Problem (engl.: shortest path problem oder SPP) gelöst wird. Zuletzt werden Veröffentlichungen dargestellt, in welchen die dynamische Programmierung eingesetzt wird. Meist wird die DP als Lösungsverfahren eines Branch & Price verwendet. In den letzten beiden Teilen werden die Artikel anhand der Problembeschreibung (i), der Nebenbedingungen und Zielfunktion (ii), dem Lösungsverfahren (iii) und sonstiger Aspekte (iv) kurz charakterisiert.
Schichtplanung im Allgemeinen
Ernst et al. (2004a, 2004b) gibt einen Überblick über die bisherigen Forschungen in der Schichtplanung (scheduling und rostering) wobei in Ernst et al. (2004a) eine kommentierte Übersicht von 700 Veröffentlichungen zusammengestellt ist. Die am meisten eingesetzte Lösungsmethode ist die ganzzahlige Programmierung (ohne spezielle Lösungsalgorithmen) und Heuristiken, welche zusammen etwa ein Drittel aller betrachteten Veröffentlichungen ausma- chen.Weitere wichtige Methoden (in der Reihenfolge der Verwendung) sind set partitioning- und set covering-Verfahren, welche auch zu den ganzzahligen linearen Programmen zählen, jedoch eine spezielle Struktur aufweisen, und das
Spaltengenerierungsverfahren. 2 Etwa die Hälfte aller Artikel beschäftigt sich
mit Schichtplanungen im öffentlichen Transport, von Pflegekräften oder vom Personal bei Luftfahrtgesellschaften.
Übersichtsartikel zur Schichtplanung bei Krankenschwestern wurden von Cheang et al. (2003) und Burke et al. (2004) veröffentlicht. Einen Überblick über die aktuellen Forschungsergebnisse bei der Crewplanung (crew rostering) bei Luftfahrtgesellschaften gibt Kohl und Karisch (2004). Eine sehr ausführ- licheÜbersicht mit einigen Kurzbeschreibungen von Artikeln, welche den Bereich von Call Center behandeln, gibt Mandelbaum (2006). Diese Arbeit enthält auch Verweise zur Schichtplanung bei Call Centern.
2 Eine Darstellung der Lösungsmethode des Spaltengenerierungsverfahrens bei ganzzahligen
Programmen und eine Übersicht über Artikel gibt Wilhelm (2001).
6
2 Literaturüberblick
Schichtplanung mit einem Kürzeste Wege Problem
Eine ausführliche Grundlage über die allgemeine Formulierung eines, wie in dieser Arbeit vorliegenden, RCSPs wird in Zhu (2005) gegeben. Insbesondere enthält die Arbeit einen ausführlichen Überblick von Artikeln über das RCSP, welches mit einem B&P, CG oder DP gelöst wird.
In den meisten Artikeln, welche sich mit Schichtplanung beschäftigen, wird ein SPP als Lösung eines Subproblems innerhalb eines Spaltengenerierungsverfahrens verwendet.
Desrochers und Soumis (1989) beschreiben ein crew scheduling Problem an- handder Einplanung von Busfahrern im öffentlichen Transport. Es werden den Busfahrern feststehende Arbeitspakete, z.B. gewisse Busrouten, zugeteilt. (ii): Hierbei werden folgende Nebenbedingungen berücksichtigt: eine maximale Anzahl an Arbeitspaketen pro Fahrer, eine einzuhaltende Pause zwischen zwei Arbeitspaketen, eine Höchstarbeitszeit pro Tag und eine maximale Anwesenheitsdauer jedes Fahrers pro Tag, auf welcher seine tatsächliche Arbeit verteilt sein darf. (iii): Das Problem wird mithilfe eines CGs gelöst, wobei das Subproblem ein RCSP ist. Obige Nebenbedingungen werden als Ressourcen eingeführt. Ein Knoten stellt im Netzwerk ein Arbeitspaketbeginn bzw. -ende dar und eine Kante ist dementsprechend Arbeitszeit bzw. Pausenzeit. Das Sub- problem wirdmit einem DP gelöst. (iv): Der beschriebene Algorithmus wurde bereits an zwei Praxisproblemen getestet.
Bei Eveborn und Rönnqvist (2004) wird ein Schichtplan für Arbeiter betrachtet. (ii): Die Flexibilität des Schichtplans ist ähnlich hoch wie in dieser Arbeit. Der Schichtplan ist gestaltbar bezüglich Wochenarbeitszeit, täglicher Arbeitszeit und Anzahl an Arbeitstagen bzw. freien Tagen in Folge. Die Zeit- perioden, inwelchen gearbeitet werden kann, und Präferenzen bzgl. gewisser Schichten können ebenso wie Engpässe in der Deckung der Nachfrage berücksichtigt werden. (iii): Die Erzeugung der Schichtpläne wird als set partitioning Problem dargestellt, welches mit einem B&P gelöst wird. Das Subproblem, die neuen Spalten in jedem Knoten des B&P zu finden, wird als verschachteltes Kürzeste Wege Problem zweier SPP modelliert. Das innere SPP erzeugt zulässige Teilschichten, welche im äußeren SPP zu einem Schichtplan kombiniert werden, wobei die reduzierten Kosten minimiert werden. Das äußere SPP wird anhand eines DPs gelöst. Es wird nicht näher auf die Modellierung der beiden Kürzeste Wege Probleme bzw. auf die Formulierung des DPs eingegangen. (iv): Der Algorithmus wird in der Praxis unter dem Namen SCHEDULER ange- wandt,wobei in den beschriebenen Fällen aufgrund von Zeitbeschränkungen bei der Lösungsfindung nicht optimale Lösungen akzeptiert wurden. Cezik et al. (2001) beschreibt die Erstellung eines Schichtplans über eine Woche in einem Call Center mit deterministischer Nachfrage. Die Schichtplanung weist eine hohe Flexibilität auf. (ii): Die Variabilität in der Planung
7
2 Literaturüberblick
liegt darin, dass die Startzeit der täglichen Schichten flexibel ist, jedoch in einer Woche innerhalb eines Zeitfensters liegen muss. Es müssen überdies zwei Tage pro Woche arbeitsfrei sein, von denen einer am Wochenende liegt. Die Gesamtlänge einer Tagesschicht, die Einhaltung einer Mittagspause und die Verrechnung von Überstunden werden zudem berücksichtigt. Das Ziel ist die Minimierung der Arbeitskosten und der nicht gedeckten Nachfrage. (iii): Ausgehend von einem shift scheduling Problem, welches zulässige Tagesschichten erstellt, werden die Kombinationen dieser Schichten anhand eines Netzwerks überprüft. Knoten repräsentieren eine Tagesschicht bzw. einen freien Tag und die Größe des Flusses auf den Kanten stellt dar, wie viele Arbeiter eine konkrete Kombination dieser Tagesschichten wählt. Das Problem wird als ganzzahliges Programm (engl.: integer programming bzw. IP) gelöst. (iv): Zeitanalysen mit Daten aus einem Call Center werden präsentiert, wobei in vertretbarer Zeit fast-optimale Lösungen gefunden werden können.
Jaumard et al. (1998) löst die Schichtplanung für Pflegekräfte in einem Krankenhaus. Es werden sieben verschiedene feste Schichttypen über drei Tageszeiten (Tag, Abend, Nacht) berücksichtigt. (ii): Als Nebenbedingungen werden die maximale Arbeitszeit, die Einhaltung einer Anzahl an arbeitsfreien Wochenenden und die Einplanung von Urlaub berücksichtigt. Überdies ist der Wechsel zwischen Schichttypen und die Anzahl der in Folge geleisteten Schichten eines bestimmten Typs beschränkt. Zudem wird das Verhältnis von Schichttypen innerhalb des persönlichen Arbeitsplans berücksichtigt. (iii): Es wird ein B&P verwendet, wobei das Subproblem als RCSP formuliert wird. Im Subproblem werden für die einzelnen Pflegekräfte Arbeitspläne erzeugt. Zur Lösung des RCSPs wird ein pseudo-polynomialer Algorithmus über zwei Phasen angege- ben,welcher ausführlich in Jaumard et al. (1996) erläutert wird. In Mason und Smith (1998) wird eine allgemein Schichtplanung über mehrere Wochen mit festen Schichttypen dargestellt. (ii): Ziel ist die Maximierung der Qualität eines Schichtplans, wobei diese durch die Verteilung der Tage mit Arbeit und der freien Tage, der Präferenzen für bestimmte Schichttypen und dem Übergang zwischen zwei Schichttypen (z.B. von Spät- zu Frühschicht) bestimmt ist. (iii): Das Problem wird mithilfe eines CGs gelöst. Hierbei sorgt das als IP formulierte Masterproblem (MP) für die Deckung der Nachfrage. Im Subproblem, welches als Netzwerkfluss Problem dargestellt ist, wird an- handdes Netzwerks die beste Kombination verschiedener Tagesschichten zu einer Schicht über n Tage festgestellt. (iv): Das Netzwerk ist ähnlich wie in Jaumard et al. 1998 aufgebaut, enthält aber keine Ressourcenrestriktionen auf den Kanten. Eine Zeitanalyse wird anhand einer Schichtplanung für Krankenschwestern gegeben.
8
2 Literaturüberblick
Schichtplanung mit dynamischer Programmierung
Ernst et al. (2004a) zählt 17 Veröffentlichungen, welche die dynamische Programmierung als Lösungsprinzip für ein scheduling oder rostering Problem verwenden. In den meisten dieser wird DP zur Lösung des Subproblems eines CGs verwendet, wobei das Subproblem als Kürzeste Wege Problem mit oder ohne Ressourcenbeschränkung modelliert wird.
In Yunes et al. (2000) wird ein Crew Scheduling Problem anhand des Beispiels von Busfahrern einer brasilianischen Metropole gelöst. (ii): Eine Menge an Bustouren muss einer Menge an bestehenden Fahrern zugeteilt werden, wobei die Kosten für den Einsatz der Fahrer minimiert wird. Hierbei muss eine maximale Arbeitszeit pro Tag und eine minimale Pausenzeit zwischen den Schichten berücksichtigt werden. Überdies muss jeder Fahrer seinen Arbeitstag am selben Busdepot beenden, an dem er die erste Tour begonnen hat. (iii): Das Problem ist als hybrides Modell aus ganzzahliger Programmierung und constraint programming modelliert und wird mit einem B&P gelöst. Das Sub- problem, welchesdie Dienstblöcke erstellt, wird ähnlich wie in Desrochers und Soumis (1989) als RCSP modelliert und mit einem DP gelöst. (iv): Es werden jedoch keine detaillierten Informationen über die Modellierung des RCSPs gegeben. Die beschriebene Methode löst Probleme für große Instanzen mit 150 Busrouten und 12 Millionen zulässigen Diensten. In Beliën und Demeulemeester (2006) werden für ein belgisches Krankenhaus die Einplanung von auszubildenden Ärzten beschrieben. Den Ärzten muss ein Jahresplan zugeteilt werden, welcher die Stationen festlegt, auf denen sie in Abhängigkeit ihrer gewählten Spezialisierung assistieren. (ii): Hierbei liegen feste Arbeitszeiten vor. Folgende Nebenbedingungen werden berücksichtigt: 1) Bestimmte Stationen müssen von jedem Arzt durchlaufen werden, wobei eine Mindest- und Höchstdauer für jede Station vorgeschrieben ist. 2) Die Zeit in einer Station kann zeitlich nicht unterbrochen werden. 3) Präferenzen von Ärzten bzgl. ihrer zeitlichen Verfügbarkeit werden als soft-constraint berücksichtigt. (iii): Das Problem wird mit einem B&P gelöst, wobei beim Subproblem nicht wie üblich Spalten für die einzelnen Ärzte generiert werden, sondern Spalten für die zu erfüllenden Aufgaben. Hierbei ist das Subproblem als RCSP modelliert und wird als DP gelöst. Jede Stufe stellt eine Zeitperiode dar, wobei ein Zustand durch die Kosten für die Einplanung der Ärzte definiert wird. (iv): Der Algorithmus kann erweitert werden, um die n besten Spalten zu generieren.
Eine gemeinsame Betrachtung der Schichtplanung von Krankenschwestern und dem Erstellen des Operationsplans für Chirurgen wird in Beliën und Demeulemeester (2008) aufgezeigt. (ii): Bei der Schichtplanung werden drei Schichttypen eingeplant, wobei die Anzahl an Tagen mit Pause bzw. Arbeit in Folge beschränkt ist. Zudem ist die gesamte wöchentliche Arbeitszeit, die
9
2 Literaturüberblick
Anzahl an Schichten in Folge, die Arbeit am Wochenende und der Übergang zwischen verschiedenen Schichttypen restringiert. (iii): Das Problem ist als IP formuliert und als B&P gelöst. Das Subproblem zur Generierung der einzelnen Schichtpläne ist ein Kürzteste Wege Problem und wird als DP gelöst. Die Erstellung des Operationsplans erfolgt auch mithilfe eines B&Ps, wobei das Subproblem als ein MIP dargestellt ist. Der Operationsplan bestimmt den Bedarf an Krankenschwestern. Die gemeinsame Betrachtung erfolgt durch ein lineares Programm, in welchem die Schichtpläne von Krankenschwestern und die Arbeitszeit der Chirurgen kombiniert werden. Die in dieser Arbeit behandelte Problemstellung ist eine Reformulierung des Subproblems vom Spaltengenerierungsverfahren, welches in Brunner et al. (2010) beschrieben wird. Dort wird die Schichtplanung von Ärzten behandelt. Die Besonderheit liegt in der großen Flexibilität des Ansatzes, der variable Startzeiten, Arbeitsdauern, Überstunden und einen Bereitschaftsdienst berücksichtigen kann, wobei die maximale Arbeitszeit eines Tages und einer Woche eingehalten werden und eine tägliche Mittagspause und Mindestpausenlänge zwischen zwei Schichten zu berücksichtigen sind. Das beschriebene Subproblem, welches als MIP gelöst wird, liefert nur für einfache Probleminstanzen eine Lösung in vertretbarer Zeit. Daher ist eine Reformulierung des SPs notwendig.
Der Literaturüberblick zeigt, dass oftmals bei Schichtplanungsproblemen, welche mit einem B&P gelöst werden, das Subproblem als Kürzeste Wege Problem reformuliert und auch mit einem DP gelöst wird. Bisher wurde jedoch kein Ansatz veröffentlicht, welcher durch die Gestaltung der Nebenbedingungen eine hohe Flexibilität bei der Erstellung des Schichtplans aufweist und bei welchem die Schichten implizit modelliert werden, wie es in dieser Arbeit der Fall ist.
10
3 Beschreibung des Schichtplanungsproblems
3 Beschreibung des Schichtplanungsproblems
In diesem Kapitel wird das Schichtplanungsproblem eingeführt. Zuerst werden häufig vorkommende Begriffe erklärt. Anschließend wird in Kapitel 3.2 der
Zusammenhang der Schichtplanung zum Spaltengenerierungsverfahren 3 aus
Brunner et al. (2010) dargestellt. Im letzten Abschnitt werden die Nebenbedingungen erläutert.
3.1 Begriffe der Schichtplanung
In dieser Arbeit werden insbesondere folgende Begriffe verwendet. Um Unklarheiten zu vermeiden, werden diese nun definiert.
Arbeit
Die reguläre Tätigkeit eines Arztes, welche eine Mindest-
Dienst Ein Dienst ist die Abkürzung für den Bereitschaftsdienst.
Schicht
Arzt in der Arbeit oder im Dienst tätig ist. Schichtplan Ein Schichtplan stellt über einen begrenzten Zeithorizont
Mittagspause
Während einer Arbeit muss ein Arzt eine Mittagspause ver-
Pause Nach einer Schicht muss ein Arzt eine gewisse Zeit pausie- ren,in welcher keine neue Schicht begonnen werden darf.
3 Für eine allgemeine Darstellung des Spaltengenerierungsverfahrens und mögliche Anwen-
dungen sei auf Desaulniers et al. (2005) verwiesen.
11
3 Beschreibung des Schichtplanungsproblems
3.2 Spaltengenerierungsverfahren zur Lösung der
Schichtplanung
Ein Schichtplan über sieben Tage mit 24 Perioden pro Tag, welcher in Abbildung 1 in Kapitel 1 als Matrix mit 7 · 24 = 168 Einträge veranschaulicht wird, kann ebenso als eine Spalte mit 168 Zeilen dargestellt werden. Hierbei entsprechen die ersten 24 Zeilen dem ersten Tag des Schichtplans, die Zeilen 25-48 dem zweiten Tag usw.
Die Generierung eines zulässigen Schichtplans als Spalte entspricht dem Subproblem aus dem Spaltengenerierungsverfahren, welches in Brunner et al. (2010) beschrieben wird. Dort wird das CG im Rahmen eines Branch&Price verwendet. Das Subproblem wird dort als ein MIP modelliert und gelöst. Ziel dieser Arbeit ist es, dieses SP als ein Netzwerkflussproblem zu reformulieren, und anschließend geeignet zu lösen, um die Lösungszeit zu verbessern. Bei dem ursprünglichen CG werden für 16 Anästhesisten des Klinikums rechts der Isar Schichtpläne gesucht, die den Bedarf an Ärzten decken und die entstehenden Kosten optimieren. Im Masterproblem werden hierbei die Kosten minimiert, welche durch Zuteilung von Ärzten auf die Schichtpläne entstehen. Hierbei würde durch die Generierung aller möglichen Schichtpläne am Anfang zu viele Kombinationsmöglichkeiten berücksichtigt werden müssen, sodass die Schichtpläne nacheinander im SP erzeugt werden. Im Lösungsprozess wird das MP im ersten Schritt mit selbst erstellten Schichtplänen initialisiert und relaxiert gelöst. Hierbei wird die Ganzzahligkeitsbedingung der Anzahl an eingeteilten Ärzten auf reelle Zahlen gelockert. Die Werte der Dualvariablen aus dem relaxierten MP werden dann benützt, um das SP zu lösen und mit Hilfe der reduzierten Kosten die Güte eines dort erzeugten Schichtplans zu bewerten.
Im MP gibt es drei Nebenbedingungen (NB), denen die in Klammern ange- gebenenDualvariablen zugeordnet werden. Diese sind:
NB I
(δ
dem ab
) stellt ein
ausreichendes
Angebot
an
Ärzten zu jeder Peri-
NBII (δ D ab )
im Dienst benötigt werden, zu jeder Periode (a, b) sicher. NB III (δ conv ) sorgt dafür, dass über alle Schichtpläne nicht mehr Ärzte
3 Beschreibung des Schichtplanungsproblems
Abweichend von der Notation in Brunner et al. (2010) wird eine Periode nicht mit t sondern mit (a, b) notiert.
Ziel des MPs ist es, die Kosten zu minimieren. Die zu minimierenden Kosten, die mit den in Klammer angegebenen Kostenparameter bewertet werden, bestehen aus den anfallenden Überstunden o w (c over ) in einer Woche w und den ausbezahlten Überstunden h w (c paid ). Eine Überstunde der Woche w wird ausbezahlt, wenn diese nicht durch Fehlstunden in der darauf folgenden Woche w + 1 ausgeglichen werden kann. Für die Kosten eines Schichtplans c sched gilt:
Zudem sind die Kosten von externen Ärzten zu berücksichtigen, welche benötigt werden, falls die Nachfrage nicht durch anwesende Ärzte gedeckt werden kann. Würden externe Ärzte für die Deckung der Nachfrage nach regulärer Arbeit bzw. Dienst benötigt werden, so würde dies durch den Wert der entsprechenden nichtnegativen Dualvariable δ dem bzw. δ D ab gezeigt werden. Die
ab
Dualvariable δ dem ist in Perioden (a, b), in welchen im Masterproblem keine
ab
Nachfrage nach Ärzten herrscht, Null, d. h. beispielsweise von 21 bis 7 Uhr. δ D ab ist so modelliert, dass diese jeweils nur für die erste Periode in welcher ein Dienst begonnen wird (also beispielsweise von 8 bis 9 Uhr) ungleich Null sein kann. Für alle anderen Perioden nimmt diese den Wert Null an. Daher geht diese Information über die Werte der Dualvariablen in das SP ein und muss dort nicht explizit behandelt werden. Fixkosten, wie monatliche Gehälter, werden nicht berücksichtigt, da die Anzahl der eingestellten Ärzte fest ist und die entstehenden Fixkosten daher nicht minimiert werden können. Die Güte eines im SP erzeugten Schichtplanes wird mit Hilfe der reduzierten Kosten c einer Spalte des MPs festgestellt. Hierbei ist
wobei x ab bzw. y ab eine Binärvariable ist, welche Eins ist, falls in der Periode (a,b) gearbeitet bzw. ein Dienst ausgeführt wird. Für jede Iteration beim CG werden neue Werte der Dualvariablen vom MP verwendet, um die reduzierten Kosten zu berechnen. Können für entsprechende Werte der Dualvariablen δ dem ab ,δ D ab und δ conv nur noch positive Werte für c
(Zielfunktion des Subproblems) erreicht werden, so können keine weitere Spalten erzeugt werden, die den Zielfunktionswert des MPs verbessern würden und die optimale Lösung des MPs ist gefunden.
Die Zielfunktion wird in den folgenden Kapiteln wegen den zusätzlich erläuterten Nebenbedingungen ergänzt. Allgemein ist in der Zielfunktion der Parameter δ conv nicht berücksichtigt. Der Wert dieser Dualvariable stellt im
13
3 Beschreibung des Schichtplanungsproblems
Subproblem nur eine nichtnegative Konstante dar, welche in der Zielfunktion unabhängig vom erzeugten Schichtplan subtrahiert wird. Es gilt für die reduzierten Kosten c Folgendes.
c δ conv 0
In der vorliegenden Arbeit wird δ conv = 0 angenommen und somit kann dieser Parameter weggelassen werden, ohne dass dies Einfluss auf die Lösung hätte.
3.3 Nebenbedingungen der Schichtplanung
Das Subproblem enthält Nebenbedingungen, welche für einen zulässigen Schicht- plan erfülltsein müssen. Die Modellierung der folgenden Nebenbedingungen als MIP erfolgt in Kapitel 5.
• Jede Arbeitsschicht hat eine Mindest- und Höchstarbeitsdauer R A bzw. R A , wobei eine Pause nicht zur Arbeitszeit gerechnet wird.
• Jeder Arzt besitzt eine maximale Wochenarbeitszeit R WA . Die Wochen- arbeitszeit ergibtsich aus den gearbeiteten Schichten und der nicht aus- bezahltenArbeitszeit bei den Diensten. Eine Mindestwochenarbeitszeit wird nicht modelliert. Diese ist im Tarifvertrag festgesetzt, jedoch werden fehlende Stunden bis zur Mindestwochenarbeitszeit für Forschung eingesetzt und brauchen deswegen nicht berücksichtigt werden.
• Nach einer Arbeitsschicht oder einem Dienst muss eine Pause einer definierten Mindestlänge R P eingehalten werden.
• Jeder Arzt hat eine vereinbarte Vertragsarbeitszeit v pro Woche w. Diese kann durch Überstunden o w bis zur maximalen Wochenarbeitszeit R WA
überschritten werden.
• Überstunden o w in einer Woche w werden ausbezahlt, falls sie durch „Fehlstunden“ u w+1 in der darauf folgenden Woche w + 1 nicht kompensiert werden können.
• In jeder Arbeitsschicht muss eine Mittagspause stattfinden, welche nach mindestens T pre bzw. höchstens T late Arbeitsperioden stattfindet. Nach der Mittagspause muss noch eine Mindestdauer T post gearbeitet werden.
• Die einzelnen Arbeitsschichten können zu beliebigen Zeitpunkten in einer Woche starten, wobei der Unterschied zwischen dem frühesten und spätesten Startzeitpunkt in einer Woche auf T win begrenzt ist.
• Pro Woche kann ein Arzt für maximal N D Dienste eingeteilt werden.
14
4 Formulierung als Kürzeste Wege Problem
4 Formulierung als Kürzeste Wege Problem
Das Subproblem wird im Folgenden als Kürzeste Wege Problem mit Ressourcenbeschränkung im Rahmen eines Netzwerks modelliert. Jaumard et al. (1998) beschreiben in ihrer Arbeit einen Ansatz, welcher die Planung der Schichten von Krankenschwestern anhand eines RCSPs als Netzwerkfluss optimiert. Die Arbeit behandelt jedoch die verschiedenen möglichen Schichten und ihre möglichen Kombinationen explizit.
In einem ersten Schritt wird der Graph für das Kürzeste Wege Problem ein-geführt. 4 Dieser wird im zweiten Teilkapitel um die Ressourcenbeschränkungen
ergänzt.
4.1 Beschreibung des Graphen
Im Folgenden wird der Aufbau des Graphen beschrieben und die entsprechende Notation eingeführt. Eine Darstellung für den Graphen zeigt Abbildung 2.
Graph Sei G = (V, A) ein gerichteter, azyklischer Graph mit n = |V| topologisch sortierten Knoten v 1 , ...v n und m = |A| Kanten. 5 Eine gerichtete Kante
(im Weiteren nur als Kante bezeichnet) von v a nach v b wird im Folgenden als (a, b) ∈ A, mit a, b ∈ V bezeichnet. Es gilt hierbei, dass 1 a < b n ist, d. h. dass alle Pfeile in Richtung Senke gerichtet sind. Es seien v 1 = q und v 2 = q +1
das Quellknotenpaar 6 und v n−1 = t − 1 und v n = t das Senkenknotenpaar. Die Knotenmenge V wird in zwei disjunkte Mengen unterteilt, den oberen Knoten V und den unteren Knoten V, wobei V ∪ V = V, V ∩ V = {} und |V| = |V| gilt.
Knoten i, j und a, b Im Weiteren werden in dieser Arbeit, wenn nicht anders gekennzeichnet, stets angenommen, dass i ∈ V und j ∈ V sind. Des Weiteren seien a,b zwei beliebige Knoten mit a, b ∈ V.
4 Graphen, Netzwerke und Kürzeste Wege Probleme werden ausführlich in Ahuja et al.
(1993) und Jungnickel (1994) dargestellt.
5 Die Notation |A| beschreibt die Mächtigkeit der Menge A.
6 Der erste Quellknoten q wird in der Nummerierung im Folgenden mit q = 1 festgesetzt.
15
4 Formulierung als Kürzeste Wege Problem
Knotenpaar
Ein Knotenpaar [i,j] besteht
aus
einem obenliegenden Knoten
i
∈ V
und einem untenliegenden Knoten
j
∈ V,
wobei es nicht möglich ist, von
einem dieser Knoten über Kanten zum anderen zu gelangen.
Vorgänger und Nachfolger Jeder Knoten a ∈ V \ {q, q + 1, t − 1, t} besitzt genau zwei direkte Vorgänger- und zwei direkte Nachfolgerknoten. Die zwei Vorgänger- bzw. Nachfolgerknoten von a werden durch die Vorgängerrelation
a − bzw. Nachfolgerrelation a + bestimmt. Hierbei gibt a − ∈ V bzw. a + ∈ V den Vorgänger- bzw. Nachfolgerknoten von a aus den unteren Knoten an.
Entsprechend ist a − ∈ V bzw. a + ∈ V der Vorgänger- bzw. Nachfolgerknoten
von a aus den oberen Knoten. Die Knoten sind topologisch sortiert und so nummeriert, dass im Knotenpaar [i,j] die Zahl des unteren Knotens j=i+1 ist. Aus den oben genannten ergeben sich mit einem Knotenpaar [i,j] folgende Beziehungen der Knoten zueinander, welche für das Verständnis der späteren Formulierung als MIP (siehe Kapitel 5.1) notwendig sind:
• j = (j − 2) + = (i − 2) + • i − 2 = i − = j −
• j − 2 = i − = j − • i + 2 = i + = j +
• i = (j − 2) + = (i − 2) + • j + 2 = i + = j +
Zeitpunkt und Periode Jeder Knoten repräsentiert einen Zeitpunkt, wobei dieser derselbe für ein Knotenpaar ist. Eine Kante (a, b) ∈ A stellt eine Periode (a, b) zwischen den Zeitpunkten a und b dar.
Arbeit und Pause Ist bei einer Kante (a, b) der Endknoten b ∈ V, so repräsentiert diese Kante eine Arbeitsperiode. Ist der Endknoten b ∈ V, so stellt diese Kante eine Pausenperiode dar.
In Abbildung 2 sind die Kanten (i − 2, i) bzw. (j − 2, i) entsprechend eine Arbeitsperiode und die Kanten (i − 2, j) bzw. (j − 2, j) eine Pausenperiode. Wird beispielsweise als Periodendauer eine Stunde gewählt, so stellen die Knoten i − 2 und j − 2 jeweils den Zeitpunkt 9 Uhr dar und die Perioden (i − 2, i) bzw. (j − 2, i) repräsentieren die Zeit zwischen 9 und 10 Uhr, in welcher gearbeitet wird.
Der Unterschied innerhalb der beiden Kanten ist folgender: Die Kanten (i-2, i), welche mit einem oberen Knoten beginnen und enden, stellen eine Fortsetzung einer Arbeitsperiode dar, d. h. in der Periode, welche zum Zeit- punkt i − 2endet, wurde bereits gearbeitet. Eine Kante mit untenliegendem Anfangs- und obenliegenden Endknoten (j − 2, i) stellt einen Übergang von Pause zu Arbeit dar, d. h. bis zum Zeitpunkt j − 2 wurde pausiert und an- schließendwurde die Arbeit aufgenommen. Analog gilt für die Kanten, welche
16
4 Formulierung als Kürzeste Wege Problem
in einem unteren Knoten enden, dass (j − 2, j) mit j − 2, j ∈ V die Fortsetzung einer Pause darstellen, wohingegen (i − 2, j) mit i − 2 ∈ V, j ∈ V die erste Pausenperiode nach einer Arbeit ist. In Kapitel 5.1.1 werden diesen Kanten binären Entscheidungsvariablen zugeordnet. Das nachfolgende Beispiel und Abbildung 3 verdeutlichen den oben beschriebenen Zusammenhang.
Pfad Ein Pfad ˜ P = (e 1 , ...e n ) ist eine Sequenz von Kanten, beginnend bei Kante e 1 bis Kante e n . Diese kann auch als Sequenz der durchschrittenen Knoten P = (v 1 , v 2 , ..., v k−1 , v k , ...., v n , v n+1 ) dargestellt werden, wobei v k ein direkter Nachfolger von v k−1 und v 1 = {q ∨ q + 1} und v n+1 = {t − 1 ∨ t} sind. 7 Ein Pfad repräsentiert einen Schichtplan. Kanten (i − , i) stellen eine Arbeitsperiode im Schichtplan dar und Kanten (j − , j) eine Pausenperiode.
Beispiel In Abbildung 3 ist als Veranschaulichung ein Graph über 5 Perioden dargestellt, mit q = 1 und t = 12. Eine durchgezogene Kante bedeutet, dass diese Kante auf dem Pfad benutzt wird, wohingegen eine gestrichelte Kante unbenutzt bleibt. Der gezeichnete Pfad gibt eine Schicht an, in welcher der Arzt in der ersten Periode pausiert (die untere Kante (2, 4) wird auf dem Pfad benutzt). Danach fängt er in der zweiten Periode an zu arbeiten. Dies wird durch Kante (4, 5) dargestellt. Er setzt seine Arbeit in der dritten Periode mit Kante (5, 7) fort und hat die erste Pause in der vierten Periode. Kante (7, 10) stellt diesen Übergang der Arbeit auf den oberen Knoten zur Pause auf den unteren Knoten dar. In der letzten Periode (10, 12) pausiert der Arzt eine weitere Periode. Zu beachten sind auch die unterschiedliche Interpretationen einer der vier verschiedenartig laufenden Kanten im Schichtplan. Bei Kante (2, 4) bzw. (10, 12) wird eine Pause fortgesetzt. Kante (5, 7) repräsentiert die Fortsetzung einer Arbeit bzw. eines Dienstes. Die erste Periode einer Pause kennzeichnet Kante (7, 10) und Kante (4, 5) stellt die erste Arbeitsperiode dar.
7 Es gilt für die Anzahl der durchschrittenen Knoten vom Quellknotenpaar zum Senkekno-
4 Formulierung als Kürzeste Wege Problem
Kantengewichte Um den Aufbau des Netzwerkes zu vervollständigen, werden den Kanten des Graphen G Gewichte zugeordnet, sodass der bisherige
Graph G = (V, A) zu G = (V, A, δ) erweitert wird. Hierbei entspricht δ einem Vektor der nichtnegativen Dualvariablenwerte δ = (δ dem ab , δ D ab ) aus dem
Master Problem des Spaltengenerierungsverfahrens von Brunner et al. (2010). Die Dualvariablenwerte hängen von der Periode (a, b) ab. Mit Hilfe dieser können die reduzierten Kosten des neuen Schichtplans berechnet werden. Es gilt
δ ∈ R + 0 × R + 0 .
Die Kantengewichte δ sind für Pausenperioden stets Null. In Perioden, in 0. Der Wert der Dualvariable für denen gearbeitet werden kann, ist δ dem
ab
den Dienst ist stets Null, bis auf die Periode, in welcher der Dienst gestartet ab 0. werden kann. In dieser Periode ist δ D
4.2 Erweiterung um Ressourcenbeschränkungen
Der bisherige Graph G = (V, A, δ) wird in diesem Kapitel erweitert. Es werden
Ressourcen hinzugefügt, um die Abbildung der verschiedenen Nebenbedingungen eines Schichtplans zu ermöglichen. Eine ausführliche Grundlage über die generelle Formulierung eines RCSPs wird in Zhu (2005) und Grünert und Irnich (2005b) gegeben.
Ressourcen Es werden vier verschiedene Ressourcenvariablen eingeführt, welche für Arbeit A, Wochenarbeit WA, Pause P und Dienst D stehen. Diese Ressourcenvariablen R r (a) mit r ∈ T = {A, WA, P, D} werden jedem Knoten a ∈ V zugeordnet. 8 Sie sind ganzzahlig und zählen den Verbrauch an der
Ressource r bis zum Zeitpunkt a, d. h. die Dauer, welche bis zum Zeitpunkt a beispielsweise gearbeitet oder pausiert wurde.
Wenn die Variable R P (26) = 7 ist, bedeutet dies, dass im Knoten 26, d. h. nach Ablauf von zwölf Perioden, sieben Perioden pausiert wurden. Es ist zu beachten, dass die Ressourcen „zurücksetzbare“ Ressourcen sind, d. h. sie können in bestimmten Situationen auf einen Anfangswert zurückgesetzt werden, z.B. werden die Ressource P , A und D am Ende der ersten Periode einer Pause, Arbeit oder Dienstes auf den Wert Eins gesetzt. Die Ressource WA wird am Anfang der Woche auf den Wert Null gesetzt.
Ressourcenfenster Ein Ressourcenfenster [R r , R r ] a wird auf jedem Knoten a festgesetzt, welches den Bereich festsetzt, in dem sich die Ressource r im Knoten a befinden muss. Dieses kann für jeden Knoten individuell definiert werden. Für die Modellierung ist es ausreichend zwischen Knoten aus V bzw. V zu unterscheiden. Hierbei sind, da es keine Mindestwochenarbeitszeit und
8 Da R WA (a) für a ∈ V stets Null ist, könnte R WA (a) nur für a ∈ V definiert werden. Aus
Gründen der einheitlichen Nomenklatur wird darauf jedoch verzichtet.
18
4 Formulierung als Kürzeste Wege Problem
Höchstpausendauer gibt, R WA = 0 bzw. R P = ∞ und können daher aus der
Problemformulierung weggelassen werden.
Mit Hilfe der Ressourcenfenster und der Ressourcenvariablen können die Mindest- und Höchstdauern von Arbeit, Wochenarbeit, Pause und Dienst modelliert werden.
Ressourcenverbrauch Es könnte ein Ressourcenverbrauch u ab mit (a, b) ∈ A definiert werden. Dieser wäre auf jeder Kante (a, b) für alle Ressourcen aus T jeweils Eins, da jede Kante eine einstündige Periode darstellt und der Verbrauch an Arbeit, Dienst bzw. Pause pro Periode somit genau Eins ist. Da in Kapitel 5 einer Kante (a, b) binäre Entscheidungsvariablen zugeordnet werden, welche Eins sind, wenn diese Kante durchschritten wird, kann der Ressourcenverbrauch weggelassen werden. Wird eine Kante (a, b) durchschritten, so ist die entsprechende Binärvariable Eins und kann für die Bestimmung des Ressourcenverbrauchs benutzt werden.
Die Erweiterung des Modells zu einer feineren Zeitunterteilung der Perioden ist möglich, indem die Ressourcenfenster entsprechend erhöht werden. Beispielsweise müsste bei einer halbstündigen Periodeneinteilung die maximale Wochenarbeitszeit von 48 auf 96 Einheiten verdoppelt werden.
Abb. 4: Graph G mit Ressourcenvariablen, Ressourcenfenstern und
Kantengewichten.
Zulässiger Pfad Ziel im RCSP ist es, einen zulässigen „kürzesten“ Pfad von einem Quellknoten zu einem Senkeknoten zu finden. Würde man die Gewichte als Entfernung zwischen zwei Knoten interpretieren, würde man eigentlich den
längsten Pfad von der Quelle zur Senke suchen, da die Gewichte δ ab einer
Periode (a, b) nichtnegativ sind. Jedoch wird in der Zielfunktion
4 Formulierung als Kürzeste Wege Problem
(vlg. Kapitel 3 bzw. 5) über die negativen δ ab summiert, wodurch sich ein
„kürzester“ Pfad ergibt. Der gefundene Pfad entspricht einem Schichtplan für das Subproblem.
Abbildung 4 zeigt den Graphen G mit den Ressourcenfenstern, Ressourcenvariablen und Kantengewichten. Um den Graphen übersichtlich zu halten, sind die Ressourcenfenster bzw. Ressourcenvariablen nur für jeweils zwei Knoten gezeigt, obwohl diese auf jedem Knoten definiert sind. Die Kantengewichte sind nur für diejenigen Kanten eingezeichnet, an denen diese ungleich Null sein können (wobei δ D (i−2)i nach Definition stets Null ist). Dies sind die Kanten, welche eine Arbeits- bzw. Dienstperiode darstellen.
20
5 Gemischt ganzzahliges Programm
5 Gemischt ganzzahliges Programm
Aufbauend auf der Modellierung als RCSP über den Graphen G = (V, A, δ)
wird im folgenden Abschnitt das Problem, einen zulässigen „kürzesten“ Pfad von der Quelle zur Senke zu finden, als gemischt ganzzahliges Programm formuliert. Zuerst wird das Grundmodell des MIPs beschrieben. Dieses berücksichtigt Mindest- und Höchstdauern an Arbeit, Wochenarbeit und Pause. In Abschnitt 5.2 wird dieses Modell erweitert. Nebenbedingungen für den Dienst, die Überstunden, die Mittagspause und das Zeitfenster der verschiedenen Startzeitpunkte werden ergänzt. Das vollständige Modell des MIPs mit allen Nebenbedingungen ist in Anhang A aufgeführt.
Für eine Beschreibung anderer Lösungsverfahren sei auf Zhu (2005) und Ziegelmann (2001) verwiesen. Das Buch von Williams (1999) stellt ein gutes Nachschlagewerk dar, um IPs und MIPs zu modellieren.
5.1 Beschreibung des grundlegenden MIPs
In diesem Kapitel wird das grundlegende MIP beschrieben. Zuerst wird die Notation und das gemischt ganzzahlige Programm dargestellt. Im nächsten Abschnitt werden die Nebenbedingungen erläutert. Als letztes wird begründet, warum die Ressourcenvariablen relaxiert werden können.
5.1.1 Notation des MIPs
Um festzustellen, welche Kante auf dem Graphen benutzt wurde, wird für Arbeit und Pause die binären Entscheidungsvariablen x i − i bzw. x j − j mit i ∈ V und j ∈ V definiert. Sei ⎧
⎪ ⎩
und
⎧
⎪ ⎩
Die beiden Variablen x i − i bzw. x j − j unterscheiden sich darin, auf welchen Kanten sie verlaufen. Da x i − i auf Kanten mit einem oberen Endknoten liegt, gibt diese Variable an, ob in einer Periode gearbeitet wird. Die Variable x j − j ist entsprechend auf einer Kante mit unterem Endknoten und gibt eine Pausen- periodean.
Den Graphen mit den Binärvariablen zeigt Abbildung 5. Aus Gründen der Übersichtlichkeit sind die in Abbildung 4 angegebenen Ressourcenvariablen,
21
5 Gemischt ganzzahliges Programm
Ressourcenfenster und Kantengewichte nicht noch einmal dargestellt. Man erkennt, dass die Kanten mit den Binärvariablen x (j−2)i bzw. x (i−2)i eine Arbeits- periode unddie Kanten mit x j(j+2) bzw. x i(j+2) eine Pausenperiode darstellen.
x (i−2)i
Abb. 5: Graph G mit Binärvariablen von Arbeit und Pause.
Von den vier binären Entscheidungsvariablen einer Periode (z.B. x (i−2)i , x (j−2)i x (i−2)j und x (j−2)j ) nimmt genau eine den Wert Eins an. Aus der Kombination der Binärvariablen kann somit ein Schichtplan erstellt werden. Abbildung 1 in Kapitel 1 zeigt einen Ausschnitt eines solchen Plans über sieben Tage (wobei in dem Plan auch ein Dienst berücksichtigt ist). Um das Grundmodel als MIP zu lösen, wird folgende Notation verwendet. Diese beinhaltet teilweise Notationen, welche erst in der Erweiterung benötigt werden. Um Wiederholungen zu vermeiden, werden diese bereits an geeigneter Stelle in diesem Kapitel erwähnt.
Indizes und Mengen
A Index für Arbeit WA Index für Wochenarbeit P Index für Pause D Index für Dienst
W Menge der Wochen im Planungshorizont, W ∈ {1, 2, ...} T Menge der Tage in einer Woche V Menge aller Knoten V Menge der obenliegenden Knoten, mit V = {i|i mod 2 = 1 : i ∈ V} ⊂ V V Menge der untenliegenden Knoten, mit V = {j|j mod 2 = 0 : j ∈ V} ⊂ V s V Teilmenge der obenliegenden Knoten bei dem seit Beginn der Woche
w
s w eine Periode vergangen ist, mit V w = {i|i mod K w = 3 : i ∈ V} ⊂ V T Menge der Ressourcen, mit T = {A, WA, P, D} Index eines obenliegenden Knotens, mit i ∈ V i
Index eines untenliegenden Knotens, mit j ∈ V j w Index für Wochen
22
5 Gemischt ganzzahliges Programm
r Index für Ressourcen, mit r ∈ A
q Index des Knotens mit der kleinsten Nummer, mit q = 1 t Index des Knoten mit der höchsten Nummer, mit t = |V|
Parameter
K w Anzahl an Knoten pro Woche, mit K w = (|V| − 2)\|W| Höchstdauer der Ressource r ∈ T R r
Mindestdauer der Ressource r ∈ T R r δ dem Wert der Dualvariable der Nebenbedingung I aus dem Masterproblem,
ab
mit (a, b) ∈ A Positive, genügend große Zahl 9 M
Binäre Entscheidungsvariablen
x i − i 1, wenn der Arzt in Periode (i − , i) arbeitet, 0 sonst x j − j 1, wenn der Arzt in Periode (j − , j) pausiert, 0 sonst
Ganzzahlige Entscheidungsvariablen
R r (a) Höhe der Ressource r ∈ T im Knoten a ∈ V
Subproblem
unter den Bedingungen, dass
NB: Flusserhaltung
r∈(q) +
p∈a −
r∈(t−1) −
NB: Ressourcenverbrauch R A (i) R A (i − ) + x i − i ∀i ∈ V (5)
R A (i) R A (i − ) + x i − i − M · x i − i ∀i ∈ V (6) ∀i ∈ V R A (i) M (1 − x i − i ) + 1 (7) ∀i ∈ V R A (i) x i − i (8)
9 Für M muss gelten:
M max{R A − 1, R D − 1, R P , 1 2 · K − T win , T pre − 1, T post + 1 − R A , R A − T late + 1}.
Einige dieser Parameter werden später in Kapitel 5.2 eingeführt.
23
5 Gemischt ganzzahliges Programm
R A (j) = R A (j − ) + M (1 − x j − j ) ∀j ∈ V (9)
s R WA (i) = x i − i + x i − i ∀i ∈ V (10)
w
s R WA (i) = R WA (i − ) + x i − i + x i − i ∀i ∈ V \ V (11)
w
R P (j) R P (j − ) + x j − j ∀j ∈ V (12) R P (j) M (1 − x j − j ) + 1 ∀j ∈ V (13)
R P (i) M (1 − x i − i ) + R P (i − ) ∀i ∈ V (14) NB: Ressourcenfenster R A (j) R A ∀j ∈ V (15) R r (i) R r ∀i ∈ V, r ∈ {A,WA} (16) R P (i) R P ∀i ∈ V (17) Variablendefinition x a − a ∈ {0, 1} ∀ a ∈ V (18) R r (a) ∈ N 0 ∀r ∈ {A,WA,P} , a ∈ V (19)
5.1.2 Erläuterung des MIPs
Im Folgenden werden die Zielfunktion und Bedingungen (2)-(19) näher erläutert.
Zielfunktion (1) Die Zielfunktion minimiert die negative Summe aus den Kantengewichten δ dem i − i der Kanten, welche auf dem gewählten Pfad von der Quelle zur Senke liegen. Es könnte statt der Minimierung über die negative Summe auch ein Maximierungsproblem über die positive Summe formuliert werden. Diese Formulierung würde jedoch von dem ursprünglichen Ziel ab- weichen,die reduzierten Kosten einer neuen Spalte für ein Masterproblem zu minimieren. Die vollständige Zielfunktion, welche die reduzierten Kosten einer Spalte darstellt, ergibt sich nach Erweiterung des Modells und ist in Kapitel 5.2.3 beschrieben.
NB für Flusserhaltung (2)-(4) Der erste Block (2)-(4) formuliert die Flussbedingungen für die Quellknoten q und q+1, die Senkeknoten t − 1 und t und jeden dazwischen liegenden Knoten. Aus Bedingung (2) geht hervor, dass in die Quellknoten q und q+1 eine Mengeneinheit eingespeist wird. Dies bedeutet, dass genau eine der binären Variablen den Wert Eins annimmt. Analog legt Bedingung (4) fest, dass in den Senkeknoten t − 1 und t eine Mengeneinheit abgegeben wird. Die Bedingung (3) stellt sicher, dass die Summe aller in den Knoten a ∈ V \ {q, q + 1, t − 1, t} einfließenden Variablen die Summe aller ausfließenden Variablen ist. Da aus der Quelle genau eine Variable den
24
5 Gemischt ganzzahliges Programm
Wert Eins annimmt, verursacht diese Bedingung, dass pro Periode genau eine binäre Variable auf den Kanten ungleich Null ist.
NB für Ressourcenverbrauch (5)-(14) Der Nebenbedingungsblock (5)-(14) weist den Ressourcenvariablen R r (a) mit a ∈ V ihre Werte zu. Die Bedingungen (5)-(9) bestimmen hierbei die Werte der Variable R A (a) der Ressource Arbeit:
• Wird zu arbeiten begonnen, d. h. ist x i − i = 1, so wird durch (7) und (8) der Wert von R A (i) auf 1 gesetzt.
• Wird auf einer Kante (i − , i) die Arbeit fortgesetzt, d. h. x i − i = 1 und x i − i = 1, so wird durch (5) und (6) der Wert der Ressource R A (i) auf dem Endknoten der Kante um Eins höher als R A (i − ) auf dem Startknoten der
Kante gesetzt.
• Wird pausiert, so berechnet Bedingung (9) den Wert von R A (j) für die unteren Knoten j ∈ V. Es gilt: x j − j = 1 ⇒ R A (j) = R A (j − ). Dies ist
notwendig, um mit Bedingung (15) überprüfen zu können, ob der Arzt
die Mindestarbeitszeit R A absolviert hat, bevor er nach dem Zeitpunkt j − in die Pause geht.
Bedingungen (12)-(14) bestimmen den Wert der Ressource Pause. Es ist zu beachten, dass keine -Nebenbedingungen, wie für Ressource A notwendig sind, da keine Maximalpausenlänge vorhanden ist. Als Folge wurden die Nebenbedingungen so formuliert, dass die Pausenlänge R P (a) nach einer Pausenperiode um Eins erhöht werden kann, aber nicht muss:
• Am Ende einer Arbeit, d. h. x j − j = 1, kann R P (j) durch die Bedingung (13) auf den Wert Eins gesetzt werden.
• Wird in einer Periode (j − , j) die Pause fortgesetzt (x j − j = 1), so kann nach (12) die Ressource R P (j) am Ende der Periode um maximal Eins höher als R P (j − ) am Anfang der Periode sein.
• Wird nach einer Pause eine Arbeit begonnen (x i − i = 1), so wird die bisherige Pausenlänge bei einem Knoten i ∈ V durch (14) bestimmt. Dies ist notwendig, um mit der Bedingung (17) überprüfen zu können,
ob der Arzt die Mindestpausenlänge R P eingehalten hat und eine neue
Arbeit beginnen kann.
Der Wert der Ressource Wochenarbeit R WA (i) wird durch die Bedingun-gen (10) und (11) berechnet. Es handelt sich bei allen Bedingungen um Glei-
chungen, da die Ressource R WA kontinuierlich in der Woche nach oben gezählt
wird und zu einem bestimmten Zeitpunkt (Ende der ersten Periode einer Woche) zurückgesetzt wird:
25
5 Gemischt ganzzahliges Programm
• In Bedingung (10) wird die Ressource R WA (i) am Wochenbeginn auf den
Wert 0 oder 1 zurückgesetzt. Der Wochenbeginn wird durch die Kno-
s tenmenge V w beschrieben und beinhaltet nicht die Anfangsknoten der
nullten sondern der ersten Periode. 10 Somit wird die Ressource R WA (i)
auf Eins gesetzt, falls in der nullten Periode bereits gearbeitet wurde, d. h. die Variable x i − i = 1 ist.
• Die Wochenarbeitszeit für jeden oberen Knoten i, ausgenommen den s Knoten aus V w wird durch Bedingung (11) berechnet. Falls gearbeitet wird, erhöht sich die Wochenarbeitszeit um Eins.
NB für Ressourcenfenster (15)-(17) Dieser Block dient zur Einhaltung der Mindest- und Höchstressourcendauer. Die Ressourcen A und P haben eine Mindestdauer, welche durch Bedingungen (15) bzw. (17) eingehalten wird. Bedingung (16) setzt die Höchstdauer für Ressourcen A und WA fest. Durch Bedingungen (15) und (16) wird das Ressourcenfenster von Arbeit folgendermaßen eingehalten. Befindet man sich auf den oberen Kanten, d. h. es wird gerade gearbeitet, so kann man erst einen unteren Knoten betreten, falls
man die erforderliche Mindestarbeitszeit R A absolviert hat. Hierzu wird, falls
eine Pause aufgenommen wird (also x j − j = 1 ist), durch Bedingung (9) der
Wert der Variable R A (j − ) an die Variable R A (j) übergeben. Es muss nach (15) gelten, dass die Ressource R A (j) R A ist.
Gilt R A (j) < R A so kann x j − j aus Bedingung (9) nicht Eins werden, d. h.
die Mindestarbeitszeit ist noch nicht erfüllt, um in die Pause zu gehen. Für die Höchstdauer der Arbeit gilt, dass man sich höchstens so lange auf den oberen
Kanten aufhalten kann, solange R A (i) R A erfüllt ist.
Bedingung (16) für die Wochenarbeit überprüft für alle oberen Knoten, ob noch eine weitere Periode gearbeitet werden kann oder bereits die maximale
Wochenarbeitszeit 11 R WA erreicht worden ist. Diese Bedingung ist analog der
Bedingung für die Einhaltung der Höchstarbeitsdauer der Ressource A. Die Einhaltung der Pause erfolgt folgendermaßen. Die Mindestpausendauer wird durch die Bedingung (17) auf den oberen Knoten überprüft. Es kann nur
eine Arbeit aufgenommen werden, wenn die Mindestpausendauer R P bereits
geruht wurde. Wird eine Arbeit aufgenommen (x i − i = 1), so überträgt Bedin-
gung (14) den Wert der Ressource „Pause“ R P (i − ) des unteren Knoten i − auf die Variable R P (i) des oberen Knoten i. Durch Bedingung (17) kann so über-
10 Esist nicht möglich, R WA (i) = 0 für die Wochenanfangsknoten (Montag 0 Uhr) zu setzen,
da diese gleichzeitig die Wochenendknoten der Vorwoche (Sonntag 24 Uhr) sind. Somit
würde der Wert von R A (j) in Bedingung (30) für den letzten Tag der Woche w stets
s Null ergeben. Die Einführung von V w ist wichtig für die Berechnung von Überstunden
und Fehlstunden, welche in Kapitel 5.2.2 besprochen werden.
11 Es sei daran erinnert, dass R WA die vertragliche Wochenarbeitszeit v plus die möglichen
Überstunden ist. Die Überstunden werden in Kapitel 5.2.2 eingeführt.
26
5 Gemischt ganzzahliges Programm
prüft werden, ob die Mindestpausendauer eingehalten wurde und eine Arbeit aufgenommen werden kann.
Variablendefinition (18)-(19) Die Definition der Variablen ist in (18)-(19) beschrieben. Hierbei kann die Ganzzahligkeit bei den Ressourcenvariablen R r (a) in Bedingung (19) relaxiert werden. Dies wird im folgenden Abschnitt erklärt.
5.1.3 Relaxierung der Ressourcenvariablen
Die Ganzzahligkeit bei den Ressourcenvariablen R r (a) wird durch Nebenbedingungen (5)-(17) erzwungen und kann daher relaxiert werden. Im Folgenden wird dies für die einzelnen Ressourcenvariablen R r (a) mit r ∈ {A, WA, P } erläutert.
Ganzzahligkeit von R A (a) Die Ganzzahligkeit von R A (a) ergibt sich aus
den Bedingungen (5)-(8) und (16).
• Ist x i − i = 1, so ergibt sich durch (5) und (6) der Wert von R A (i) aus der Addition von R A (i − ) und der Binärvariablen x i − i . Ist also R A (i − ) ganzzahlig, so gilt dies auch für R A (i). Der Wert R A (i − ) ist ganzzahlig, da der Wert der Variable R A (i) im ersten oberen Knoten q, nämlich R A (q) = 0 ist. Es wird stets R A (q) = 0 gelten, da sonst die Beschränkung auf das ganzzahlige R A durch Bedingung (16) nicht komplett ausgenutzt
werden kann.
• Ist x i − i = 1, so wird durch (7) und (8) erzwungen, dass R A (i) = 1 ist.
• Ausgehend von diesem Wert, ergeben sich nach (5) und (6) die weiteren Werte für R A (i) aus der Addition des Wertes der Ressource R A (i − ) und der Binärvariablen x i − i . Der Wert R A (i − ) ist entweder Eins, falls dies
durch (7) und (8) erzwungen wurde, oder er ergibt sich aus Addition des Wertes Eins und einer endlichen Anzahl an binären Variablen.
• Ist x j − j = 1, so ist der Wert R A (j) für den unteren Knoten j gleich dem ganzzahligen Wert R A (j − ) des oberen Knotens j − .
Ganzzahligkeit von R WA (a) Die Ganzzahligkeit von R WA ergibt sich ähnlich wie für R A .
s w ergibt sich R WA (i) nach (10) aus Addition von binären Va- • Für i ∈V riablen.
s w errechnet sich R WA (i) nach (11) aus der Addition von • Für i ∈ V \ V
binären Variablen und des Wertes der Ressource vom oberen Vorgänger-
knoten R WA (i − ). Dieser Wert ist - analog zur obigen Begründung bei der
27
5 Gemischt ganzzahliges Programm
Ressource A - entweder Eins oder ergibt sich aus Addition von Eins mit einer endlichen Anzahl an Binärvariablen.
Ganzzahligkeit von R P (a) Bei der Ganzzahligkeit von R P ist zu berücksichtigen, dass es nur eine Minimalpausendauer R P gibt. Um die Zielfunktion zu
minimieren, ist es günstig, nach einer Schicht so früh wie möglich die nächste zu beginnen. Dies ist der Fall, da die δ dem bzw. δ D ab nur ungleich Null sein
ab
können und daher zur Minimierung der Zielfunktion beitragen können, falls in der Periode (a, b) eine Schicht ausgeführt wird. Daher ist das Lösungsverfahren bestrebt, die Werte für R P (a) so groß wie möglich zu wählen, wodurch es ausreichend ist, nur -Bedingungen aufzustellen.
• Beginnt der Arzt eine Pause in der Periode (x j − j = 1), so ist nach Bedingung (13) der größtmögliche Wert für R P (j) Eins.
• Vom ganzzahligen Wert Eins ergeben sich die weiteren Werte von R P (j) für die unteren Knoten j ∈ V aus Bedingung (12), indem die binäre Variable x j − j addiert wird.
• Beginnt der Arzt nach einer Pause eine Arbeit (x i − i = 1), so ist der größte Wert für R P (i) gleich R P (i − ). Um Bedingung (17) so früh wie möglich erfüllen zu können, muss der Wert R P (i) ganzzahlig sein, da die Ressourcenschranke R P auch ganzzahlig ist.
5.2 Einführung weiterer Nebenbedingungen
Die Lösung des Grundmodells (1)-(19) erzeugt einen Schichtplan, welcher die tägliche Mindest- und Höchstarbeitszeit, die Mindestpausenlänge und die wöchentliche Höchstarbeitszeit berücksichtigt. Um die Qualität des Schichtplans zu erhöhen und alle Nebenbedingungen aus dem ursprünglichen Subproblem aus Brunner et al. (2010) zu berücksichtigen, wird das Modell um mehrere Faktoren erweitert. Zuerst wird in Kapitel 5.2.1 der Einbezug eines Dienstes erläutert, dann wird in Kapitel 5.2.2 gezeigt, wie Überstunden im MIP berücksichtigt werden können. Kapitel 5.2.3 erweitert das bisherige Modell um eine Mittagspause und Kapitel 5.2.4 behandelt die Einschränkung der unterschiedlichen Startzeitpunkte in einer Woche.
Am Anfang jedes dieser Kapitel wird eine Problembeschreibung gegeben. Darauf folgend werden notwendige Ergänzungen der Notation und der Nebenbedingungen im Vergleich zum Grundmodell eingeführt. In einem dritten Abschnitt werden jeweils die neuen bzw. modifizierten Nebenbedingungen erläutert.
28
5 Gemischt ganzzahliges Programm
5.2.1 Berücksichtigung eines Dienstes
Problembeschreibung Der Bereitschaftsdienst bzw. Dienst wird eingeführt, damit in den Stunden, in denen kein planmäßiger OP-Betrieb herrscht (in der Nacht bzw. am Wochenende) die Nachfrage an Ärzten gedeckt ist. Im betrachteten Fall des Klinikums rechts der Isar beginnt von Montag bis Freitag ab 16 Uhr ein 16-Stunden Dienst. Vor Antreten des Dienstes muss der Arzt noch eine 8 Stunden Schicht arbeiten, sodass im Gesamten sein Arbeitstag um 8 Uhr beginnt und 24 Stunden später endet. Am Samstag und Sonntag gibt es keine geplanten Operationen, sodass der Dienst von 8 Uhr startet und bis 8 Uhr des nächsten Tages geht.
Beide Dienstarten, sowohl die kombinierte Dienstart an Wochentagen, als auch der „reine“ Dienst am Wochenende können als ein 24 Stunden Dienst dargestellt werden. Im Folgenden wird daher die Modellierung des Dienstes so vereinfacht, dass dieser stets 24 Stunden dauert. Neben der Dienstlänge ist die Bedingung einzuhalten, dass der Arzt nach
einem Dienst die Mindestpausenlänge von R P pausieren muss. Die maximale Anzahl an Diensten pro Woche ist auf N D Dienste 12 beschränkt.
Die Dienste beginnen in der gewählten Modellierung jeweils um 8 Uhr. Die Menge aller untenliegenden Knoten bei denen der Dienst D in Woche w startet (welche also 8 Uhr repräsentieren) wird mit V D w bezeichnet.
Ein Teil der Dienstzeit wird in Abhängigkeit des Tages zu der Wochenarbeitszeit hinzugezählt. Hierbei gilt für den am Sonntag beginnenden Dienst, dass die 8 Stunden, welche in die nächste Woche ragen, als Arbeitszeit dieser nächsten Woche zählen. Tabelle 1 zeigt, wie viele Stunden bei welchem Dienst ausbezahlt bzw. zu der Wochenarbeitszeit angerechnet werden.
Freitag 8 1 6
Sonntag
Tab. 1: Zur Wochenarbeitszeit angerechnete und ausbezahlte Stunden eines
Dienstes.
12 wobei N D 4 für den Fall, dass R P > 0. Da der Dienst stets zur selben Uhrzeit beginnt,
muss bei R P > 0 zwischen zwei Diensten ein Tag ohne Dienst sein.
13 Diese 8 Stunden werden als reguläre Arbeitszeit für die folgende Woche berücksichtigt.
29
5 Gemischt ganzzahliges Programm
Notation Um den Dienst auf dem Graphen zu berücksichtigen, wird eine neue Variable eingeführt. Diese ist ⎧
⎪ ⎨ 1, wenn der Arzt in der Periode (i − , i) mit i ∈ V einen Dienst hat
y i − i =
⎪ ⎩
0, sonst
und
⎧
⎪ ⎪ ⎪ ⎪ ⎨ 1, wenn der Arzt in der Periode (j − , j) mit j ∈ V die erste Periode
y j − j = nach einem Dienst pausiert ⎪ ⎪ ⎪ ⎪ ⎩ 0, sonst
Als Binärvariable, welche die Fortsetzung einer Pause angibt (also im Graphen
auf einer unteren Kante j − j läuft) kann die Variable x j − j auch für den Dienst
verwendet werden. Es wird keine neue Variable y j − j benötigt. Die bisher eingeführten Binärvariablen zeigt Abbildung 6. Allen Kanten bis auf (j, j + 2) sind durch die Einführung des Dienstes nun zwei Binärvariablen zugeordnet.
Abb. 6: Graph G mit Binärvariablen von Arbeit, Pause und Dienst.
Die bisherige Notation wird folgendermaßen erweitert, um den Dienst zu modellieren: Indizes, Mengen und Parameter
K d Anzahl an Knoten pro Tag δ D Wert der Dualvariablen der Nebenbedingung II aus dem
ab
Masterproblem, mit (a, b) ∈ A V D Teilmenge der untenliegenden Knoten bei denen der Dienst D in
w
Woche w startet, mit V D w = {j|j mod K d = 2(S D + 1) : j ∈ V} ⊂ V N D Maximale Anzahl an Diensten pro Woche
R D Höchstdauer des Dienstes
R D Mindestdauer des Dienstes
Variablen
R D (a) Höhe der Ressource D im Knoten a ∈ V
30
5 Gemischt ganzzahliges Programm
Es werden zusätzlich folgende Nebenbedingungen eingefügt bzw. modifiziert.
R D (i) R D (i − ) + y i − i + y i − i ∀i ∈ V (20)
R D (i) R D (i − ) + y i − i + y i − i − M (1 − y i − i ) ∀i ∈ V (21) R D (i) M (1 − y i − i ) + 1 ∀i ∈ V (22) R D (i) y i − i ∀i ∈ V (23)
R D (j) = R D (j − ) + M (1 − y j − j ) ∀j ∈ V (24) R r (j) R r ∀j ∈ V, r ∈ {A,D} (15b) r R r (i) R ∀i ∈ V, r ∈ {A,WA,D} (16b) R D (a) ∈ N 0 ∀a ∈ V (25) y i − i , y ii + ∈ {0, 1} ∀ i ∈ V (26)
Erläuterung Der Nebenbedingungsblock (20)-(26) bestimmt die Werte der Variable R D (a) der Ressource „Dienst“. Diese sind ähnlich den Bedingungen (5)-(9) der Ressource „Arbeit“ definiert:
• Wird ein Dienst in Periode (i − , i) begonnen, so wird durch (22) und (23) der Wert von R D (i) auf Eins gesetzt.
• Wird in der Periode (i − , i) der Dienst fortgesetzt, so erhöhen (20) und (21) den Wert der Ressource R D (i) um Eins im Vergleich zum Wert R D (i − ).
• Wird nach einem Dienst pausiert, so überträgt Bedingung (24) den Wert der Ressource R D (j − ) auf die Ressource R D (j). Mit Bedingung (15b) kann nun überprüft werden, ob die Mindestdienstlänge R D eingehalten
wurde.
• Bedingung (16b) überprüft, ob die Höchstdienstlänge nicht überschritten wurde, d. h. es muss R D (i) R D gelten.
• Um die feste Dauer (24 Stunden) des Dienstes zu modellieren, wird die Mindestdauer gleich der Höchstdauer R D = R D gesetzt.
• Die Bedingungen (25) bzw. (26) setzten den Definitionsbereich der Variablen y bzw. R D fest.
Da nun neben der Variable x j − j auch die Variable y j − j die erste Periode einer Pause angibt, müssen Bedingungen (13) und (14) modifiziert werden. Dies ist notwendig, da dieselbe Ressource R D (a) die Pausenlänge sowohl nach einer Arbeit, als auch nach einem Dienst misst. Es muss jeweils die Variable y j − j in den Nebenbedingungen ergänzt werden, sodass
5 Gemischt ganzzahliges Programm
gilt.
Die hinzugefügten Binärvariablen müssen auch in den Flussbedingungen integriert werden. Die Änderung der Bedingungen (2) für die Quelle bzw. (4) für die Senke wird in Kapitel 5.2.3 nach Erläuterung der Mittagspause erklärt, da durch die Mittagspause die Bedingungen (2) und (4) weiter modifiziert werden müssen.
Bedingung (3) wird durch Berücksichtigung des Dienstes folgendermaßen geändert.
p∈a −
Zu beachten bei (3b) ist, dass die Variable y a − a und y aa + , jeweils für a ∈ V nicht existieren, da die Fortsetzung einer Pause bereits durch die Variable x aa + mit a ∈ V abgedeckt wird.
Die Modifikation von (3) hätte zur Folge, dass die folgenden Bedingungen (27)-(28) zum Modell hinzugefügt werden müssten, da es möglich wäre, dass ein Dienst bzw. Arbeit mit der Variablen für Arbeit bzw. Dienst fortgesetzt wird.
Die Bedingungen (27) und (28) stellen sicher, dass eine begonnene Arbeit nur durch die entsprechenden x-Variablen fortgesetzt und beendet werden kann. Dies gilt auch für einen Dienst, welcher durch y-Variablen gekennzeichnet ist. Es ist nicht möglich, dass ein begonnener Dienst durch x-Variablen fortgesetzt wird.
Alternativ zur Flusserhaltungsbedingung (3b) und den Bedingungen (27) und (28) wäre es möglich, (3b) getrennt nach oberen bzw. unteren Knoten und Arbeit bzw. Dienst zu betrachten. Dies hätte den Vorteil, dass Bedingungen (27) und (28) nicht mehr notwendig wären. Die Anzahl an erforderlichen Restriktionen würde gleich bleiben. Folgende Bedingungen würden an Stelle von (3b) benötigt werden:
p∈i −
p∈i −
(
Die Bedingungen (3.1) und (3.2) sorgen dafür, dass für eine begonnene Arbeit die Variablen x i − i bzw. x ii + und für einen begonnenen Dienst stets die Varia-
32
5 Gemischt ganzzahliges Programm
blen y i − i bzw. y ii + verwendet werden. Der Fall, dass in einer Periode (i − , i) ein
Dienst begonnen wird und in der nächsten Periode dieser mit der Variable x ii + fortgesetzt wird bzw. der umgekehrte Fall sind somit ausgeschlossen. Somit sind mit Formulierung (3.1)-(3.3) die Bedingungen (27) und (28) überflüssig. Die maximale Anzahl an Diensten N D , welche einem Arzt pro Woche w zugeteilt werden können, wird durch Bedingung (29) sichergestellt.
Die Summe über alle Perioden in einer Woche, in denen ein Dienst gestartet wird, also y jj + = 1, darf höchstens der Anzahl an erlaubten Diensten N D
Wird ein Dienst begonnen, so wird auch das Kantengewicht δ D i − i in der Minimierung der Zielfunktion berücksichtigt. Die Zielfunktion ändert sich zu
Zu berücksichtigen ist, dass der Parameter δ D i − i lediglich in der ersten Periode eines Dienstes ungleich Null sein kann. Daher werden nur diese Werte berücksichtigt, da alle anderen Werte Null sind.
5.2.2 Berücksichtigung von Überstunden und Fehlstunden
Problembeschreibung Ein Arzt besitzt die vertraglich vereinbarte Wochen- arbeitszeit v. Abweichendvon dieser Arbeitszeit kann er maximal insgesamt
R WA Stunden pro Woche arbeiten. Der größte Wert der Variable o w ∈ N 0 , welche die Überstunden zählt, ist somit R WA − v. Fehlstunden, die in einer Woche
auftreten, betreffen den Fall, dass weniger als v Stunden gearbeitet werden. Fehlstunden werden mit der Variablen u w ∈ N 0 gemessen. Neben den Über-stunden gibt es ausbezahlte Überstunden h w ∈ N 0 . Es wird laut Tarifvertrag eine Überstunde der Woche w ausbezahlt, wenn diese nicht durch Fehlstunden in der darauf folgenden Woche w + 1 ausgeglichen werden kann. Um die Abweichung von der Wochenarbeitszeit v bewerten zu können, muss neben der reinen Arbeitszeit auch die Zeit berücksichtigt werden, welche von den Diensten teilweise auf die Wochenarbeitszeit angerechnet wird. Tabelle 1 bietet einen Überblick über entsprechende Zeiten. Um diese Information im MIP zu berücksichtigen, wird eine Funktion f 1 (j) eingeführt. Diese gibt die Stundenanzahl vom im Knoten j ∈ V D w beginnenden Dienst D an, welche zur
regulären Wochenarbeitszeit R WA addiert wird.
Die Arbeitszeit eines Dienstes am Sonntag wird auf den Montag der folgenden Woche angerechnet. Um dies zu berücksichtigen, wird eine Knoten- D menge ˆ V w eingeführt. Diese Teilmenge der untenliegenden Knoten bei denen
33
5 Gemischt ganzzahliges Programm
der Dienst D in Woche w startet, enthält die Knoten des Dienstbeginns vom Sonntag der Vorwoche bis Samstag der aktuellen Woche. Dies bedeutet, dass alle Dienste, welche zu der Wochenarbeitszeit einer Woche w beitragen, in der
D Menge berücksichtigt sind. In ˆ V w sind für w = 1 nur sechs Knoten enthalten,
da es keinen Sonntag der Woche 0 gibt. 14
Notation Insgesamt wird durch die Modellierung von Überstunden und Fehl-stunden die Notation folgendermaßen erweitert.
Mengen, Parameter und Funktionen
W 0 Menge der Wochen im Planungshorizont einschließlich der Vorwoche, mit W 0 = W ∪ {0} D ˆ V Teilmenge der untenliegenden Knoten bei denen der Dienst D
w
in Woche w startet zur Berechnung von v V e Teilmenge des letzten untenliegenden Knotens der Woche w,
w
mit V e w = {j|j = w · K w + 1 : j ∈ V w ∈ W} ⊂ V u v Vertragsarbeitszeit pro Woche c paid Kosten für eine ausbezahlte Überstunde h w c over Kosten für eine Überstunde o w f 1 (j) Gibt die Stundenanzahl des im Knoten j ∈ V D w beginnenden
Dienstes D an, welche zur regulären Wochenarbeitszeit R WA
addiert wird
Variablen
Anzahl an Überstunden in Woche w ∈ W 0 o w
Anzahl an „Fehlstunden“ in Woche w ∈ W u w
Anzahl an ausbezahlten Überstunden in Woche w ∈ W h w
Folgende Bedingungen ergänzen das bisherige Modell, um die Werte von o w , u w und h w bestimmen zu können.
∀w ∈ W h w o w−1 − u w (31) o w ∈ {0, 1, ..., R WA − v} ∀ w ∈ W (32) u w ∈ {0, 1, ..., v} ∀ w ∈ W 0 (33) h w ∈ {0, 1, ..., R WA − v} ∀ w ∈ W (34)
14 Für Initialisierungen, bei welcher Werte von Woche 0 eingeplant werden, siehe Kapitel
5.2.5
34
5 Gemischt ganzzahliges Programm
Erläuterung In (30) wird zur Bestimmung von o w , u w und h w die Summe aus der bis Ende der Woche regulär gearbeiteten Zeit R W A (j) und der aus Diensten anrechenbaren Arbeitszeit f 1 (j) gebildet. Übersteigt diese Summe den Wert v der Vertragsarbeitszeit, so erhöht sich der Wert o w der Überstunden. Ist die Summe kleiner als v, so erhöht sich u w .
Die ausbezahlten Überstunden h w werden mit Nebenbedingung (31) berechnet, wobei nur diejenigen Überstunden aus o w−1 der Woche w − 1 angerechnet werden, welche durch Fehlstunden in der darauf folgenden Woche w nicht aus- geglichenwerden können.
Die anfallenden Kosten durch Überstunden werden auch in der Zielfunktion berücksichtigt. Die Kostenparameter sind c over für Überstunden und c paid für ausbezahlte Überstunden. Gilt c over > c paid , so können in einer Woche w nicht sowohl o w > 0 als auch u w > 0 sein, da über beide Variablen in der Zielfunktion
minimiert wird. 15
Für die modifizierte Zielfunktion gilt
Die Bedingung (1c) stellt die Zielfunktion dar, falls keine Mittagspause berücksichtigt wird. Durch die Einführung einer Mittagspause ist eine weitere Änderung notwendig.
Die Variablen o w , u w und h w sind nach oben beschränkt, positiv und ganzzahlig. Die Bedingungen (32)-(34) geben die entsprechenden Beschränkungen
an. Die Ganzzahligkeit dieser Variablen kann auf R + 0 relaxiert werden. Durch
die Bedingung (30) wird o w und u w zur Ganzzahligkeit gezwungen, da alle anderen Variablen bzw. Parameter dieser Bedingung aus N 0 sind. Die Variable h w wird durch die Bedingung (31) und durch die Zielfunktion zur Ganzzahligkeit gezwungen. Den kleinsten Wert, welchen h w im Minimierungsproblem annehmen kann, ist genau die Differenz der ganzzahligen Variablen o w−1 und u w . Somit muss h w ganzzahlig sein.
15 Als Beispiel zur Illustration sei bei einem dreiwöchigen Schichtplan mit vertraglicher Wo-
chenarbeitszeit von 42 Stunden die Wochenarbeitszeiten 48, 42 und 36 Stunden. Würden
nun durch die Variablen o w > 0 und u w > 0 in der ersten und zweiten Woche 6 Über-
stunden und in der zweiten und dritten Woche 6 Fehlstunden veranschlagt werden, so
würde die Einplanung der Fehlstunden in der zweiten Woche für Überstunden in der
ersten Woche aufkommen, d. h. h 2 wäre Null. Da tatsächlich keine Fehlstunden gemacht
wurden, müssten auch 6 Überstunden in der zweiten Woche eingeplant werden. Diese
würden nicht die ausbezahlten Überstunden h 3 erhöhen, da in der dritten Woche tat-
sächlich 6 Fehlstunden gemacht werden. Die gleichzeitige Einplanung von Überstunden
und Fehlstunden in der zweiten Woche hätte somit den Effekt h w zu minimieren, jedoch
nur durch „künstliche“ Überstunden. Wird daher c over > c paid gesetzt, so ist dieser Effekt
nicht günstig, da sowohl die Überstunden o w als auch die ausbezahlten Überstunden h w
in der Zielfunktion minimiert werden und anhand der Kostenparameter die Minimierung
von o w günstiger für die Zielfunktion ausfällt.
35
5 Gemischt ganzzahliges Programm
5.2.3 Berücksichtigung einer Mittagspause
Problembeschreibung An jedem Tag, an dem gearbeitet wird, ist im Schicht- plan eineMittagspause über eine Periode berücksichtigt. Für einen Dienst wird keine Mittagspause bestimmt. Vor einer Mittagspause muss der Arzt mindestens T pre Stunden und höchstens T late Stunden gearbeitet haben. Nach der Mittagspause muss er noch T post Stunden arbeiten. Für die Berücksichtigung der Mittagspause wird eine weitere Binärvariable q ab benötigt, welche nur für
die beiden Kanten (j − , j) und (j, j + ) definiert ist. Sei
⎧
⎪ ⎪ ⎪ ⎪ ⎨ 1, wenn der Arzt in der Periode (j − , j) mit j ∈ V eine
q j − ,j = Mittagspause hat ⎪ ⎪ ⎪ ⎪ ⎩ 0, sonst
und
⎧
⎪ ⎪ ⎪ ⎪ ⎨ 1, wenn der Arzt nach einer Mittagspause in der Periode (j, j + )
mit j ∈ V die erste Periode arbeitet q j,j + =
⎪ ⎪ ⎪ ⎪ ⎩ 0, sonst
Abbildung 7 zeigt eine Mittagspause auf dem Graphen G. Auf den durchgezogenen Kanten sind die angegebenen Binärvariablen Eins. Die Mittagspause
erfolgt in Periode (i-2,j), sodass die Variable q (i−2)j = 1 ist. 16 Die erste Periode
nach der Mittagspause, in der gearbeitet wird, ist (j, i + 2). Dies wird durch die Variable q j(i+2) , welche den Wert Eins annimmt, verdeutlicht.
x (i−4)(i−2) x (i+2)(i+4)
... i − 4
... j − 4
16 Die Kante (i − 2, j) ist identisch mit der Kante (j − , j).
36
5 Gemischt ganzzahliges Programm
Notation Zur Berücksichtigung der Mittagspause wird das Modell um folgende Notation ergänzt.
Mengen und Parameter
T pre Mindestdauer an Arbeit vor Aufnahme einer Mittagspause T late Höchstdauer an Arbeit vor Aufnahme einer Mittagspause T post Mindestdauer an Arbeit nach Beendigung einer Mittagspause V w,d Teilmenge der untenliegenden Knoten von einem Tag d in
(w − 1)K w + dK d : j ∈ V, w ∈ W, d ∈ D} ⊂ V
Für die Einhaltung der Mittagspause werden folgende Bedingungen im Modell ergänzt.
q j − j R A (j − ) − (T pre − 1) + M (1 − q j − j ) ∀j ∈ V (35)
q j − j R A (j − ) − (T late − 1) − M (1 − q j − j ) ∀j ∈ V (36) q jj + (T post + 1)
− [R A (j + 2 · T post − 1) − R A (j − )] − M (1 − q jj + ) ∀j ∈ V (37) q jj + − q j − j = 0 ∀j ∈ V (38) (x jj + − q j − j ) = 0 ∀w ∈ W, d ∈ D (39) j∈V w,d q i − i , q ii + ∈ {0, 1} ∀ i ∈ V (40)
Erläuterung Im Folgenden werden die Bedingungen (35)-(40) näher erläutert.
• Die Bedingung (35) legt fest, dass der Beginn einer Mittagspause erfolgen kann, nachdem mindestens T pre Perioden gearbeitet wurde. Wird die Mittagspause zum Zeitpunkt j − begonnen, also q j − j = 1, so kann (35) zu R A (j − ) T pre umgeformt werden.
• Es dürfen höchstens T late Perioden bis zu einer Mittagspause gearbeitet worden sein. Ist q j − j = 1, so folgt aus (36), dass R A (i) T late sein muss.
• Nach einer Mittagspause müssen noch mindestens T post Perioden gearbeitet werden. Dies wird durch die Bedingung (37) sichergestellt. Hierbei
wurde im Knoten j − die Mittagspause begonnen, sodass die vor Aufnahme der Mittagspause geleistete Arbeit R A (j − ) beträgt. Die Arbeit R A im oberen Knoten (j + 2 · T post − 1), welcher T post Perioden nach Ende der Mittagspause ist, muss abzüglich der Arbeit R A (j − ) mindestens T post betragen. Anders formuliert muss für q jj + = 1 gelten, dass R A (j + 2 · T post − 1) − R A (j − ) T post ist.
37
5 Gemischt ganzzahliges Programm
• Die Bedingung (38) erzwingt, dass die Mittagspause genau eine Periode dauert und danach die Variable q jj + für die erste Arbeitsstunde nach der
Pause verwendet wird. 17
• Bedingung (39) fordert, dass pro Tag genau eine Mittagspause erfolgt, falls gearbeitet wird.
• Bedingung (40) definiert die Variable q als Binärvariable.
Durch das Einführen einer Mittagspause mit der Variablen q jj + , welche ebenso wie x ii + anzeigt, ob eine Arbeit fortgesetzt wurde, müssen die folgenden Nebenbedingungen modifiziert werden, in denen die Variable x ii + enthalten ist (welche aus Gründen der Notation in den Nebenbedingungen als x i − i geschrieben wird). Es wird jeweils die Variable q i − i hinzugefügt.
R A (i) R A (i − ) + x i − i + q i − i ∀i ∈ V (5b)
R A (i) R A (i − ) + x i − i + q i − i − M · x i − i ∀i ∈ V (6b) s R WA (i) = R WA (i − ) + x i − i + x i − i + q i − i ∀i ∈ V \ V (11b)
w
Durch die Bedingungen (5b), (6b) und (11b) werden die Ressourcen R A (i) bzw. R WA (i) nun auch um Eins erhöht, wenn die Arbeit mit der Variablen q i − i
nach einer Mittagspause fortgesetzt wird.
Die Flussbedingungen müssen auch angepasst werden. Die folgenden Bedingungen beinhalten auch die Änderungen, welche sich durch Einführung des Dienstes ergaben, bisher jedoch nicht vermerkt wurden.
r∈q +
(x pa + y pa + q pa )−
p∈a −
∀a ∈ V \ {q, q + 1, t − 1, t} (3c) (x as + y as + q as ) = 0
s∈a+
r∈(t−1) −
Da eine Schicht nicht mit einer Mittagspause beginnen kann bzw. eine Schicht nicht mit einer Mittagspause enden kann, enthalten Bedingungen (2b) und (4b) nicht die Binärvariable q ab der Mittagspause. Bedingung (2b) besagt, dass von allen Binärvariablen, die aus den Quellen entspringen, nur eine den Wert Eins annehmen kann. Von allen Variablen, welche in die Senkeknoten münden, kann durch Bedingung (4b) ebenso nur eine
17 Es ist wichtig, dass für die erste Arbeitsperiode nach einer Mittagspause eine andere
Variable als x jj + bzw. y jj + verwendet wird, da diese spezifische Bedeutungen besitzen
und anderen Nebenbedingungen zugeordnet sind.
38
5 Gemischt ganzzahliges Programm
Binärvariable ungleich Null sein. Die Bedingung (3c) bestimmt die Flusserhaltung für alle Knoten, außer den Quellknoten und Senkeknoten. Die Zielfunktion muss ebenso um q i − i erweitert werden und es ergibt sich die neue Zielfunktion:
5.2.4 Berücksichtigung eines Zeitfensters
Problembeschreibung Der Startzeitpunkt der Arbeit ist beliebig, liegt jedoch zwischen dem frühesten Zeitpunkt S A , an welchem die Nachfrage nach Ärzten beginnt und dem spätesten Zeitpunkt E A , an dem die Nachfrage endet. Damit im Schichtplan einer Woche für einen Arzt die Zeiten des Arbeitsbeginns nicht zu sehr auseinander weichen, werden diese auf maximal T win Stunden begrenzet. Hierzu wird der späteste Arbeitszeitbeginn in der Woche w bestimmt und der Variablen l w zugewiesen. Diese Variable wird mit jedem weiteren Startzeitpunkt der Woche w verglichen. Die Differenz darf höchstens T win betragen.
Notation Zur Bestimmung des frühesten Startzeitpunktes pro Woche wird die Notation wie folgt ergänzt.
Mengen, Parameter und Funktionen
S A Zeitpunkt, zu dem die reguläre Arbeit A frühestens beginnt E A Zeitpunkt, zu dem die reguläre Arbeit A spätestens endet T win Maximale Länge zwischen frühestem und spätestem Arbeitsbeginn pro Woche
f 2 (j) Funktion, welche jeder Nummer eines Knotens j ∈ V eine Knotennummer des ersten Tages zuweißt, mit
⎧
f 2 (j) : V →
Die folgenden Nebenbedingungen bestimmen den spätesten Startzeitpunkt und sorgen für die Einhaltung des Zeitfensters T win . ⎛ ⎞ ⎞
l w −
5 Gemischt ganzzahliges Programm
l w ∈ {S A , · · · , E A − R A } ∀ w ∈ W (43)
Erläuterung Die Nebenbedingungen (41) und (42) begrenzen die Dauer zwischen den verschiedenen Startzeiten der Arbeit in einer Woche w auf T win . Hierbei berechnet Bedingung (41) den spätesten Schichtbeginn in der Woche w. Beginnt eine Schicht im Knoten j, so ergibt das Produkt aus f 2 (j) und x jj + den Startknoten dieser Schicht bezogen auf den ersten Tag. Von dieser
Zahl müssen 2 abgezogen werden und das Ergebnis halbiert werden, um den Startzeitpunkt als Uhrzeit zu erhalten. Erfolgt beispielsweise der Start einer Schicht am dritten Tag der ersten Woche um 9 Uhr, also im Knoten j = 116, so ergibt f 2 (116) = 20. Davon 2 subtrahiert und das Ergebnis halbiert resultiert in der Startzeit (20 − 2)/2 = 9 Uhr. Nach (41) nimmt dabei l w den größten aller Schichtbeginne einer Woche w an.
Wird am Tag d der Woche w gearbeitet, also gilt x jj + = 1, so
j∈V w,d
folgt aus Bedingung (42), dass die Differenz zwischen dem spätesten Schichtbeginn l w einer Woche und dem Schichtbeginn des Tages d höchstens T win sein darf.
Relaxation von l w Die Ganzzahligkeit von l w kann auf R + 0 relaxiert werden.
In Bedingung (41) setzt sich die rechte Seite der Gleichung aus Multiplikation und Subtraktion ganzzahliger Werte zusammen, muss also einen ganzzahligen Wert ergeben. Somit ist l w größer gleich einem ganzzahligen Wert. In Bedingung (42) ist die rechte Seite ganzzahlig, falls x jj + = 1,
j∈V w,d
also an einem Tag d gearbeitet wird. Auf der linken Seite wird von l w etwas Ganzzahliges abgezogen. Es wird nun überprüft, ob l w abzüglich etwas Ganzzahligem kleiner oder gleich dem ganzzahligen Zeitfenster ist. Ein maximales Zeitfenster ist nur möglich, falls l w den kleinstmöglichen Wert aus Bedingung (41) annimmt, welcher ganzzahlig ist.
5.2.5 Werte des vorherigen Planungshorizonts
Der Schichtplan wird über einen vorher bestimmten Planungshorizont erstellt. Dieser ist in sich abgeschlossen und nimmt keine Informationen von vorherigen Schichtplänen auf. Um dies zu ändern, kann die Information etwaiger Über-stunden aus der Vorwoche des aktuellen Planungshorizonts, also Woche 0, durch Einführen eines Parameters o 0 festgesetzt werden. Wird am Sonntag der Woche 0 gearbeitet, so kann mit einem Parameter R P indirekt das Ende der Arbeit in den aktuellen Planungshorizont überge- R P gibt an, wieviele Stunden vor Beginn des Planungshorizonts (Montag 0 Uhr) bereits pausiert wurden. Hierdurch ergibt sich der frühest mögliche Starttermin am ersten Tag des Schichtplans. Vor Aufnahme einer
Arbeit müssen mindestens R P Stunden Pause sein.
40
5 Gemischt ganzzahliges Programm
Die Zuweisung
übergibt die bisherige Pausendauer an die Ressourcenvariable des unteren Quellknotens q+1. Falls die Arbeit zu jedem Zeitpunkt am ersten Tag des
R P = R P gesetzt werden.
Wird beispielsweise am Sonntag bis 21 Uhr gearbeitet, so werden bis Mon-
tag 0 Uhr drei Stunden pausiert, also wird der Wert von
R P = 3 gesetzt.
Wird bis 8 Uhr am ersten Montag noch ein Dienst vom Sonntag der Vorwoche R P = −8 berücksichtigt.
Falls in einer Woche nicht die maximale Wochenarbeitszeit R WA zur Verfü- w mit w ∈ W berücksichtigt,wel- R A
cher angibt, wie viele Arbeitsstunden in Woche w nicht zur Verfügung stehen. Eine Anwendung wäre denkbar, falls beispielsweise am Sonntag der Vorwoche ein Dienst begonnen wurde. Die acht Stunden, welche der Arbeitszeit in der R A w ab- gebildetwerden. Hierfür muss die Bedingung (30) abgeändert werden, indem R A w dazugezählt wird:
v =
j∈V
5.3 Preprocessing
Die Anzahl der Variablen und Nebenbedingungen des ganzen Modells inklusive aller Erweiterungen entspricht O(|V|). Die davon benötigte Anzahl der Variablen zur Berechnung der optimalen Lösung ist ein Teil, da eine Vielzahl an Binärvariablen nicht benötigt werden und ihnen daher der Wert Null zugewiesen werden kann. Berücksichtigt man den Zeitrahmen, in dem ein Arzt eine Arbeit ausführen kann bzw. einen Dienst beginnen kann, die Mindestarbeitszeit und die Parameter T pre bzw. T post , so können Variablen, welche in bestimmten Knoten starten, auf den Wert Null gesetzt werden. Dies bedeutet, dass über die entsprechende Kante der Fluss nicht laufen kann. Zur Beschreibung des Preprocessing sind folgende neue Parameter notwendig. S D beschreibt den Zeitpunkt, zu welchem der Dienst beginnt. Dieser ist identisch mit dem Zeitpunkt des Dienstendes, da ein Dienst 24 Stunden dauert.
S WE und E WE beschreiben den ersten bzw. letzten Tag eines Wochenendes.
Beispielsweise wähle man den Zeitrahmen, in dem gearbeitet werden kann, von 7 bis 21 Uhr, d. h. S A = 7 und E A = 21. Außerhalb dieses Zeitrahmens kann die Variable x i − i , ohne einen Einfluss auf die optimale Lösung zu nehmen, auf Null gesetzt werden. Zusätzlich kann in der Periode von 7 bis 8 Uhr sinnvollerweise nur x i − i = 1 sein, falls gearbeitet wird.
41
5 Gemischt ganzzahliges Programm
Zusätzlich sei ein arbeitsfreies Wochenende von Samstag bis Sonntag durch
die Parameter S WE = 6 und E WE = 7 definiert. Ist das Wochenende arbeitsfrei,
so kann keine Arbeit und Mittagspause erfolgen. Daher können die Variablen x i − i , x i − i , x ii + , q i − i , q ii + am Wochenende Null gesetzt werden, d. h. es kann nur
Um die Mengen der Knoten zu berücksichtigen, bei denen die Variable χ ∈
{x i − i , x i − i , x ii + , q i − i , q ii + , y i − i , y ii + } Null gesetzt werden kann, wird die Menge V non eingeführt. Hierbei sei i stets aus den oberen Knoten V und p i :=
χ
1 (i mod K d ) − 1 . Dabei gibt p i einen Zeitpunkt zwischen 0 und 23 Uhr an,
2
welcher durch den Knoten i dargestellt wird.
Beispielsweise handelt es sich bei i = 133 um den oberen Knoten des dritten Tages von 18 Uhr. Dieser wird durch (133 mod 48 − 1 = 18) zu 18 Uhr berechnet. Zur Erinnerung sei erwähnt, dass der erste obere Knoten im Netzwerk, welcher 0 Uhr repräsentiert, die Nummer 1 trägt. Die Mengen der Knoten am Wochenende und die Knoten, zu denen die
Variablen x i − i , x i − i , x ii + , q i − i , q ii + , y i − i und y ii + den Wert Null annehmen, sind:
x i − i
V non
x i − i V non
x ii +
q ii + V non
q i − i V non
y ii + V non = V \ V D
y i − i w
Im Folgenden werden die einzelnen Mengen kurz erläutert. Bei der Interpretation ist zu beachten, ob i ein Anfangs- oder Endknoten der Kante darstellt.
V non WE Diese Knotenmenge definiert alle Knoten eines Wochenendes. Ist das Wochenende arbeitsfrei, so können die Variablen x i − i , x i − i , x ii + , q i − i , q ii + auch bei den Knoten dieser Menge Null gesetzt werden.
V non Eine fortgesetzte Arbeitsperiode kann nicht früher als eine Periode nach
x i − i
Arbeitsbeginn S A oder später als das Arbeitsende E A existieren.
V non Eine Arbeit kann nicht vor Arbeitsbeginn S A beginnen. Auch ist ein
x i − i
Beginn nach der Periode, in welcher begonnen werden müsste, um noch
die Mindestarbeitszeit R A und eine Mittagspause zu absolvieren, nicht
möglich.
42
5 Gemischt ganzzahliges Programm
V non Die erste Pausenperiode nach einer Arbeit kann frühestens nach Ab- x ii +
solvierung der Mindestarbeitszeit und einer Mittagspause stattfinden. Zudem kann sie nicht später als das Arbeitsende E A erfolgen.
V non Die Mittagspause kann nicht vor Absolvierung von T pre Arbeitstunden
q ii +
nach Arbeitsbeginn S A erfolgen. Zudem müssen bis zum Arbeitsende E A noch mindestens T post Arbeitsperioden vorhanden sein.
V non Die erste Arbeitsperiode nach einer Mittagspause kann frühestens nach
q i − i
dem Arbeitsbeginn und T pre Arbeitstunden und einer Mittagspause erfolgen. Nach dieser ersten Arbeitsperiode müssen bis zum Arbeitsende E A noch mindestens T post Arbeitsperioden vorhanden sein.
V non Die erste Pausenperiode nach einem Dienst kann nur zur selben Zeit
y ii +
beginnen, wie auch der Dienst selber, da der Dienst einen ganzen Tag dauert.
V non Ein Dienst kann nur in den spezifizierten Knoten V D w beginnen.
y i − i
Die Auswirkung dieser Einschränkung der Variablen auf die Lösungszeit ist deutlich. Kapitel 7 enthält Zeitanalysen, welche diesen Sachverhalt verdeutlichen. Die Beschleunigung der Rechenzeit wird weniger durch die Anzahl an Knoten in den Mengen V non verursacht. Am Wichtigsten ist, welche Knoten
χ
in diesen Mengen enthalten sind.
Besonders die implizite Festlegung, dass eine Arbeitsschicht nur innerhalb eines Tages liegen kann, d. h. spätestens bis 24 Uhr beendet sein muss, beschleunigt die Lösungsdauer. Das Problem des Festsetzens der optimalen Arbeitsschichten wird hierdurch in Tagesprobleme zerlegt, welche durch die Einhaltung der Pausen zwischen den Tagen, der maximalen Wochenarbeitszeit und des Zeitfensters für den Arbeitsbeginn innerhalb einer Woche zusammenhängen.
5.4 Komplexität des RCSPs
Bei der vorliegenden Formulierung als MIP entspricht die Anzahl an Nebenbedingungen und Variablen O(|V |). Das MIP wird mit dem Simplex Verfahren mithilfe eines Branch & Bound (B&B) gelöst. Allgemein gilt, dass Kürzeste Wege Probleme mit nicht negativen Kanten in polynomialer Zeit gelöst werden können. Dies wird u. a. in Ahuja et al. (1993, Kapitel 4) gezeigt.
Fügt man eine Ressourcenbeschränkung 18 hinzu, so ist das RCSP ein NP-
vollständiges Problem. Es wird in Garey und Johnson (1979) als Problem ND30 mit „shortest weight-constrained path“ (S. 214) bezeichnet. Es ist eine
18 genauer ein Kantengewicht, wobei ein zulässiger Pfad von Quelle zur Senke nur ein ma-
ximales kumuliertes Gesamtgewicht haben darf
43
5 Gemischt ganzzahliges Programm
Transformation des NP-vollständigen Problems SP12 „PARTITION“, welches in pseudo-polynomialer Zeit durch ein dynamisches Programm gelöst werden kann (S. 223). Somit ist das vorliegende Problem ein schwach NP-vollständiges Problem. Ein formeller Beweis hierzu kann in Ziegelmann (2001) gefunden werden.
44
6 Dynamisches Programm
6 Dynamisches Programm
Dieses Kapitel behandelt die Lösung des Schichtplanungsproblems als dynamisches Programm. Zuerst erfolgt in Kapitel 6.1 eine Einführung in die DP. In Kapitel 6.2 wird das grundlegende Modell erläutert, wobei die Modellierung des RCSPs als DP beschrieben und der Lösungsalgorithmus erläutert wird. Darauf aufbauend werden in Kapitel 6.3 weitere Nebenbedingungen sukzessive in das Modell eingebaut und die dafür notwendigen Veränderungen des Modells dargelegt. Das vollständige DP befindet sich nochmals in Anhang B. Kapitel 6.4 behandelt eine Möglichkeit, die Lösungsdauer des Algorithmus zu beschleunigen, welche sonst aufgrund der Berücksichtigung des Startzeitfensters deutlich an Effizienz verliert. Abschließend wird in Kapitel 6.5 darauf eingegangen, wann die Lösung als DP eine optimale Lösung darstellt. Das Schichtplanungs- problem wirdin Wochenprobleme zerlegt, wobei dies in bestimmten Situationen zu optimalen Lösungen führt. Die in diesen Kapitel verwendeten Opera-toren „∧“ und „∨“ bezeichnen eine Verknüpfung zwischen zwei Argumenten. Hierbei ist „∧“ die UND-Verknüpfung und „∨“ die ODER-Verknüpfung.
6.1 Einführung in die dynamische Programmierung
Der Begriff „Dynamische Programmierung“ wurde erstmals in (Bellman 1952) eingeführt. Der Hauptverdienst von Bellman war es die verschiedenen Problemstellungen aufzuzeigen, für welche die dynamische Programmierung angewandt werden kann.
Diese ist keine eigenständige Lösungsmethode, sondern ein Optimierungs- prinzip. Einekurze Einführung kann in Hans (2001) und Beliën (2006) gefunden werden. Auch Bradley et al. (1977) hat ein eigenes Kapitel, in welchem die Grundlagen ausführlich erklärt und mit Beispielen verdeutlicht werden. Eine ausführliche Sammlung an verschiedenen Problemstellungen, die illustrieren, in welchen Fällen die DP angewandt werden kann, sind in Bellman und Dreyfus (1962), Bellman (1959) und Dreyfus und Law (1977) dargestellt. Im Folgenden werden die wichtigsten Charakteristika eines Dynamischen Programms für das in dieser Arbeit behandelte Problem angegeben und erläutert.
Stufen Gegeben ist ein diskretes System über n+1 Stufen (engl.: stages), wobei jede Stufe mit einer Ziffer j ∈ N 0 = {0, 1, ..., n} bezeichnet wird. Ist j ∈ R so handelt es sich um ein stetiges System. Dies ist beispielsweise der Fall, wenn die kontinuierliche Zeit zur Kennzeichnung von Stufen benützt wird. Bei der dynamischen Programmierung wird ein Problem, welches sich über mehrere Perioden oder Stufen erstreckt, in Teilprobleme zerlegt, welche einzeln lösbar sind. Jedes Teilproblem ist vom selben Problemtyp wie das vollständige
45
6 Dynamisches Programm
Problem und wird daher mit derselben Methode gelöst (z.B. Simplexverfahren). Die Lösung des Teilproblems einer Stufe fließt als Information in das Teilproblem der „nächsten“ Stufe ein, bis die letzte Stufe erreicht ist.
Induktionsreihenfolge Zu beachten ist, dass es zwei mögliche Reihenfolgen gibt, die Teilprobleme zu lösen. Dadurch wird deutlich, dass der Ausdruck „nächste Stufe“ sich nicht auf einen zeitlichen Ablauf bezieht. Betrachtet man das Problem ausgehend von der „zeitlich“ letzten zu treffenden Entscheidung und löst es rückwärts, so wird dieses Verfahren als backward dynamic pro- grammingoder auch Dynamische Programmierung mit Rückwärts-Induktion bezeichnet. Im Falle der Erzeugung des Schichtplans über eine Woche mit einstündigen Perioden würde man beispielsweise Sonntag 24 Uhr als erste Stufe wählen (j = 168) und die nächste zu lösende Stufe wäre Sonntag 23 Uhr (j = 167).
Bei der DP mit Vorwärts-Induktion (forward dynamic programming) ist das erste zu lösende Teilproblem die „zeitlich“ erste zu treffende Entscheidung und die Lösung der Teilprobleme erfolgt vorwärts laufend. Beim Schichtplan würde
man beispielsweise bei Montag 0 Uhr 19 beginnen (j = 0) und als nächste zu
lösende Stufe Montag 1 Uhr (j = 1) wählen.
Beide Induktionsverfahren führen, falls sie angewandt werden können, zu der identischen optimalen Lösung. Die Interpretation der Teillösungen auf den einzelnen Stufen ist unterschiedlich. Dies wird in Kapitel 6.2.2 am Beispiel der Schichtplanung erläutert.
Zustand Auf jeder Stufe j können verschiedene Zustände angenommen werden, welche mit der Zustandsvariablen x j ∈ X j abgebildet werden. X j stellt hierbei die Menge aller Zustände auf der Stufe j dar. Möchte man einen spezifischen Zustand der Stufe j kennzeichnen, so wird im späteren Teil die Notation j mit k ∈ K j verwendet. Die Menge K j beinhaltet hierbei die Indizes aller x k Zustände auf der Stufe j.
Je nach Problemstellung ist die Charakterisierung eines Zustands unterschiedlich. Ein Zustand wird durch verschiedene Komponenten charakterisiert. Ein Zustand könnte beispielsweise in einem Kürzeste Wege Problem durch die bereits zurückgelegte Wegstrecke und dem bisherigen Benzinverbrauch definiert sein.
Entscheidung Eine mögliche Entscheidung a j ∈ A(x j ) wird getroffen, um vom Zustand x j in den Zustand x j+1 zu gelangen. Die Menge A(x j ) enthält demnach alle Entscheidungen, welche in Abhängigkeit des Zustandes x j möglich sind.
19 Montag 0 Uhr ist gleich Sonntag 24 Uhr.
46
6 Dynamisches Programm
Ausgehend von einem Zustand können demnach bestimmte Entscheidungen getroffen werden, wodurch der jetzige Zustand in einen neuen Zustand auf der nächsten Stufe transformiert wird. Zu beachten ist, dass die Menge der möglichen Entscheidungen A(x j ) vom aktuellen Zustand abhängen. Beispielsweise könnte die Aktion „Fahre weiter“ in einem Wegenetz nicht möglich sein, wenn bereits der ganze Benzinvorrat - welcher den Zustand charakterisiertverbraucht worden ist.
Transformationsfunktion Der Übergang zwischen zwei Zuständen wird über die Transformationsfunktion t(x j , a j ) abgebildet. Es gilt x j+1 = t(x j , a j ). Durch die Transformationsfunktion werden die Komponenten, welche einen Zustand beschreiben, aktualisiert. Beispielsweise wird durch die Funktion t(x j , a j ) der neue Zustand x j+1 dadurch festgelegt, dass die zurückgelegte Wegstrecke um 10 km steigt und der Benzinverbrauch sich um 3 Liter erhöht. Es könnte hierbei a j = {Fahre weiter} sein. Durch den aktuellen Zustand x j und der Aktion a j wird also vorgegeben, dass im Zustand x j+1 nun 10 km mehr zurückgelegt und 3 Liter mehr Benzin als im Zustand x j verbraucht worden sind.
Ertragsfunktion Anfallende Kosten bzw. Erträge beim Übergang zwischen zwei Zuständen werden mit der Ertragsfunktion r(x j , a j ) mit r : X j × A j → R ermittelt.
Meist ist bei der DP das Ziel, die kumulierten Erträge über alle Stufen zu optimieren. Ein Beispiel für kumulierte Erträge könnte der summierte Wert der Gegenstände sein, welche in einem Knapsack-Problem eingeplant werden
können. Hierbei stellt die Einplanung eines Gegenstandes j eine Stufe dar. 20
Optimalitätsprinzip Nach dem Optimalitätsprinzip setzt sich bei Problemen, welche mit der dynamischen Programmierung gelöst werden können, jede optimale Lösung aus optimalen Teillösungen zusammen. Richard Bellman (Bellman 1959) drückte dies wie folgt aus. „An optimal policy has the property that whatever the initial state and initial decisions are, the remaining decisions must constitute an optimal policy with regard to the state resulting from the first decision.“ (S. 83) Das oben genannte Optimalitätsprinzip wurde ursprünglich für ein DP mit
Rückwärts-Induktion formuliert. In Bhavnani und Chen (1966) 21 wird dieses
Prinzip für ein DP mit Vorwärts-Induktion angepasst.
„An optimal policy has the property that whatever the ensuing state and decisions are, the preceding decisions must constitute an optimal policy with regard to the state existing before the last decision.“
20 Für eine ausführliche Darstellung zur Modellierung und Lösung von Knapsack Problemen
mit der dynamischen Programmierung siehe Kellerer et al. (2004).
21 zitiert nach Seinfeld und Lapidus (1968, S. 475).
47
6 Dynamisches Programm
Damit das Optimalitätsprinzip angewendet werden kann, müssen beim Problem, welches mit dynamischer Programmierung gelöst werden soll, zwei Bedingungen erfüllt sein. Diese werden u. a. in Cooper und Cooper (1981, Kapitel 3) diskutiert:
1. Trennbarkeit der Zielfunktion
2. Markov-Eigenschaft der Zustände
Die erste Eigenschaft bedeutet, dass der Wert der Zielfunktion in dem Sinne trennbar ist, dass die Änderung des Zielfunktionswertes auf einer Stufe j nur von der Entscheidung a j und dem Zustand x j abhängt. Die Markov-Eigenschaft bedeutet, dass nach einer Entscheidung a j auf der Stufe j der hieraus resultierende Zustand x j+1 nur von x j und a j abhängt. Die beiden Bedingungen werden in Kapitel 6.2.1 am konkreten Beispiel der Schichtplanung erläutert.
Um einen Zusammenhang zwischen den einzelnen Stufen herstellen zu können, wird eine Rekursionsgleichung verwendet, welche eine Verbindung zwischen den kumulierten Erträgen bis zu einer Stufe mit den Erträgen der nächsten Stufen herstellt.
Rekursionsgleichung Mathematisch ausgedrückt ergibt das Optimalitätsprinzip eine Rekursionsgleichung. Diese gibt im Fall der Vorwärts-Induktion für ein Minimierungsproblem die rekursive Folge von Wertfunktionen V (x j ) an. Hierbei wird die Wertfunktion V (x j ) für die Vorwärts-Induktion in Worten wie folgt definiert:
V (x j ) := Optimaler Wert von allen bisherig getroffenen Entscheidungen unter der Voraussetzung, dass man sich im Zustand x j befindet und bereits j Stufen absolviert hat.
Die Wertfunktion ist somit durch
unter den Nebenbedingungen
gegeben. Wenn deutlicher ausgedrückt werden soll, dass die Wertfunktionwie im Bellmanschen Optimalitätsprinzip postuliert - nur von den Zuständen x j und Entscheidungen a j abhängt, lässt sich die Gleichung zu
6 Dynamisches Programm
unter den Nebenbedingungen
umformen. Der Parameter r init gibt den Wert der Zielfunktion auf der Stufe j = 0 an und ist in den meisten Fällen Null.
Die Gleichung für V (x j ) stellt eine Funktionalgleichung 22 dar und ist daher
auch unter diesem Namen bekannt.
Politik Eine Politik stellt eine Folge a = (a 0 , ..., a n−1 ) von Entscheidungsvariablen dar. Die dazugehörige Zustandsfolge mit x 0 = x init , x j+1 = t j (x j , a j ) mit j = 0, ..., n − 1 wird durch x = (x 0 , ..., x n ) dargestellt. Hierbei gibt x init den Ausgangszustand an, mit welchem das DP begonnen wird.
Optimale Politik Sei n die letzte Stufe eines Optimierungsproblems und sei j n. Sei weiterhin bei der Vorwärts-Induktion DP (x j ) als das dynamische Optimierungsproblem definiert, welches mit x j in der Stufe j endet. Sei zu-sätzlich a ∗ eine optimale Politik für DP (x n ) und x ∗ die dazugehörige optimale Folge von Entscheidungen, d. h. a ∗ und x ∗ geben die optimale Politik und die
optimale Folge von Entscheidungen für das gesamte Optimierungsproblem von Stufe 0 bis n an.
Nach dem Optimalitätsprinzip ist somit eine Teilfolge
a
∗
male Politik für
DP
(x
∗
j
) und
x
∗ optimale Politik ist die Folge von Entscheidungen, welche die Wertfunktion optimiert.
Einteilung von Modellen der dynamischen Programmierung Folgende Unterscheidungen können im Allgemeinen bei Modellen der dynamischen Programmierung getroffen werden:
• Je nach Modellierung der Stufen (stetig oder diskret) werden die Modelle in kontinuierliche bzw. diskrete dynamische Programmierung unterteilt.
22 Eine Funktionalgleichung ist eine Gleichung, in welcher eine Funktion als implizite Funk-
tion ausgedrückt wird. Dies bedeutet, dass die abhängige Variablen (hier: V (x j )) nicht
explizit durch die unabhängige Variable x j ausgedrückt wird. Wie auch hier der Fall,
wird der Wert einer Funktionalgleichung an einer bestimmten Stelle oftmals in Abhän-gigkeit ihres Wertes an einer anderen Stelle beschrieben, z.B. V (x j ) = c + V (x j−1 ) mit
c ∈ R. Rekursionsgleichungen sind hierbei eine Klasse der Funktionalgleichungen.
23 Das Optimalitätsprinzip für Rückwärts-Induktion wäre unter der Definition, dass ein dy-
namisches Optimierungsproblem, welches mit x j in der Stufe j gestartet wird, als DP (x j )
bezeichnet. Für eine optimale Lösung gibt es nach dem Bellmanschen Optimalitätsprinzip
eine Politik
a
∗
, welche für das
Die dazugehörige Folge von Zuständen wird durch x ∗ ausgedrückt. Somit ist a ∗
eine optimale Politik für DP (x ∗
6 Dynamisches Programm
• Ist das Resultat der Entscheidungen r j (x j , a j ) mit Unsicherheit verbunden, so spricht man von stochastischer DP und es werden die erwarteten statt der sicher eintretenden Erträge optimiert. Im vorliegenden Fall wird durch eine Entscheidung die Zielfunktion um einen festen vorher bekannten Wert verändert und man spricht von deterministischer DP.
Diese Arbeit behandelt den Fall eines diskreten deterministischen DPs. Für eine Behandlung von stetigen DPs sei auf Bertsekas (2005) verwiesen. Stochastische DPs werden von Sennott (1999) dargestellt.
6.2 Beschreibung des grundlegenden DPs
Im vorliegenden Fall der Erzeugung eines Schichtplans wird eine Vorwärts-Induktion gewählt. Unabhängig von der Induktionsart erhält man als Ergebnis den optimalen Schichtplan. Es sei daran erinnert, dass ein optimaler Schicht- plan hierbeiderjenige ist, durch dessen Anwendung die kleinsten reduzierten Kosten entstehen.
Das allgemeine dynamische Programm sieht bei Minimierung der reduzierten Kosten C wie folgt aus.
unter den Nebenbedingungen
Zuerst wird in Kapitel 6.2.1 die dynamische Programmierung auf das vereinfachte Modell angewandt. Das vereinfachte Modell des dynamischen Programms beschränkt sich auf dieselben Nebenbedingungen wie das grundlegende MIP in Kapitel 5.1. Es berücksichtigt die Mindest- und Höchstdauern der Arbeit pro Tag, die Mindestpausendauer zwischen zwei Schichten und die Höchstarbeitsdauer pro Woche.
Danach wird in Kapitel 6.2.2 auf die Induktionsreihenfolge eingegangen und erklärt, welche kurzfristigen Modifikationen am Schichtplan mit welcher Induktionsreihenfolge möglich sind. Anschließend wird in Kapitel 6.2.3 der Al-gorithmus für das vereinfachte Modell eingeführt und es wird erläutert, welche Schritte zur Bestimmung eines optimalen Schichtplans notwendig sind. In Kapitel 6.3 wird der Algorithmus um den Dienst, die Überstunden und Fehlstunden, die Mittagspause und das Startzeitfenster ergänzt. Darauf wird in Kapitel 6.4 eine weitere Modifikation des Algorithmus erläutert. Hierbei wird
50
6 Dynamisches Programm
das Startzeitfenster anders modelliert und die Zeit, in welcher keine Nachfrage nach Ärzten besteht, wird im Algorithmus berücksichtigt, was beides zu einer Beschleunigung der Lösungsdauer führt. Das vollständige Modell des DPs, welches alle Nebenbedingungen berücksichtigt, ist im Anhang B enthalten.
6.2.1 Modellierung des RCSPs als DP
In diesem Kapitel wird erläutert, wie ein dynamisches Programm als Lösungsmethode für das in Kapitel 4 formulierte RCSP modelliert werden kann. Hierbei wird darauf eingegangen, wie eine Stufe, ein Zustand, eine Entscheidung bzw. eine Politik dargestellt wird und warum das Optimalitätsprinzip für das beschriebene Problem gilt. Für die allgemeine Modellierung eines dynamischen Programms für ein RCSP sei sowohl auf Hartel und Glaser (1996) als auch auf Righini und Salani (2008) verwiesen.
Eine Stufe j entspricht einem Knotenpaar des RCSPs, also einem Zeitpunkt. Im Folgenden wird um die Notation einfach zu halten, davon ausgegangen, dass die Schichtplanung stundenweise durchgeführt wird. Für einen Planungshorizont über eine Woche und stündlicher Unterteilung gibt es demnach 7 · 24 + 1 = 169 Stufen von 0,..., 168. Hierbei ist die Anzahl ungerade, da man noch eine letzte Stufe benötigt, um das Ende der letzten Periode n = 168 zu kennzeichnen. Die Nummer j einer Stufe gibt die j-te Stunde seit Wochenbeginn an.
Abbildung 8 zeigt die Zusammenfassung eines Knotenpaares [a,a+1] bzw. [a+2,a+3] zu der Stufe j bzw. j + 1, wobei a und a + 2 aus den oberen Knoten sind.
Die Notation der Kantengewichte δ j zwischen den Stufen j und j + 1 weicht von der bisherigen Notation ab. Bisher galt für die Kantengewichte einer Pause, dass δ a,a+3 = δ a+1,a+3 = 0 ist. Für die Gewichte einer Arbeitsperiode galt δ a,a+2 = δ a+1,a+2 . Es gilt nun, dass δ j = δ a,a+2 = δ a+1,a+2 . Überdies werden δ a,a+3 bzw. δ a+1,a+3 , da diese stets Null sind, nicht mehr berücksichtigt.
Jeder Stufe werden Zustände zugewiesen. Jeder Zustand x j auf der Stufe j ergibt sich aus einem Pfad vom Quellknotenpaar zum Knotenpaar j. Die
51
6 Dynamisches Programm
Zustände sind im Grundmodell durch den Ressourcenverbrauch an Wochen- arbeit, Arbeitund Pause und durch den Zielfunktionswert beschrieben. Der Zielfunktionswert ist die negative Summe der Kantengewichte der Kanten, auf denen im Pfad bis zur Stufe j gearbeitet wurde.
Die möglichen Entscheidungen a j ∈ A j (x j ) = P{l, p} 24 sind im Grundmodell durch Arbeit l (engl. labour 25 ) und Pause p gegeben.
Die Politik ist ein erzeugter Schichtplan. In Abbildung 1 auf Seite 3 wird beispielsweise die Entscheidung a j = l durch die Zahl Eins und die Entscheidung a j = p durch die Zahl Null repräsentiert. Das Optimalitätsprinzip kann angewandt werden, da die Trennbarkeit der Zielfunktion (Voraussetzung 1) und die Markov-Eigenschaft der Zustände (Voraussetzung 2) vorliegen. Dies kann aus folgenden Gründen angenommen werden.
Die Trennbarkeit der Zielfunktion (1) bedeutet, dass der Effekt auf die Zielfunktion auf einer Stufe j nur vom Zustand x j und von der Entscheidung a j abhängt. Die Zielfunktion (Bedingung 1, Kapitel 5.1.1) wird in der DP als
· I {l} (a j )) geschrieben. 26 Ob in der Zielfunktion ein weite- j∈{0,...n−1} (−δ dem
j
res −δ dem addiert wird, hängt nur von der Entscheidung a j ab. Diese hängt
j
wiederum lediglich von x j ab, da a j ∈ A j (x j ) ist. Voraussetzung (2) besagt, dass ein Zustand x j nur von dem vorherigen Zu-stand x j−1 und der Entscheidung a j−1 , welche zu diesem Zustand geführt hat, abhängt. Diese Bedingung ist erfüllt, da x j = t(x j−1 , a j−1 ) und die Transformationsfunktion t von keinen weiteren Variablen abhängt. Die Transformationsfunktion und die Rekursionsgleichung für die Schicht- planung werdenin Kapitel 6.2.3 definiert.
6.2.2 Induktionsreihenfolge des DPs
Die Schichtplanung wird mit Vorwärts-Induktion gelöst. Eine Betrachtung mit Rückwärts-Induktion wäre auch möglich. Beide Verfahren führen auf den optimalen Schichtplan, unterscheiden sich jedoch in den Ergebnissen, welche man auf den einzelnen Stufen erhält. Dies und die Verwendbarkeit der einzelnen Informationen in der Praxis in Abhängigkeit der Induktionsreihenfolge werden im Folgenden verdeutlicht.
Rückwärts-Induktion Ausgehend von einem beliebigen Zustand x j lässt sich der Schichtplan erstellen, welcher zum Ende der Woche den Zielfunktionswert optimiert, unter der Voraussetzung, dass dieser Teilschichtplan beim Zustand
24 P stellt das Zeichen für die Potenzmenge dar. Abweichend von der gebräuchlichen Defi-nition, ist in dieser Arbeit die leere Menge nicht Bestandteil der Potenzmenge.
25 Aufgrund der bereits assoziierten Indizes w für die Woche und a für die Entscheidung a j
wurde der Index l für die Arbeit gewählt.
26 I {l} (a j ) ist das Symbol der Indikatorfunktion, welche im Symbolverzeichnis definiert wird.
52
6 Dynamisches Programm
x j startet (x j −→ x ∗(j) n ). Hierbei ist x ∗(j) der beste Endzustand, welcher vom
n
Zustand x j aus zu erreichen ist.
Vorwärts-Induktion Das dynamische Programm enthält auf jeder Stufe Tei-linformationen. Bei der Vorwärts-Induktion kann man anhand dieser rekonstruieren, wie der beste Schichtplan von Wochenbeginn zu einem bestimmten gewählten Zustand einer konkreten Stufe j ist. Beispielsweise sei der gewünschte Zustand x j dadurch gekennzeichnet, dass der Arzt 16 Stunden gearbeitet
absolviert hat
gespeicherten Informationen diejenigen Schichtpläne erstellen, bei welchen es möglich ist in Stufe j einen solchen Zustand x j zu erreichen. Es lassen sich demnach alle Schichtpläne vom Anfangszustand x init bis zum vorgegebenen Zustand x j rekonstruieren (x init −→ x j ).
Bedeutung in der Praxis Die Anwendung der Rückwärts- bzw. Vorwärts-Induktion könnte in der Praxis folgendermaßen genützt werden. Man kann beispielsweise daran interessiert sein, wie ein Schichtplan innerhalb der laufenden Woche modifiziert werden sollte, falls es notwendig wird, dass der Arzt von
dem optimalen Schichtplan a ∗ abweicht, also einen Zustand x j annimmt, welcher nicht in x ∗ enthalten ist. Dies kann anhand der Informationen aus dem DP
mit Rückwärts-Induktion berechnet werden. Man betrachtet hierzu die Stufe j und wählt ausgehend vom Zustand x j die weiteren Zustände x j+1 , ..., x n bis zur letzten Stufe n der Woche.
Können Ärzte bei der Planung ihrer Schichtpläne Wünsche äußern, so eignet sich die Vorwärts-Induktion. Angenommen, ein Arzt möchte ab Freitag Urlaub nehmen und bis dahin seine vertragliche Wochenarbeitszeit von 42 Stunden ab-
R A solviert haben. Anhand dieses Zielzustandes = 42 kann mit den In- j
formationen aus dem DP mit Vorwärts-Induktion derjenige Schichtplan erstellt werden, welcher unter Berücksichtigung der Präferenzen des Arztes optimal ist. In der vorliegenden Arbeit ist ein dynamisches Programm mit Vorwärts-Induktion gewählt worden, um Präferenzen von Ärzten berücksichtigen zu können. Mit der Methode der Vorwärts-Induktion kann auch der optimale Restschichtplan einer Woche nach Modifikation des geplanten Schichtplans erzeugt werden. Hierzu setzt man als Anfangszustand x 0 = x j und löst das DP über die restlichen Tage erneut. Die Berücksichtigung von Präferenzen ist über die Rückwärts-Induktion jedoch nicht immer möglich. Es ist denkbar, dass der gewählte Präferenzzustand im Laufe des DPs mit Rückwärts-Induktion nicht erstellt wird, da dieser Zustand nicht zur Konstruktion des optimalen Schicht- plans notwendigist.
53
6 Dynamisches Programm
6.2.3 Darstellung des Algorithmus
Der gewählte Algorithmus, um das dynamische Programm zu lösen, ist ein Label Setting Algorithmus. Er beruht auf den Ausführungen von Righini und Salani (2008), Desrochers und Soumis (1988) und Desrosiers et al. (1995). Um einen Zusammenhang von Label Setting Algorithmus, Dijkstra Algorithmus und der dynamischen Programmierung zu erhalten, sei auf Sniedovich (2006) verwiesen.
Jeder Zustand auf einer Stufe wird durch ein Label repräsentiert. Dieses
beinhaltet den Ressourcenverbrauch der verschiedenen Ressourcen 27 , den Ziel-
funktionswert und weitere Komponenten, welche notwendig sind, um die entsprechenden Nebenbedingungen abzubilden. Diese Komponenten werden in den folgenden Kapiteln eingeführt. Die optimale Lösung wird durch das Label mit dem geringsten Zielfunktionswert auf der letzten Stufe dargestellt. Ausgehend von diesem Label lassen sich alle optimalen Vorgängerzustände und Vorgängerentscheidungen rekursiv berechnen.
Der Algorithmus erweitert alle Zustände und geht dabei in aufsteigender Reihenfolge von der ersten bis zur letzten Stufe. Dies wird solange fortgesetzt, bis durch die Transformationsfunktion von allen Zuständen mit allen dort möglichen Entscheidungen die Folgezustände gebildet wurden. Die Effektivität des Algorithmus beruht auf der Anzahl an erzeugten Zuständen. Von jedem Zustand entspricht die maximal mögliche Anzahl an neuen Zuständen der Anzahl an möglichen Entscheidungen, d. h. die Anzahl an Zuständen nimmt exponential zu. Um die Anzahl möglichst gering zu halten, werden nur effiziente Zustände fortgesetzt.
Ein Zustand ist effizient, falls dieser von keinem anderen dominiert wird. Wird ein Zustand dominiert, so bezeichnet dies, dass ein Zustand im Ver-
gleich zu einem anderen Zustand anhand gewisser Kriterien „schlechter“ ist. 28
Regeln bzw. die Kriterien für die Dominanz zwischen zwei Zuständen werden in diesem Kapitel eingeführt und in den folgenden Kapiteln an die Erweiterungen angepasst. Ein nicht-effizienter bzw. dominierter Zustand kann nicht mehr das Optimum auf der letzten Stufe erreichen und kann somit gelöscht werden. Nachdem durch die Transformationsfunktion ein neuer Zustand auf der Stufe j erzeugt wurde, werden alle Zustände x j ∈ X j anhand von Dominanzregeln auf ihre Effizienz überprüft. Dieser Vorgang wird als EF F (X j ) abgekürzt. Wird ein Zustand durch die Transformationsfunktion benutzt, um einen neuen Zu-stand zu erzeugen, so wird das Label des „alten“ Zustands dauerhaft, d. h.,
27 Die Ressourcen sind „zurücksetzbare“ Ressourcen, welche durch t(x j , a j ) in Abhängigkeit
von x j und a j auf einen Wert Null bzw. Eins zurückgesetzt werden können. Es sei hierzu
auf die Ausführungen in Kapitel 4.2 verwiesen.
28 Beispielsweise ist ein Zustand „schlechter“, wenn er im Vergleich zu einem anderen Zustand
auf derselben Stufe einen höheren Zielfunktionswert und einen höheren Verbrauch an der
Ressource „Wochenarbeit“ besitzt.
54
6 Dynamisches Programm
es kann nicht mehr dominiert werden. Im Folgenden wird auch der Begriff „Effizienzprüfung“ für die Anwendung von EF F (X j ) verwendet. Die Reihenfolge der Bearbeitung der Stufen und die Reihenfolge der Bearbeitung der Labels einer Stufe kann variiert werden. Stufen werden in dieser Arbeit in aufsteigender Reihenfolge bearbeitet. Sind alle Zustände einer Stufe durch die Transformationsfunktion behandelt worden, so wird die nächste Stufe betrachtet. Die Abarbeitung der einzelnen Labels innerhalb einer Stufe kann verschiedene Reihenfolgen haben, je nach Sortierung der Menge X j . Die Sortierung wird durch ORDER(X j ) dargestellt. Die zeitliche Effizienz verschiedener Sortierungen wird in Kapitel 7.2.2 diskutiert. Mögliche Reihenfol-
gen sind aufsteigende oder absteigende Labelnummern, 29 die Sortierung nach
Zielfunktionswert oder die Sortierung nach Wochenarbeitszeit. Im Algorithmus wird die Erstellung eines Schichtplans in Wochenprobleme zerlegt, indem Schichtpläne für einzelne Wochen w ∈ W gebildet und diese dann kombiniert werden. Dieses Vorgehen ist notwendig aufgrund der Berücksichtigung des maximalen Startzeitfensters T win innerhalb einer Woche. Dieses kann für jede Woche unterschiedlich sein. Hierdurch können weniger Labels aufgrund von Dominanzen gelöscht werden, wodurch eine große Anzahl an Labels generiert werden müsste. Hierdurch verliert der Algorithmus seine Effizienz. Eine ausführliche Erklärung wird in Kapitel 6.3.4 gegeben. In Kapitel 6.5 wird erläutert unter welchen Bedingungen dieses Vorgehen dennoch zur optimalen Lösung führt.
Das Vorgehen zur Erzeugung des optimalen Schichtplans ist zweigeteilt. Zuerst werden alle Labels von der ersten bis zur letzten Stufe über alle Wochen erzeugt. Danach wird vom letzten Label ausgehend rekursiv die optimale Folge von Zuständen und die optimale Politik bestimmt.
Der Ablauf des Algorithmus der ersten Stufe wird im Folgenden in Algorithmus 1 dargestellt.
Es werden die Wochen des Schichtplans in aufsteigender Reihenfolge durchlaufen (1) und am Anfang für die Stufe Null der Zustand x 0 initialisiert (2) und der Menge der Zustände X 0 zugewiesen (3). Um die Notation zu vereinfachen, wurde bei den Zuständen bzw. Entscheidungen und deren Mengen auf
den Index der Woche verzichtet. 30 Für alle restlichen Stufen j = 1, ...n (4)
wird zuerst die Menge der Zustände (Labels) nach der gewünschten Reihenfolge sortiert (5), bevor alle Zustände daraus nach der sortierten Reihenfolge abgearbeitet werden (6). Zu jedem Zustand werden zudem die entsprechenden möglichen Entscheidungen bestimmt (6) und der neue Zustand x j der nächsten
29 Aufsteigende Labelnummern, d. h., das erste entnommene Label hat den kleinsten Index,
entspricht dem First In First Out (FIFO) Verfahren. Das Label, welches zuerst für die
Stufe j erzeugt wurde, wird wieder als erstes verwendet um in die Transformationsfunk-
tion t(x j , a j ) = x j+1 einzufließen. Analog entspricht die Entnahme nach absteigender
Labelnummer dem Last In First Out (LIFO) Verfahren.
30 Sonst müsste es beispielsweise x w,j−1 bzw. a w,j−1 lauten.
55
6 Dynamisches Programm
x 0 ← x init
2:
X 0 = {x 0 }
3:
for j = 1 to n do 4:
ORDER(X j−1 ) 5:
for all x j−1 ∈ X j−1 , a j−1 ∈ A j−1 (x j−1 ) do
6:
7: 8:
9:
end for 10:
end for 11:
12: end for
Stufe wird mit der Transformationsfunktion berechnet (7). Dieser wird darauf zu der Menge der Zustände X j hinzugefügt (8). In der Menge X j werden nun alle Zustände auf ihre Effizienz hin überprüft (9), d. h. dominierte Zustände werden gelöscht. Die Schritte (5) bis (9) werden bis Erreichen der vorletzten Stufe n−1 wiederholt, aus welcher sich die Zustände der letzten Stufe ergeben. Die römischen Ziffern beschreiben die einzelnen Bestandteile, welche für die Realisation des Algorithmus notwendig sind. Um den Übergang von einem zum nächsten Zustand mithilfe der Transformationsfunktion zu beschreiben (Zeile 7), ist es notwendig, die Ertragsfunktion (I) und den Aufbau eines Labels (II) zu kennen. Die Ertragsfunktion beschreibt die Aktualisierung der Zielfunktion von einem zum nächsten Zustand. Des Weiteren müssen sowohl die möglichen Entscheidungen a j−1 ∈ A j−1 (x j−1 ) beschrieben werden (III) als auch die Transformationsfunktion (IV) an sich. Diese beschreibt, wie die Komponenten eines Labels geändert werden, um das Label auf der nächsten Stufe zu bilden. Als letztes wird die Effizienz der Labels (V) anhand von Dominanzregeln bestimmt.
Der Ablauf des Algorithmus 2 zur Bestimmung der optimalen Zustandsfolge und der optimalen Politik ist Folgender.
x ∗ n ← x ∗
3:
w i
for j = 1 to n do 4:
5:
n−j
{r(x n−j , a n−j ) + V (x n−j )} ∀x n−j ∈ X n−j , a n−j ∈ A n−j end for 6:
7: end for
Zuerst werden die Zustände der letzten Stufe x ∗ aller Wochen i ∈ W be- w i
stimmt, welche in Kombination die Zielfunktion minimieren (1). Hierbei bildet
56
6 Dynamisches Programm
x ∗ , ..., x ∗ ein Tupel dieser Zustände. Für jede Woche i gibt es also genau
w 1 w |W|
einen optimalen Zustand x ∗ . Um herauszufinden, welche Labelnummer k i die- w i
ser Zustand trägt, muss die Summe aus den Zielfunktionswerten (obj) k i für alle
w i
verschiedenen Kombinationen von k i ∈ K i und i ∈ W gebildet werden. Das Tupel k 1 , ..., k |W| , welches die Summe der einzelnen Zielfunktionswerte (obj) k i
w i
minimiert, beschreibt die Labelnummern. Es müssen hierbei Nebenbedingungen bei der Kombination der einzelnen Endzustände berücksichtigt werden. Dieser Schritt des Algorithmus wird als Teil A bezeichnet und die Nebenbedingungen werden in den späteren Kapiteln erklärt.
Als nächster Schritt wird für jede Woche (2) der beste Endzustand als x ∗
n
bezeichnet (3). Ausgehend von diesem optimalen Zustand wird mithilfe der
Rekursionsgleichung der vorhergehende optimale Zustand
x
∗
male Entscheidung
a
∗
n−j
in (5) ermittelt. Dies wird durch die for-Schleife in (4) solange fortgesetzt, bis a ∗
rithmus wird im Folgenden als Teil B bezeichnet.
Um die beiden Algorithmen implementieren zu können, werden in den nächsten Kapiteln die Details der Implementierung erläutert. Die Beschreibung der einzelnen Punkte ist hierbei folgendermaßen aufgebaut.
I. Bildung der Ertragsfunktion
II. Definition des Labels, welches einem Zustand zugeordnet wird
III. Mögliche Entscheidungen a j in Abhängigkeit des Zustands x j
IV. Beschreibung der Transformationsfunktion t (x j , a j )
V. Dominanzregeln, um Zustände, die nicht zum Optimum führen können, zu löschen
VI. Bestimmung der optimalen Politik aus den berechneten Labels unter Berücksichtigung der Zerlegung in Wochenproblemen (Teil A und B)
Ertragsfunktion Die Ertragsfunktion hängt in der konkreten Problemstellung nur von a j ab, welches aber wieder von x j abhängig ist, da a j ∈ A j (x j ) ist. Falls in der Periode (j, j + 1) gearbeitet wird, gibt die Ertragsfunktion das negativ genommene δ dem zurück.
j
⎧
6 Dynamisches Programm
j zugeordnet mit k ∈ Label Jedem Zustand auf der Stufe j wird ein Label L k K j . Somit ist das Label L k j das k-te Label auf der Stufe j. Im Grundmodell wird ein Zustand durch die bis zur Stufe j verbrauchten Ressourcen an Wo-
chenarbeitszeit R WA , Arbeit R A und Pause R P sowie dem Zielfunktionswert obj beschrieben. Zudem wird die Komponente s mo benötigt. Diese gibt an, um wie viel Uhr die erste Schicht in der Woche begonnen wurde. Die Einführung ist aufgrund der Zerlegung des Planungshorizonts in einwöchige Probleme notwendig.
Ein Label besitzt daher die Form (R W A , R A , R P , obj, s mo ) k j . Um einzelne Komponenten des Labels L k j zu benennen, wird die Notation (R A ) k j verwendet, um beispielsweise den aktuellen Ressourcenverbrauch an Arbeit des k-ten Zustands auf der Stufe j zu beschreiben.
Der Initialisierungszustand
x
init
, welcher durch das Label
L
1
wird, ist
L
1 0
= (0, 0,
R
P
,
0)
1
Im Folgenden wird
L
k
durch dieses Label
ausgedrückt
wird. Entscheidungen Ausgehend von einem x j wird überprüft, welche Entscheidungen a j zulässig sind, d. h. es wird die Menge A j (x j ) bestimmt, welche alle möglichen Entscheidungen ausgehend vom Zustand x j ∈ X j enthält. Hierbei ist eine mögliche Entscheidung a j in Abhängigkeit des Zustands x j • a j = l für alle j mit x j ∈ X j , wenn
gilt, d. h., der Arbeitszustand x j ist folgendermaßen charakterisiert: Von x j
aus kann die Mindestarbeitsdauer ohne Überschreitung von R WA beendet wer-den (48.1), die Höchstarbeitsdauer wurde noch nicht erreicht (48.2) und die Mindestpausendauer wurde absolviert (48.3). Eine weitere Entscheidung a j ist • a j = p für alle j mit x j ∈ X j , wenn
6 Dynamisches Programm
gilt, d. h. im Pausenzustand x j gilt eine der folgenden Bedingungen: Die maximale Wochenarbeitszeit bzw. Höchstarbeitsdauer wurde erreicht (49.1), die Mindestarbeitsdauer am Tag wurde erreicht (49.2), die Mindestpausendauer wurde noch nicht erreicht (49.3) oder die Mindestpausendauer wurde erreicht und es wurde noch nicht begonnen zu arbeiten (49.4). Aus obigen Beschreibungen wird deutlich, dass von bestimmten Zuständen aus auch beide Aktionen {Arbeit, P ause} durchgeführt werden können. Dies
Transformationsfunktion Durch die Transformationsfunktion t(x j , a j ) wird ein neuer Zustand x j+1 erzeugt, welcher durch das Label L j+1 ausgedrückt wird. Bei der Beschreibung der Transformationsfunktion wird, um die Notation einfach zu halten, ein Label nur durch seine Stufe beschrieben und nicht durch die Nummerierung k des Labels.
Die Transformationsfunktion t(x j , a j ) hängt von der Entscheidung a j ab. Es wird daher zur Darstellung t(x j , a j ) nach der Entscheidung aufgeteilt. Hierbei gibt t l (x j , l) die Transformationsfunktion für eine Arbeit a j = l und t p (x j , p) die Transformationsfunktion für eine Pause a j = p an. Je nach Entscheidung a j werden andere Komponenten eines Zustandes aktualisiert. Das neue Label L j+1 wird gebildet, indem das Vorgängerlabel L j dupliziert wird. Dies wird im Folgenden als L j+1 ← L j dargestellt. Danach werden entsprechende Komponenten bei L j+1 aktualisiert. Im Folgenden werden nur die Komponenten beschrieben, welche sich von L j auf L j+1 ändern. Es gilt:
⎧
t l
t p
Anschaulich wird durch die Entscheidung für Arbeit zwischen der Stufe j und
j + 1 der Ressourcenverbrauch von Wochenarbeitszeit R WA (50.1) und Arbeitszeit R A (50.2) um Eins erhöht und der Zielfunktionswert (50.3) um δ dem
j
erniedrigt. Der Wert von R P bleibt gleich und wird deswegen in keiner Gleichung explizit erwähnt. Wurde bisher der erste Schichtstart in der Woche noch nicht festgelegt, so wird dieser auf j gesetzt (50.4). Der Pfeil ⇒ drückt hierbei eine Kausalität aus. Falls die Bedingung auf der linken Seite zutrifft, so folgt die rechte Seite. Trifft die Bedingung nicht zu, so verändert sich nichts an der Komponente (s mo ) und es gilt (s mo ) j = (s mo ) j+1 .
59
6 Dynamisches Programm
Bei einer Pause bleibt der Wert der Komponenten R WA , obj und s mo gleich. Falls durch a j die erste Pausenperiode gegeben ist, also in Periode j − 1 keidurch die Indikatorfunktion 31 zuerst R P ne Pause gehalten wurde, wird
j
auf Null gesetzt, bevor es um Eins erhöht wird (51.2). Ist es nicht die erste Pausenperiode, so wird der Ressourcenverbrauch von R P um Eins bis zum maximalen Wert von R P erhöht. Die Beschränkung auf R P wurde gewählt, um
im späteren Abschnitt bei den Dominanzregeln möglichst wenig Unterschei-dungen treffen zu müssen. Ein Zustand, welcher mehr als R P Pausenperioden
hat, unterscheidet sich von seiner „Güte“ nicht von einem Zustand mit genau
R P Pausenperioden.
von einem Pausenzustand unterscheiden zu können. In einem Pausenzustand
Dominanzregeln Die Effizienz des Algorithmus beruht auf der Anzahl an erzeugten Zuständen. Um nur die notwendigen Zustände zu speichern, werden unnötige Zustände, die in ihrer Fortsetzung nicht mehr zum Optimum führen können, gelöscht. Hierfür sind Dominanzbeziehungen zwischen Zuständen notwendig. Diese werden bei der Überprüfung der Effizienz EF F (X j ) angewandt. Es werden zuerst allgemeine Dominanzregeln dargestellt, bevor diese, als mathematische Bedingungen formuliert, auf das Schichtplanungsproblem an-
gelöscht werden. Seien S und S die Schichtpläne, welche L k
Für eine Dominanz L k
• Setzt man den Schichtplan S fort, so müssen mindestens genauso viele δ dem (bzw. in der späteren Erweiterung auch die δ D ) in die Zielfunkti- j aus. Seies, weil sie nur von L k j aus erreichbar sind oder weil L k j mehr Ressourcen an Arbeit bzw. Wochenarbeit besitzt, um diese einzubeziehen.
• Der Zielfunktionswert von L k j entsprechen.
• Der erste Schichtbeginn in der gesamten Woche ist bei S später oder gleich spät wie bei S .
Obige Punkte werden bei den Erklärungen der einzelnen Dominanzregeln anhand mathematischer Bedingungen erläutert. Für die Anwendung von Dominanzregeln werden im Grundmodell zwei Grup- pen vonLabels untereinander verglichen. Gruppe (I) mit Labels, welche den
31 Die Indikatorfunktion wird zur Vereinfachung der Darstellung verwendet. Die explizite
Modellierung der Indikatorfunktion ist in Kapitel 6.2.3 erläutert.
60
Zustand „Pause“ durch
Zustand „Arbeit“ durch
j dominiert L k terschiedliche Labels. L k hungen gegeben sind:
Erläuterung der Dominanzregeln:
In beiden Fällen I und II muss durch (52.1) bzw. (53.1) der dominierende Zustand weniger oder gleich viel Wochenarbeitszeit besitzen. Überdies wird durch (52.3) bzw. (53.4) festgelegt, dass der dominierende Zustand einen geringeren oder gleich großen Zielfunktionswert besitzt. Durch (52.4) bzw. (53.5) wird vorgegeben, dass beim Schichtplan des dominierenden Zustands
L
k j
die erste Schicht der Woche später beginnt
als
beim
dominierten Zustand L k j . Es ist auch möglich, dass bei L k
länge R P absolviert wurde, bevor die erste Schicht begonnen wurde.
Bedingungen (52.4) und (53.5) sind notwendig, da der Schichtplan über dem gesamten Planungshorizont aus der Kombination von einzelnen Wochenplänen zusammengesetzt wird. In einem Schichtplan könnte eine Arbeit in den letzten Perioden des Sonntags beendet werden, wodurch ein Schichtbeginn der nächsten Woche aufgrund der Mindestpausenlänge erst verspätet möglich ist. Da bei der Erstellung der Labels unklar ist, welche Wochenschichtpläne zu einem optimalen Schichtplan über den gesamten Planungshorizont kombiniert werden, sind Labels dominierend, welche einen späteren ersten Schichtbeginn in der Woche haben, da diese mit mehr Schichtplänen aus der Vorwoche kombiniert werden können.
61
6 Dynamisches Programm
Wenn beide Labels eine Pausenperiode darstellen (Fall I), so gilt
L
k
wenn der Zustand
L
k j
zusätzlich eine längere Pause
absolviert
hat (52.2). Für den Fall II, dass beide Labels eine Arbeitsperiode darstellen, müssen folgende Bedingungen zusätzlich gegeben sein. Bedingung (53.2) stellt sicher, dass von beiden Zuständen ein Pausenzustand zur gleichen Zeit erreicht werden könnte. Dies ist
aus
folgendem Grund notwendig: Es ist eine Situation denkbar, in welcher beispielsweise
k
k
k
j besser als L k gilt. Auf den ersten Blick scheint L k j zu sein. Der Zustand L k
j
kann jedoch im Gesamten einen in Bezug auf den Zielfunktionswert schlech-teren Endzustand ergeben. Seien hierfür S und S die Schichtpläne (Politiken), welche L k j eine Periode eher
in die Pause gegangen werden als bei S. Sei die Stufe des frühesten Pausen-zustands bei S mit ˜ j bezeichnet. Nach Absolvierung der Mindestpausendauer bei S kann somit ein δ dem ( ˜ j) dem Zielfunktionswert hinzugefügt werden,
welches für den Schichtplan S nicht erreichbar wäre, da im Schichtplan S in der Stufe ˜ j noch die letzte Periode der Mindestpausenlänge absolviert werden muss.
Bedingung (53.3) besagt, dass der dominierende Zustand höchstens soviel an der Ressource R A verbraucht hat, wie der dominierte Zustand.
Bestimmung der optimalen Politik Nach Berechnung aller Labels für jede einzelne Woche, kann aus den nicht-dominierten Labels die optimale Politik
a ∗ und die Folge der optimalen Zustände x ∗ bestimmt werden.
Das Vorgehen hierfür gliedert sich, wie im Algorithmus 2 dargestellt, in zwei Teilschritte A und B. In A wird aus den Endzuständen der einzelnen Wochen w die Kombination der besten Endzustände ermittelt, wobei von jeder Woche genau ein Endzustand berücksichtigt werden muss und der Übergang zwischen zwei Wochen entsprechende Nebenbedingungen einhalten muss. Für jede Woche wird darauf im Teilschritt B mithilfe der Rekursionsgleichung
anhand
des in A ermittelten Zustands
x
∗
und Zustände
x
∗
n−j
mit
j
= 1,
..., n
ermittelt. Es wird hierbei rekursiv vorgegangen, um
alle
vorhergehenden Zustände und Entscheidungen mithilfe der Rekursionsgleichung zu berechnen. 62
6 Dynamisches Programm
Zu A) Bezeichne w i die letzte Stufe einer Woche i ∈ W. 32 Die Endzustände mit k i ∈ K w i bezeichnet. Um die entsprecheneiner Woche werden als L k i
w i
den Endzustände zu finden, welche den Zielfunktionswert über den gesamten Planungshorizont minimieren, ist folgendes Minimierungsproblem zu lösen.
unter der Nebenbedingung
k i
Dieses Minimierungsproblem lässt sich als Kombinationsproblem lösen. Bei einem Planungshorizont von beispielsweise drei Wochen wird aus allen Endzumit i ∈ {1, 2, 3} alle Kombinationen ständen L k i L k 1 , L k 2 , L k 3 bestimmt.
w i w 1 w 2 w 3
Sind beispielsweise die Anzahl der Labels auf der letzten Stufe der Wochen durch |K w 1 | = 30, |K w 2 | = 23 und |K w 3 | = 25 gegeben, so müssen insgesamt 30 · 23 · 25 = 17250 Kombinationen berechnet werden. Die Kombination mit dem kleinsten Zielfunktionswert wird als Optimum
festgelegt, wodurch die drei Zustände x ∗ mit i = 1, 2, 3 bekannt sind.
w i
Um Nebenbedingung (55.1) im Kombinationsproblem zu berücksichtigen, wird ein Strafterm eingeführt, z.B. M 0, welcher zum Zielfunktionswert ad- diertwird, um zu verhindern, dass die entsprechende Kombination den kleinsten Zielfunktionswert bilden kann.
Zu B) Ausgehend von den x ∗ werden nun rekursiv für jede Woche separat
w i
die restlichen Zustände und Entscheidungen iterativ bestimmt. Da jede Woche
einzeln betrachtet wird, ist der Zustand x ∗ im Folgenden als x ∗ n bezeichnet.
w i
Es werden nun die folgenden beiden Schritte für j = 1, ..., n wiederholt.
1. Aus x ∗ n−j+1 wird zuerst a ∗ n−j für j = 1, ..., n ermittelt. Es gilt ∗
Ist im bekannten Zustand x ∗ n−j+1 der Ressourcenverbrauch an Arbeit
R A größer als Null, so ist dies nur möglich, wenn auf der vorherigen Stufe n − j die Entscheidung {Arbeit} getroffen wurde (56.1). Ist der Ressourcenverbrauch gleich Null, so muss eine Pause eingelegt worden sein (56.2).
32 Bei Perioden über eine Stunde und sieben Tage in einer Woche sind beispielsweise w 1 =
24 · 7 = 168, w 2 = 24 · 24 = 336 etc.
63
6 Dynamisches Programm
n−j+1
) = (obj)
∗
2. Aus
V
(x
∗
gesuchte
x
∗
Es wird
also
iterativ derjenige Zustand
x
k
welchen bei
a
∗
n−j
=
l k
gilt und bei a ∗ n−j = p Folgendes: k ∗
Wurde auf der Stufe n − j als optimale Entscheidung getroffen, eine weitere
k
Periode zu
arbeiten,
so muss nach (57.1) der Ressourcenverbrauch
aus
dem unbekannten Zustand
x
k
kannten Ressourcenverbrauch funktionswert (obj)
k
Wert (obj)
∗
n−j+1 entsprechen. Wurde entschieden zu pausieren
sourcenverbrauch
sourcenverbrauch
gleich Eins, so muss nach (58.2) die Stufe n−j +1 das Ende der ersten Pausen- periode seinund die Stufe n−j das Ende einer Arbeitsperiode. Im Zustand der
k
= R P , sodass R P Arbeit gilt aufgrund der Transformationsfunktion stets
n−j
der gesuchte Zustand in (58.2) diese Bedingung erfüllen muss. Wurde bereits
die Mindestpausenlänge
R
P
erreicht, so wird nach der Transformationsfunktion (51.2) die Ressource
R
P
nicht mehr erhöht. Deshalb ist nach (58.3) der Ressourcenverbrauch von
R
P
im unbekannten Zustand
x
k
ten Zustand
x
∗
n−j+1
gleich
R
P
und notwendig, um die Zustände
x
k
zieren. 64
6 Dynamisches Programm
Der Zielfunktionswert muss nach (58.4) auf beiden Stufen n−j und n−j +1 gleich sein.
Es ist nicht möglich, dass die obigen Bedingungen für mehrere Zustände x k n−j zutreffen, da in diesem Fall anhand der Dominanzregeln schwächere oder identische Zustände gelöscht werden, sodass nur ein Zustand mit den entsprechenden Charakteristika übrig bleibt.
Schritt 1 und 2 wird für das nächste j fortgesetzt, solange bis man (x ∗ 0 , a ∗ 0 ) der
jeweiligen Woche erhält. Wurde dies bei allen Wochen fortgesetzt, so kann aus
allen ermittelten a ∗ j der Schichtplan des gesamten Planungshorizonts erstellt werden.
Darstellung der Indikatorfunktionen Die in diesem bzw. nächsten Kapitel erwähnten Indikatorfunktionen I {p} (a j−1 ) bzw. I {l} (a j−1 ), welche bei der Bestimmung der möglichen Entscheidung a j ∈ A j (x j ) verwendet werden, sind mit Binärvariablen vergleichbar. Da im Zustand j die Entscheidung a j−1 unbekannt ist, können die Werte für I {p} (a j−1 ) bzw. I {l} (a j−1 ) nicht direkt bestimmt werden. Daher müssen diese durch den Ressourcenverbrauch an Arbeit bestimmt werden. Es gilt Folgendes. ⎧
I {p} (a j−1 ) =
⎪ ⎪ ⎪ ⎪ ⎪ ⎩
bzw. ⎧
I {l} (a j−1 ) =
⎪ ⎪ ⎪ ⎪ ⎪ ⎩
Die Schreibweise mit Indikatorfunktionen ist somit eine abkürzende Schreib-
weise, um in den einzelnen Formeln auf die Bedingungen „Wenn
dann...“ bzw. „Wenn
6.3 Einführung weiterer Nebenbedingungen
In diesem Kapitel wird das dynamische Programm ergänzt, um weitere Nebenbedingungen in der Schichtplanung einplanen zu können. Es werden die Veränderungen erklärt, welche für die Berücksichtigung des Dienstes, der Überstunden, der Mittagspause und des Startzeitfensters notwendig sind. Jedes dieser Kapitel ist folgendermaßen unterteilt. Es wird - falls zutreffend - darauf eingegangen, wie sich die Ertragsfunktion ändert und welche Entscheidungen in Abhängigkeit des Zustands möglich sind. Des Weiteren wird erklärt, wie die R D
6 Dynamisches Programm
Zustände charakterisiert sind (d. h. welche Komponenten in einem Label enthalten sind), wie die Zustände durch die Transformationsfunktion aktualisiert werden, wie die Dominanzregeln abgeändert werden und wie die optimale Politik bestimmt wird. Die Problembeschreibungen der einzelnen Erweiterungen, sind in den Kapiteln 5.2.1-5.2.4 ausführlich erläutert. Das vollständige DP wird nochmals im Anhang B dargestellt.
6.3.1 Berücksichtigung eines Dienstes
Neben der Einplanung der Arbeit wird nun ein Bereitschaftsdienst berücksichtigt, welcher eine feste Länge besitzt und jeden Tag zum selben Zeitpunkt beginnt. Es dürfen pro Woche einem Arzt höchstens N D Dienste zugeteilt werden. Die Arbeitszeit der Dienste wird anteilig auf die Wochenarbeitszeit angerechnet. In Kapitel 5.2.1 werden die Nebenbedingungen dargestellt. Durch die Einführung eines Dienstes ist eine weitere Entscheidung möglich. Sei a j = d, wenn auf der Stufe j entschieden wird, einen Dienst in der Periode (j, j + 1) zu machen.
Ertragsfunktion Die Ertragsfunktion ändert sich zu
⎧
r(x j , a j ) = −δ dem
j
Es werden nun zusätzlich zu den Werten der Dualvariablen δ dem die Werte der Dualvariablen δ D in der Ertragsfunktion berücksichtigt, wenn ein Dienst absolviert wird.
k
Label Das Label
chen Komponenten R D , n D und d so charakterisiert nun einen Zustand. Hierbei gibt R D den Ressourcenverbrauch des Dienstes 34 und n D ∈ {0, ...N D } die bisherige Anzahl an Diensten der Woche an. Die Komponente d so beschreibt, ob ein Dienst am Sonntag stattfindet und ist 1, wenn dies der Fall ist und 0 sonst.
Der Initialisierungszustand x init wird durch L 1 0 = (0, 0, 0, R P , 0, 0, 0, 0) 1 0 aus-
gedrückt.Ausgehend von diesem Label wird jede Woche separat berechnet.
Entscheidungen Die möglichen Entscheidungen a j in Abhängigkeit des Zu-stands x j sind nun a j ∈ P{l, d, p}. Dies bedeutet a j kann jede Kombination aus Arbeit, Dienst und Pause annehmen.
34 Der Ressourcenverbrauch entspricht den absolvierten Stunden eines Dienstes.
66
6 Dynamisches Programm
Im Einzelnen müssen folgende Ergänzungen bei den einzelnen Entscheidungen gemacht werden.
• a j = l für alle j mit x j ∈ X j , wenn zusätzlich
∧ R D = 0 (48.4)
j
gilt, d. h., es kann nur gearbeitet werden, wenn gerade kein Dienst absolviert wird.
• a j = p für alle j mit x j ∈ X j , wenn abweichend
∨
gilt, d. h. es kann auch pausiert werden, wenn die Höchstdauer (49.1b) oder Mindestdauer (49.2b) für einen Dienst erreicht worden ist. Alternativ kann die Mindestpausendauer erreicht worden sein (49.4b), wobei es sich um einen Pausenzustand handeln muss (Ressourcenverbrauch an Arbeit und Dienst ist
Null). Es sei daran erinnert, dass in der Problemformulierung R D = R D gilt. • a j = d für alle j mit x j ∈ X j , wenn
∧
∧
∧ n D + I {S D } (j mod 24) N D (59.4)
gilt, d. h. der begonnene Dienst kann ohne Überschreitung von R WA beendet werden (59.1). Hierbei gibt ˜ f 1 (j) die Stundenanzahl des auf der Stufe j begin-
nenden Dienstes an, welcher zur regulären Wochenarbeitszeit addiert wird. 35
Zusätzlich muss die Mindestpausenlänge erfüllt sein (59.2). Ein Dienst kann absolviert werden, wenn entweder die Stufe j den Zeitpunkt S D darstellt, in welcher ein Dienst starten kann oder bereits ein Dienst gestartet wurde (59.3). Durch (59.4) wird sichergestellt, dass ein Dienst nur begonnen wird, wenn die Anzahl N D an erlaubten Diensten dadurch nicht überschritten wird.
Transformationsfunktion Da eine neue Entscheidung eingeführt wurde, wird nun t d (x j , d) für a j = d als Transformationsfunktion definiert. Im Folgenden werden notwendige Änderungen bzw. Ergänzungen bei den bisherigen Funk- 35 ˜ f 1 (j) entspricht f 1 (j), wobei ˜ f 1 (j) für eine Stufe j und f 1 (j) für einen Knoten j definiert
ist.
67
6 Dynamisches Programm
tionen beschrieben. Es gilt L j+1 ← L j und die Komponenten, welche sich zusätzlich zum Grundmodell von L j auf L j+1 ändern, sind:
t d
Wird eine Pause eingelegt, so wird durch (51.1b) zusätzlich gesetzt. Somit wird ein Pausenzustand durch Arbeitszustand durch
gekennzeichnet. Weitere Änderungen sind für die Transformationsfunktion bei einer Pause nicht notwendig.
Wird die Entscheidung für einen Dienst getroffen, so wird durch (60.1) die
Wochenarbeitszeit um ˜ f 1 (j) erhöht, wenn der Dienst in j gestartet wurde I {S D } (j mod 24) = 1 . Dies bedeutet, die Addition der zusätzlichen Wochen- arbeitszeit einesDienstes zum bisherigen R WA erfolgt in der ersten Periode
eines Dienstes.
Die Ressourcenvariable R D erhöht sich um Eins (60.2) und der Zielfunktionswert wird um δ D j verringert (60.3). Da δ D j nur für die Anfangsperiode eines
Dienstes ungleich Null sein kann, wird ähnlich der Wochenarbeitszeit in der ersten Periode des Dienstes auch die Verringerung der Zielfunktion berücksichtigt.
Wurde bisher noch keine Schicht in der Woche begonnen wird durch (60.4) der früheste Startzeitpunkt der ersten Schicht in der Woche auf j gesetzt.
Die Anzahl der bisher gehaltenen Dienste erhöht sich in der ersten Dienst- periode durch(60.5) um Eins.
Aufgrund der Zerlegung in einzelne Wochenprobleme ist es notwendig zu wissen, ob am Sonntag ein Dienst gehalten wird, welcher am Montag der nächsten Woche beendet wird. Dies wird durch (60.6) berücksichtigt. Der Sonntag einer Woche besitzt die 24 Stufen j = 144, ..., 167. Wird ein Dienst am Sonntag
gestartet, so ergibt
gesetzt. Würden Dienste um 0 Uhr jedes Tages gestartet werden, so wäre für
j = 144 die Berechnung
68
6 Dynamisches Programm
Dienst am Sonntag, welcher 24 Stunden dauert, auch am Sonntag beendet sein, wodurch die Komponente (s mo ) j nicht aktualisiert werden müsste.
Dominanzregeln Es werden nun drei Arten von Zuständen unterschieden.
(I): Ein Pausenzustand mit (R
A
)
k j
= (R
D
)
k
(R
A
)
k j
>
0 und (III): ein Dienstzustand mit (R
D
)
k j
L
k
Folgende Gleichungen müssen ergänzt werden, um festzustellen, ob
L
k
j
gilt.
Der Pausenzustand I wird nun durch einen Zustand gekennzeichnet, bei welchem der Ressourcenverbrauch von R A und R D Null ist. Der dominierende und der dominierte Zustand sind durch einen solchen Ressourcenverbrauch gekennzeichnet.
Im Fall III ist der dominierte Zustand x k
j ausschließlich ein Dienstzustand.
Die dominierenden Zustände können Zustände der Arbeit oder des Dienstes sein. Hierdurch wird verhindert, dass ein Dienstzustand einen Arbeitszustand dominieren kann. Grund hierfür ist, dass von einem Dienstzustand in Stufe j j+i mit i ∈ N 0 erreicht werden können, wie von einem Arbeits- aus nicht alle δ dem
zustand aus, was der Grundregel der Dominanz widerspricht. Für alle drei Fälle gilt nun nach Bedingungen (52.6), (53.7) und (61.5) zusätzlich, dass im dominierenden Zustand höchstens gleich viele Dienste wie im schwachen Zustand absolviert wurden.
Bei den Bedingungen (52.5), (53.6) und (61.4) zeigt S D + R P den Zeitpunkt
69
6 Dynamisches Programm
an, ab welchem bei Absolvierung eines Dienstes am Sonntag der vorherigen Woche, eine Schicht aufgenommen werden könnte. Dies ist der Zeitpunkt des Schichtendes plus der Mindestpausendauer. Dieser Zeitpunkt wird im Folgenden als j mo bezeichnet. Der Schichtplan, welcher bis zu einem dominierten j führt, muss eine Schicht enthalten, welche früher als j mo beginnt. Alternativ ist es möglich, dass beim Schichtplan des dominierenden Zustands L k j die erste Schicht in einer späteren Periode als j mo anfängt. Grund für diese Bedingung ist die Kombination von einzelnen Wochenplänen zu einem Schichtplan über den gesamten Planungshorizont. Ein Schichtplan, welcher ermöglicht, dass in der Vorwoche am Sonntag ein Dienst eingeplant werden kann, ist u. U. wertvoll, da das δ D vom Sonntag einen sehr großen Wert annehmen könnte. Deshalb kann ein Zustand eines solchen Schichtplans nur von einem Zustand dominiert werden, welcher im Hinblick auf die Ermöglichung eines Dienstes am Sonntag der Vorwoche mindestens genauso gut ist.
Die Erklärung von Bedingungen (61.1), (61.2) und (61.3) ist identisch zu der Erklärung von (52.1), (52.3) und (52.4).
Bestimmung der optimalen Politik Durch die Einführung eines Dienstes sind sowohl bei der Bestimmung der besten Endzustände (Teilschritt A) als auch bei der Ermittlung der übrigen Entscheidungen und Zustände (Teilschritt B) Nebenbedingungen zu ergänzen.
Zu A) Bei der Kombination der unterschiedlichen Wochen muss nun der Dienst am Sonntag, welcher am Montag der nächsten Woche endet, beachtet werden. Folgende Ergänzungen bei den Nebenbedingungen des Minimierungs-problems sind notwendig. Hierbei drückt der Parameter ˜ f 1 (j so D ) die Stundenzahl
von einem Dienst am Sonntag aus, welche zur Wochenarbeitszeit der nächsten Woche angerechnet wird.
= 1 ⇒ (s mo ) w i+1 S D + R P ∀i = 1, ..., |W| − 1 (d so ) k i (55.2)
w i
k i+1
Bedingung (55.2) stellt sicher, dass ein Schichtplan mit einem Dienst am Sonntag nur mit einem Schichtplan in der darauf folgenden Woche kombiniert wird, in welchem die Mindestpausenlänge nach dem Dienst am Sonntag der Vorwoche eingehalten wird. Da die angerechneten Stunden eines Dienstes am Sonntag für die nächste Woche w i+1 zählen, wird durch (55.3) vermieden, dass in der
Woche w i+1 die maximale Wochenarbeitszeit R WA überschritten wird.
Der Strafterm für das Kombinationsproblem muss nun zusätzlich Bedingungen (55.2) und (55.3) berücksichtigen.
70
6 Dynamisches Programm
Zu B) Bei der Ermittlung der übrigen Zustände x ∗ n−j und Entscheidun-
gen a ∗ n−j für j = 1, ...n muss die neue mögliche Entscheidung a j = d für den Dienst berücksichtigt werden.
1. Bei der Bestimmung von a ∗ n−j müssen folgende Änderungen implementiert werden. ∗ ∗
Durch die Entscheidung für eine Pause a ∗ n−j = p wird nun nach der
Transformationsfunktion (51.1b) neben dem Ressourcenverbrauch von R A auch der Ressourcenverbrauch R D auf Null gesetzt. Somit muss,
∗ ∗
R A R D = = 0 ist, die vorhergehende Entscheidung wenn
n−j+1 n−j+1
a ∗ n−j = p gewesen sein (56.2b). Ist der Ressourcenverbrauch vom Dienst
∗
wirkt worden sein (56.3).
2. Um die weiteren x ∗ n−j zu berechnen, gilt nun ergänzend für die Entschei-dung a ∗ n−j = p k ∗
und für die Entscheidung a ∗ n−j = d
Um auf den optimalen Vorgängerzustand x ∗ n−j zu schließen, ist bei a ∗ n−j =
p nach (58.3b) abweichend zu berücksichtigen, dass wenn beide Zustände
n−j
und
x
∗
x
k
n−j+1
bereits die Mindestpausenlänge
absolviert
haben, der Pausenzustand nun zusätzlich durch Bei
a
∗
n−j
=
d
ist das
k
∈
K
n−j
gesucht für welches Folgendes gilt: Der
unbekannte Zustand
x
k
a
∗
n−j
=
d
von seiner Komponente (obj)
k
um
auf
den bekannten Wert von (obj)
∗ teren muss der Ressourcenverbrauch R D bei x
k um den bekannten Ressourcenverbrauch
6 Dynamisches Programm
6.3.2 Berücksichtigung von Überstunden und Fehlstunden
Überstunden und Fehlstunden werden durch eine Abweichung von der ver-
traglichen Wochenarbeitszeit v gekennzeichnet. Es sind maximal R WA − v Überstunden möglich. Überstunden werden mit dem Kostenparameter c over bewertet und ausbezahlte Überstunden mit dem Kostenparameter c paid . Eine ausführliche Beschreibung der Problemstellung enthält Kapitel 5.2.2. Das bisherige Label ändert sich durch die Einführung dieser Nebenbedingungen nicht. Ebenso bleiben alle Entscheidungen a j ∈ P{l, d, p} und die Zustände, wann diese eintreten können, erhalten. Die Berechnung der Überstunden mit dem Kostenparameter c over werden durch die Transformationsfunktion berücksichtigt. Überstunden, welche nicht durch Fehlstunden in der darauf folgenden Woche beglichen werden und laut Vertrag ausbezahlt werden, werden in diesem Kapitel im Abschnitt „Bestimmung der optimalen Politik“ behandelt.
Ertragsfunktion Die Ertragsfunktion berücksichtigt nun Überstunden, welche direkt bei Auftreten verrechnet werden. Es gilt nun:
j
I {S D } (j mod 24) + c over · min
mit
Wird eine weitere Stunde gearbeitet und ist mit dieser Entscheidung die gesamte Wochenarbeitszeit größer als die vertragliche Wochenarbeitszeit v, so wird bei Bildung der Ertragsfunktion in (47c) die Kosten einer Überstunde c over addiert. Die Entscheidung a j = l gibt an, dass eine einzige weitere Periode gearbeitet wird (I {l} (a j ) ist somit Eins). Daher kann höchstens ein c over ad-
diert werden. Dies wird durch den Ausdruck min
sichergestellt. Für
Ergebnis Eins.
Wird durch die Aufnahme eines Dienstes I {S D } (j mod 24) = 1 die vertragliche Wochenarbeitszeit überschritten, so werden die neu hinzugekommenen
der Ertragsfunktion addiert. Der rechte Teil von Aufnahme des Dienstes
(R WA ) j+1 − v berechnet werden. Galt vor Aufnahme des Dienstes
so sind nur die neu hinzugekommenen Überstunden
berücksichtigen.
72
6 Dynamisches Programm
Transformationsfunktion Bei der Transformationsfunktion t(x j , a j ) sind somit folgende Änderungen notwendig:
⎧
t l
t d
Bei der Bildung des Zielfunktionswertes wird nun eine Fallunterscheidung getroffen, ob die vertragliche Wochenarbeitszeit v überschritten ist. Ist dies nicht der Fall (50.3b), so brauchen keine Überstunden berücksichtigt werden. Bei Überschreitung von v werden die Kosten einer Überstunde c over addiert (50.5).
Wird v durch die Aufnahme eines Dienstes überschritten, so wird c over ·
ΔR WA zum Zielfunktionswert addiert (60.7). Wird v nicht überschritten,
j+1
so gilt die Bedingung (60.3b).
Bestimmung der optimalen Politik Bei der Bestimmung der optimalen Politik über den gesamten Planungshorizont müssen in Teilschritt A beim Minimierungsproblem auch die ausbezahlten Überstunden berücksichtigt werden. Seien analog der Definition in Kapitel 5.2.2, o w i , u w i und h w i als die Überstunden, Fehlstunden und ausbezahlten Überstunden der Woche i ∈ W definiert. Zu A) Die Zielfunktion des Minimierungsproblems ändert sich nun zu
k i ∈Kw i ∀i∈W
und folgende Nebenbedingungen werden ergänzt
u w i = max
o w i − u w i+1 ; 0 ∀i ∈ 1, ...|W| − 1 h w i = max (55.6)
Zu der Summe der jeweils negativen (obj) k i , wird durch (54b) auch die ausbe-
w i
zahlten Überstunden h w i hinzu addiert. Dabei wird h w i in (55.6) als Überstunden berechnet, welche in der darauf folgenden Woche nicht durch Fehlstunden ausgeglichen werden können. Die Überstunden o w i und Fehlstunden u w i sind nichtnegative Werte und werden in (55.4) und (55.5) bestimmt.
73
6 Dynamisches Programm
Zu B) Im Teilschritt B muss nur bei der Bestimmung der weiteren Zustände im Teilschritt 2 berücksichtigt werden, dass die Überstunden in der Bestimmung von (obj) j einfließen.
1. Die Bestimmung der a ∗ n−j im Teilschritt 1 werden durch Überstunden bzw. Fehlstunden nicht beeinflusst.
2. Für alle j = 1, ..., n gilt nun abweichend Folgendes, wenn die Entschei-
dung a ∗ n−j = l gewesen ist:
∗
(obj) k n−j − δ dem
und für
a
∗
n−j
=
d
muss Bedingung (62.1) geändert werden zu (obj)
k
max
Nach (57.2b) muss der Wert (obj)
k
dem
δ
dem n−j
zuzüglich den Kosten einer einzigen möglichen Überstunde den bekannten Wert (obj) ∗
mehr Stunden als die vertragliche Wochenarbeitszeit gearbeitet, d. h.
∗ ∗
R WA R WA − v; 0 > v, so ergibt min 1; max den Wert
n−j+1 n−j+1
Eins. Wurden weniger oder gleich v Stunden gearbeitet, so ergibt der Term Null, da in diesem Fall keine Überstunde zu berücksichtigen sind. In Bedingung (62.1b) werden die Kosten für Überstunden bei einem Dienst behandelt. Startet der Dienst auf der Stufe n − j, so wird der Wo-
chenarbeitszeit zugerechnet. Ergibt sich nun in
so wird diese durch den Teilterm
Entscheidung des Dienstes
gekommenen Überstunden mit
6.3.3 Berücksichtigung einer Mittagspause
Für eine Mittagspause gilt, dass vor der Mittagspause mindestens T pre Perioden und höchstens T late Perioden gearbeitet und nach der Mittagspause T post Perioden gearbeitet werden. Die Mittagspause dauert eine Periode. Die Problembeschreibung ist ausführlich in Kapitel 5.2.3 dargestellt.
74
6 Dynamisches Programm
Um eine Mittagspause in der Charakterisierung eines Zustands zu berücksichtigen, wird eine neue Komponente (mp) j eingeführt, wobei ⎧
⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎨
(mp) j =
⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎪ ⎩
gilt. Somit ist das Label nun
Initialisierungszustand x init = L 1
Entscheidungen Eine Mittagspause wird mit der Entscheidung a j = b (wie das englische „break“) gekennzeichnet, wodurch nun a j ∈ P{l, d, p, b} sein kann. Durch die Einführung der Mittagspause ändern sich die möglichen Entscheidungen in Abhängigkeit des Zustandes wie folgt • a j = l für alle j mit x j ∈ X j , wenn abweichend
< R A ∧ ∧ ¬ = T late ∧ (mp) j = −1 R A R A (48.2b)
j j
gilt.
• a j = p für alle j mit x j ∈ X j , wenn
R A ∧ j − T post − 1 (mp) j R D ∨ ∨ R A R D (49.2c)
j j
∧ (mp) j = −1 (49.5)
gilt.
• a j = b für alle j mit x j ∈ X j , wenn (mp) j = −1 (63.1)
∧
gilt. Die Erweiterung von Bedingung (48.2) stellt sicher, dass ein Schichtplan nicht fortgesetzt werden kann, in welchem bereits T late Perioden gearbeitet wurden, jedoch noch keine Mittagspause absolviert wurde. Das Symbol „¬“ bezeichnet hierbei die Negation einer Bedingung.
Bei Bedingung (49.2c) gilt nun, dass der Beginn einer Pause erst nach Absolvierung von T post Arbeitsperioden nach einer Mittagspause möglich ist. Konkret bedeutet der Ausdruck j − T post − 1 (mp) j Folgendes: Von der aktuellen Stufe j abzüglich der T post Arbeitsperioden und der einperiodigen Mittagspause muss sich eine Stufe ergeben, welche der Stufe, in welcher die Mittagspause gehalten wurde, oder einer späteren entspricht. Diese Gleichung könnte auch erfüllt sein, falls (mp) j = −1, sodass durch (49.5) gefordert wird, dass bereits
75
6 Dynamisches Programm
eine Mittagspause absolviert worden ist, bevor eine Pause gemacht werden kann.
Eine Mittagspause kann nur erfolgen, wenn bisher noch keine gemacht wurde (63.1) und mindestens T pre Perioden und höchstens T late Perioden gearbeitet wurden (63.2). Zusätzlich muss eine Mittagspause so gelegt werden, dass die verpflichtenden T post Arbeitsperioden nach der Mittagspause innerhalb der maximalen Wochenarbeitszeit erfolgen können (63.3).
Transformationsfunktion Für die Entscheidung a j = b wird die Transformationsfunktion t b (x j , b) eingeführt. Die Komponente (mp) j nimmt die Werte -1 und ˜ j mit ˜ j ∈ N 0 an, welche in den Transformationsfunktionen t p (x j , b) der Pause und t b (x j , p) der Mittagspause berücksichtigt werden.
Wird eine Pause gemacht, so wird mit (51.3) die Information, dass eine Mittagspause gehalten wurde, auf −1 zurückgesetzt. Wird eine Mittagspause auf der Stufe j begonnen so erhält der Zustand j + 1 durch (64) diese Information.
Dominanzregeln Eine Änderung bei der Dominanz betrifft nur den Zustand II mit (R A ) k j > 0.
Bedingungen (53.8) und (53.9) fordern ähnlich wie Bedingung (53.2), dass von beiden Zuständen L k j der frühest mögliche Pausenzustand zur
gleichen Zeit erreicht werden kann. Analog zum Beispiel in Kapitel 6.2.3 bei der Erklärung der Dominanzregeln ist beispielsweise folgende Situation denkbar.
Die Schichtpläne S und S , welche zu den Labels L k j gehören, unterscheiden sich nur darin, dass bei S die Mittagspause eine Periode später als
bei S erfolgt und der Zielfunktionswert bei S kleiner als bei S ist. Die relevanten Komponenten, welche bei L k j unterschiedlich sind, werden durch
j + 1, j − (mp) k j − 1 = T post und (mp) k (obj) k
j
gegeben.
76
6 Dynamisches Programm
Bei S erfolgt laut Annahme die Mittagspause eine Periode früher als bei S. Daher ist in S bis zur Stufe j bereits T post Perioden nach der Mittagspause
nach der Mittagspause gearbeitet
Somit ist beim Schichtplan S ein Pausenzustand eine Periode früher möglich und es ist nach Ruhen der Mindestpausendauer ein δ dem erreichbar, welches für ˜ j
S nicht erreichbar ist. Das früheste δ dem , welches S erreichen kann, ist δ dem . ˜ j+1
Würden Bedingungen (53.8) und (53.9) nicht existieren, so würde in dieser j gelöscht werden, was fälschlicherweise zur Löschung des optimalen Schichtplans führen kann, falls δ dem Bestandteil dieses optimalen ˜ j
Plans ist.
Bestimmung der optimalen Politik Durch die Einführung einer Mittags- pause istbeim Minimierungsproblem zur Ermittlung der besten Endzustände keine Änderung notwendig. In Teilschritt B muss die neue Entscheidung a j = b eingebunden werden.
Zu B) Bei Teilschritt B müssen im ersten Abschnitt Änderungen für die
Folgerung von a ∗ j = l und a ∗ j = b gemacht werden. Im zweiten Abschnitt
müssen Änderungen für die Fälle a j = l und a j = b berücksichtigt werden.
1. Bei der Bestimmung der a ∗ n−j gilt nun:
∗
∗
Gilt im bekannten Zustand x ∗ R A n−j+1 , dass > 0 ist, so muss nun
n−j+1
nach (56.1b) darauf geachtet werden, dass auf der vorherigen Stufe n − j keine Mittagspause begonnen wurde. Ist dies der Fall, so kennzeichnet die
Entscheidung a ∗ n−j = l den Übergang von Stufe n − j auf Stufe n − j + 1 .
Wurde in Periode (n − j, n − j + 1) eine Mittagspause absolviert, so entspricht der Wert von (mp) ∗ n−j+1 der Nummer der vorherigen Stufe
n − j. Daher wird in diesem Fall die Entscheidung mit Bedingung (56.4) auf a ∗ n−j = b gesetzt.
2. Bei der Suche desjenigen optimalen k ∈ K n−j , dass die Entscheidung a ∗ n−j = b festlegt, gilt Folgendes:
k k ∗
6 Dynamisches Programm
Falls eine Mittagspause auf der Stufe n − j begonnen wurde, so muss nach (65.1) der gesuchte Zustand x k n−j ein Arbeitszustand sein und der
Ressourcenverbrauch von
R
A
darf sich zwischen den Stufen
n
−
j
und
n
−
j
+ 1 nicht erhöhen. Zusätzlich
ändert
sich nach (65.2) der Zielfunktionswert nicht und das gesuchte (obj)
k
(obj)
∗ n−j+1 besitzen.
6.3.4 Berücksichtigung eines Startzeitfensters
Die Startzeitpunkte der Arbeit innerhalb einer Woche dürfen maximal T win Perioden auseinander liegen, wobei nicht die Startzeiten des Dienstes berücksichtigt werden. Eine genaue Beschreibung der Problemstellung ist in Kapitel 5.2.4 zu finden.
Für die Modellierung dieser Nebenbedingung in der dynamischen Programmierung wird der Zustand x k j zusätzlich durch die Komponente e des frühesten Startzeitpunkts und der Komponente l des spätesten Startzeitpunkts der Arbeit innerhalb einer Woche charakterisiert.
k
Somit ist das neue Label
dem Initialisierungszustand x init = L 1
Entscheidungen Die Menge möglicher Entscheidungen bleibt gleich. Es muss jedoch berücksichtigt werden, dass die Entscheidung zum Beginn einer Arbeits- periode nurmöglich ist, wenn hierdurch das Startzeitfenster einer Woche nicht überschritten wird. Somit sind die folgenden Bedingungen für die Entscheidung
• a j = l für alle j mit x j ∈ X j notwendig:
Wird eine Arbeit auf der Stufe j begonnen - ist also I {p} (a j−1 ) = 1 und a j = l - so darf dies nach (48.5) nur in einem Zeitpunkt (j mod 24) erfolgen, welcher höchstens T win Perioden vom bisherigen frühesten Startzeitpunkt e entfernt liegt. Nach (48.6) darf dieser Zeitpunkt zum spätesten Startzeitpunkt l höchstens T win Perioden Abstand haben.
Transformationsfunktion Die Komponenten e und l werden in der Transformationsfunktion der Arbeit aktualisiert. Es gilt nun zusätzlich.
⎧
t l
6 Dynamisches Programm
Dies bedeutet, wenn die Arbeit in einem Zeitpunkt j mod 24 beginnt, welcher zeitlich früher (50.5) bzw. später (50.6) als der bisherige früheste bzw. späteste Startzeitpunkt gewesen ist, so wird (e) j+1 bzw. (l) j+1 auf den aktuellen Wert gesetzt.
Dominanzregel Setzt man den zum dominierenden Label L k j zugehörigen
Schichtplan S fort, so müssen alle δ dem bzw. δ D zu erreichen sein, welche auch j aus zu erreichen wären. Somit muss ausgeschlossen werden, dass das Label L k j ein Startzeitfenster besitzt, welches nicht mehr mit
Beispielsweise könnte für [e, l] k
das Label L k
bestimmte Werte von δ dem nie erreichen. Andererseits könnte für [6, 7] k
erreichen könnte. Für die Dominanzregel II ist somit Folgendes zu ergänzen.
Bei der Bestimmung der optimalen Politik muss keine Änderung durch Einführung eines Startzeitfensters vorgenommen werden.
6.3.5 Werte des vorherigen Planungshorizonts
Ähnlich wie bei der Darstellung für das MIP in Kapitel 5.2.5 können auch beim DP Werte aus dem vorherigen Planungshorizont berücksichtigt werden. R P für die bereits absolvierte Pausenlänge vor Beginn des Pla-nungshorizonts kann im Initialisierungszustand festgesetzt werden. Sei x init,1 =
R
P
,
0, 0, 0, 0,
−1,
24, 0)
1
che für das Label
R A
w
mit w ∈ W berücksichtigt. Dieser Parameter gibt die Anzahl an Stunden an, welche in der Woche w nicht zur Verfügung stehen. Sei allgemein x init,w der Initialisierungszustand der w-ten Woche. Dieser muss angepasst werden zu
w , 0, 0, R P , 0, 0, 0, 0, −1, 24, 0) 1 R A 0 .
Um die Initialisierungszustände im Algorithmus zu berücksichtigen, wird im Algorithmus 1 Zeile 2 zu x 0 ← x init,w
geändert.
79
6 Dynamisches Programm
Um Überstunden o 0 aus der Woche vor dem aktuellen Planungshorizont zu berücksichtigen, muss der Parameter o 0 bei der Berechnung der Überstunden einfließen. Dies wird durch eine Änderung von den Bedingungen (55.4) und (55.6) bewirkt, indem die Woche 0 bei der Berechnung berücksichtigt wird. Es gilt nun
o w i = max
h w i = o w i − u w i+1 ∀i ∈ 0, ..., |W| − 1 (55.6b)
6.4 Beschleunigung des Algorithmus
Aufgrund der Berücksichtigung des Startzeitfensters können viele Zustände nicht mehr dominiert werden. Hierdurch kommt es zu einem exponentiellen Anstieg der zu speichernden Zustände, da sich aus jedem nicht gelöschten Zustand wegen der vier möglichen Entscheidungen bis zu vier neue Zustände ergeben können.
Um dieses Problem zu umgehen und dabei nicht die Lösungsgüte zu verringern, wird an Stelle der Modifikationen von Kapitel 6.3.4 ein neuer Ansatz gewählt. Alle in 6.3.4 eingeführten Bedingungen werden somit durch die Bedingungen in diesem Kapitel ersetzt. Vor der Erläuterung dieses Ansatzes werden folgende Parameter aus Kapitel 5.3 nochmals erwähnt. Sei S A der früheste Startzeitpunkt und E A das späteste Ende einer Arbeitsschicht. Sei weiterhin S WE der erste Tag des Wochenendes mit S WE ∈ {1, ..., 7}.
In der Realität besteht nur in einem bestimmten Zeitraum Bedarf an Ärzten für geplante Operationen. Am Beispiel des Klinikums rechts der Isar ist dies von 7 bis 21 Uhr (also S A = 7 und E A = 21). Überdies werden am Wochenende keine geplanten Operationen getätigt. Um dies zu berücksichtigen, muss der erste Tag des Wochenendes bekannt sein, welcher in der Praxis meist ein Samstag ist. Das Wochenende dauert von diesem Tag bis zum Sonntag, dem Ende der Woche.
Durch diese Parameter ist eine Einschränkung des möglichen Schichtplans möglich, wodurch der Algorithmus eine geringere Lösungsdauer besitzt. Eine ausführliche Diskussion der Lösungsdauern wird in Kapitel 7 behandelt. Um den raschen Anstieg an Zuständen durch Einführung des Startzeitfensters zu umgehen, wird folgender Ansatz eingeführt:
• Der Arbeitszeitraum (z.B. 7-21 Uhr) wird in k mögliche Startzeitfenster mit der Dauer T win geteilt. Seien s win der Beginn und e win das Ende des Startzeitfensters mit e win − s win = T win . Es gilt für die Startzeitfenster
, i = 0, ..., S E − S A − R A − T win − 1 [s win , e win ] = S A + i; S A + i + T win
80
6 Dynamisches Programm
Beispielsweise sind die Startzeitfenster [7,10], [8,11], ..., [11,14], wenn von
7 bis 21 Uhr mit R A = 6, T win = 3 und einer Mittagspause gearbeitet
wird. Die Anzahl an Startzeitfenstern ist somit k = E A − S A − R A − T win = 5. Kann rund um die Uhr gearbeitet werden, so wird S A = 0 und E A = 24+R A +T win gesetzt. Da hierbei das letztmögliche Startzeitfenster
23-2 Uhr als [23,26] berechnet wird, ist eine Funktion f 3
Diese berechnet für alle e win > 24 den Endzeitpunkt zurück auf einen 24-Stundentag. Es gilt ⎧
• Das Schichtplanungsproblem wird über den gesamten Planungshorizont k-mal gelöst mit jeweils einem festen Startzeitfenster. Hierbei werden alle Zustände gespeichert.
• Nach Erzeugung aller Zustände aller Startzeitfenster werden die besten Endzustände aus jeder Woche bestimmt, wobei alle Endzustände aller Iterationen auf einmal berücksichtigt werden.
Der Algorithmus zur Berechnung aller Labels ändert sich dementsprechend wie folgt.
Algorithmus 3 Erzeugung aller nicht-dominierten Labels mit Berücksichti-
gung der Zerlegung über alle Startzeitfenster
1: for i = 0 to E A − S A − R A − T win − 1 do
s win ← S A + i
2:
e win ← S A + i + T win
3:
for w = 1 to |W| do
4:
x 0 ← x init,w
5:
X 0 = {x 0 }
6:
for j = 1 to n do 7:
9:
10:
11:
12:
13:
end for 14:
end for 15:
16: end for
Der Algorithmus 3 unterscheidet sich vom Algorithmus 1 nur durch die hinzugefügte for-Schleife in Zeile (1) und den Anweisungen zur Bildung des Startzeitfensters in Zeilen (2) und (3). Das Startzeitfenster wird in der Wahl der möglichen Entscheidungen A j−1 (x j−1 ) in Zeile (9) indirekt berücksichtigt.
81
6 Dynamisches Programm
Um dies zu verdeutlichen, müssen bei der Bestimmung der möglichen Entscheidungen a j folgende Bedingungen zusätzlich eingeführt werden. Die Entscheidung a j ∈ A j (x j ) ist nun • a j = l für alle j mit x j ∈ X j , wenn zusätzlich
∧
∧ ∧
gilt und
• a j = b für alle j mit x j ∈ X j , wenn zusätzlich
∧ j · I {l} (a j−1 ) mod 24 1 − I {25,26,...} (E A ) (63.4)
gilt. Eine Entscheidung für einen Arbeitsbeginn kann nach (48.7) nur erfolgen, wenn der Tag noch nicht im Wochenende liegt. Ebenso kann nach (48.8) nur eine Arbeit begonnen werden, wenn der Zeitpunkt eines Tages, welcher durch j mod 24 angegeben wird, größer oder gleich dem Beginn s win des Startzeitfensters ist. Falls das Ende des Startzeitfensters nach 24 Uhr ist, beispielsweise [s win , e win ] = [22, 3], so kann der Start auch z.B. zu den Zeitpunkten 1,2 und 3 Uhr erfolgen. Dies wird durch den zweiten Teil von (48.8) berücksichtigt. Eine Arbeit kann nur begonnen werden, wenn der Zeitpunkt des Beginns nicht später als das Ende e win des Startzeitfensters ist. Dies wird durch (48.9) sichergestellt. Somit wird die Einhaltung von T win durch die Bedingungen (48.8) und (48.9) statt den ursprünglichen Bedingungen (48.5) und (48.6) aus Kapitel 6.3.4 garantiert.
Generell darf nach (48.10) die Entscheidung für eine Arbeitsperiode nur erfolgen, wenn die Zeitperiode j mod 24 kleiner als das Ende des spätesten Arbeitsendes E A ist, sodass nach einer Periode Arbeit höchstens E A erreicht wird.
Für den speziellen Fall, dass E A = 24, wäre es möglich, dass der Algorithmus in der Periode [23,24] eine Arbeit einplant, und diese dann in Periode (0,1) fortsetzt, da alle Bedingungen, insbesondere (48.10) mit j mod 24 = 0 < E A erfüllt sind. Um diesen Fall zu verhindern, ist Bedingung (48.11) eingeführt worden. Falls in der Vorperiode gearbeitet wurde, also I {l} (a j−1 ) = 1 ist, und
82
6 Dynamisches Programm
E A = 24 ergibt die rechte Seite der Ungleichung 1 und somit kann die Arbeit in der Periode [0,1] nicht fortgesetzt werden, da 0 1. Eine eingeplante Arbeit soll spätestens am Ende einer Woche „fertig“ sein und nicht über die Wochengrenze fortgesetzt werden, da das Schichtplanungs- problem ineinzelne Wochenprobleme aufgeteilt ist. Um dies sicherzustellen, wird Bedingung (48.12) benötigt. Soll eine Arbeit auf der Stufe j begonnen werden (d. h. I {p} (a j−1 ) = 1 und a j = l), so muss bis zur letzten Stufe n ei-
ner Woche noch mindestens R A Perioden für die Mindestarbeitszeit und eine
Periode für die Mittagspause vorhanden sein.
Die Entscheidung für eine Mittagspause kann erfolgen, wenn zusätzlich Bedingung (63.4) erfüllt ist. Diese ist identisch mit Bedingung (48.11). Falls E A = 24 ist, wäre es ohne (63.4) auch möglich, dass in Periode [23, 24] eine Arbeit erfolgt und in Periode [0, 1] eine Mittagspause. Danach könnte die Arbeit wieder in Periode [1, 2] fortgesetzt werden. Um zu verhindern, dass somit der Endzeitpunkt der Arbeit E A überschritten wird, indem in Periode [0, 1] eine Mittagspause eingeplant wird, ist Bedingung (63.4) notwendig.
Dominanzkriterien zur Reduzierung der Endzustände einer Woche Eine weitere Möglichkeit die Lösungszeit zu verringern ist es, die Bestimmung der optimalen Politik zu beschleunigen. Da im Algorithmus 2 der Teilschritt A kombinatorisch gelöst wird, ist es günstig, wenn es möglichst wenige Endzustände gibt, welche zu kombinieren sind. Die bisherigen Dominanzregeln, welche über das Effizienzkriterium EF F (X j ) angewandt werden, können für die Endzustände modifiziert werden, sodass hierdurch zusätzliche Zustände gelöscht werden können. Die bisherige Trennung der Dominanzregeln nach den Zuständen I,II und III entfällt zusätzlich.
Es werden jeweils alle Endzustände einer Woche i der Stufe w i miteinander verglichen. Um die Notation zu vereinfachen, wird daher nur die jeweilige
Nummer k bzw. k des Labels angegeben. Es ist der neue Parameter R P
min,V W
notwendig. Dieser gibt die minimale Größe der Pausenressource R P von allen Endzuständen der Vorwoche w i−1 an. Zeigen beispielsweise alle Endzustände der Vorwoche an, dass die Arbeit spätestens um 21 Uhr am Sonntag beendet worden ist und es keinen Dienst am Sonntag gibt, so ist R P min,V W = 3, da alle Endzustände somit ein R P 3 haben.
Es sei daran erinnert, dass alle ausbezahlten Überstunden erst im Laufe des Algorithmus 2 „Bestimmung der optimalen Politik“ berechnet werden. Des Weiteren werden zusätzliche Überstunden, welche in der aktuellen Woche durch einen Dienst am Sonntag der Vorwoche bedingt werden, ebenso in diesem
83
6 Dynamisches Programm
Algorithmus berücksichtigt. Für alle Zustände x k gilt nun, dass x k
w i w i w i
wenn folgender Bedingungsblock erfüllt ist:
∧
∧
Ein Endzustand x k repräsentiert einen Schichtplan S. Allgemein wird ein End-zustand x k dominiert, wenn es einen anderen Endzustand x k gibt, welcher auf
Grund der Nebenbedingungen mit einer größeren Anzahl an Schichtplänen der
Vor- bzw. Folgewoche kombiniert werden kann als x k . Außerdem muss der
sein. Dies muss auch nach Berücksichtigung der Überstunden und ausbezahl- tenÜberstunden gelten. Hierbei müssen die ausbezahlten Überstunden mit der Vor- bzw. Folgewoche berücksichtigt werden. Die Überstunden müssen aus einem eventuellen Dienst vom Sonntag der Vorwoche beachtet werden. Damit x k gilt, müssen Bedingungen (66.1)-(66.3) zutreffen und zu-
w i w i
sätzlich entweder Bedingungen (66.4) und (66.5), Bedingungen (66.6)-(66.8) oder Bedingungen (66.9)-(66.11).
Bedingung (66.1) stellt sicher, dass der Schichtplan S mit mindestens genauso vielen Schichtplänen der Folgewoche kombiniert werden kann, da entweder
bei S kein Dienst am Sonntag stattfindet oder bei S ein Dienst am Sonntag
ist.
Durch Bedingung (66.2) wird festgesetzt, dass beim Schichtplan S am Montag bis zum ersten Schichtbeginn mindestens so viele Stunden Pause gemacht wurden, dass die Mindestpausendauer bei der Kombination mit allen Schicht- plänenaus der Vorwoche eingehalten werden kann. Alternativ reicht es, wenn
der erste Schichtbeginn bei S später als bei S ist. Die absolvierte Pausenlänge
84
6 Dynamisches Programm
im Endzustand muss beim Schichtplan S größer als bei S sein (66.3), sodass
S mit mehr Schichtplänen der Folgewoche kombiniert werden könnte. Weiterhin gibt Bedingung (66.4) an, dass der Schichtplan S höchstens soviel
Wochenarbeitszeit verbraucht hat wie S . Hierdurch können weniger oder gleich viel ausbezahlte Überstunden durch S als durch S anfallen. Zudem muss nach
sein.
Die beiden Bedingungsblöcke (66.6)-(66.8) bzw. (66.9)-(66.11) beschreiben den Fall, dass der dominierende Zustand eine größere Wochenarbeitszeit als der dominierte Zustand hat. Dies wird durch (66.6) bzw. (66.9) ausgedrückt. Der Unterschied zwischen den Blöcken besteht darin, dass im ersten Block die Schichtpläne beider Zustände, welche miteinander verglichen werden, nicht mit einem Schichtplan aus der Vorwoche kombiniert werden können, bei welchem
am Sonntag ein Dienst stattfindet. Beide Schichtpläne S bzw. S besitzen nach (66.7) eine Wochenarbeitszeit, welche zu groß ist, um zusätzlich ˜ f 1 (j so D ) Stun-den zu addieren, ohne R WA zu überschreiten. Somit können S bzw. S nicht mit
einem Schichtplan der Vorwoche mit Dienst am Sonntag kombiniert werden. Hierdurch können keine weiteren Überstunden mehr anfallen. Es müssen lediglich die ausbezahlten Überstunden berücksichtigt werden. Durch S kön-
nen weniger Überstunden aus der Vorwoche wie durch S ausgeglichen wer-
den, sodass der gesamte Zielfunktionswert bei Kombination von S mit einem Schichtplan der Vorwoche stärker durch ausbezahlte Überstunden erhöht wer-
den kann als bei Kombination mit S . Ist nach (66.8) die maximal mögliche
k −
immer noch kleiner als (obj) k , so ist die Kombination mit S stets besser als die Kombination mit S und der Zustand x k kann somit gelöscht werden.
Beim zweiten Bedingungsblock besitzt der dominierende Zustand ebenfalls eine größere Wochenarbeitszeit als der dominierte Zustand (66.9) und es ist
bei S bzw. S möglich, diese mit einem Schichtplan der Vorwoche zu kom-
binieren, welcher einen Dienst am Sonntag hat. Letzteres ist der Fall, da S
bzw. S eine Wochenarbeitszeit besitzen, zu welcher die zusätzlichen Stunden D ) addiert werden können, ohne die maximale Wochenarbeitszeit R WA zu ˜ f 1 (j so überschreiten (66.10).
D ) bei S bzw. S sowohl Somit können nun durch die dazu addierten ˜ f 1 (j so
Überstunden wie auch ausbezahlte Überstunden anfallen. Die maximal mögliche Anzahl von diesen muss mit den jeweiligen Kostenparametern c over bzw. c paid bei der Dominanz berücksichtigt werden (66.11).
85
6 Dynamisches Programm
6.5 Bedingungen für die optimale Lösung
Der bisherige Algorithmus zerlegt das Schichtplanungsproblem in einzelne Wochenprobleme und ist daher eine Heuristik. Unter bestimmten Bedingungen ergibt das DP auch die optimale Lösung über den gesamten Planungshorizont. Dies ist in drei Fällen möglich.
1. Keine Arbeitsschicht kann über zwei Wochen verlaufen.
2. Der Schichtplan kann so verschoben werden, dass keine Arbeitsschicht über zwei Wochen verläuft.
3. Obige zwei Bedingungen gelten für eine beliebige Unterteilung des Pla-nungshorizonts in Perioden über sieben Tage.
1. Fall Falls in der optimalen Lösung keine Arbeitsschicht über zwei Wochen verlaufen kann, also keine Arbeit Sonntags beginnen und Montags enden kann, so ist der durch das DP erzeugte Schichtplan optimal. Dieser Fall gilt,
wenn zwischen Sonntag und Montag immer mindestens R P Pausenperioden
eingehalten werden müssen bzw. wenn eine Arbeit bis 24 Uhr beendet sein muss.
2. Fall Alternativ kann die optimale Lösung berechnet werden, wenn es möglich ist, dass die Schichtpläne so verschoben werden, dass nach dem Verschieben keine Arbeitsschicht über zwei Wochen verläuft. Dies ist möglich, falls folgende Gleichung gilt:
Hierbei gibt max j (l) so j den spätesten Startzeitpunkt der Arbeit an einem Sonntag und min j (e) mo den frühesten Startzeitpunkt an einem Montag über dem
j
gesamten Planungshorizont an. Die Gleichung wird mithilfe von Abbildung 9 erläutert.
In diesem Beispiel ist R A = 12 und der dargestellte Ausschnitt gehöre zu dem optimalen Schichtplan. Es gelte weiterhin, dass max j (l) so j = 20 in der ersten Woche und min j (e) mo = 9 in der zweiten Woche angenommen wird.
j
In der ersten und dritten Woche beginnt eine Arbeitsschicht am Sonntag und endet am Montag der darauf folgenden Woche. Diesen optimalen Schichtplan würde daher das bisherige Lösungsverfahren nicht erzeugen können. Verschiebt man jedoch den gesamten Schichtplan so, dass alle Arbeitsschichten spätestens am Sonntag enden, so wäre es mit dem DP möglich, diesen Schichtplan zu generieren.
Hierzu muss beim Übergang der ersten zur zweiten Woche der Schichtplan um mindestens neun Perioden zurück verschoben werden, damit die gesamte
86
6 Dynamisches Programm
Periode Sonntag Montag Sonntag Montag Sonntag Montag
0 0 1 0 0 0 1
1 0 0 0 0 0
2 0 1 0 0 0 1
3 0 1 0 0 0 1
4 0 1 0 0 0 1
5 0 1 0 0 0 1
6 0 1 0 0 0 1
7 0 1 0 0 0
8 0 1 0 0 0
9 0 0 1 0 0
10 0 0 1 1 0
11 0 0 1 1 0
12 0 0 1 1 0
13 0 0 1 0 0
14 0 0 0 1 0
15 0 0 1 1 0
16 0 0 1 1 0
17 0 0 1 0 0
18 0 0 1 0 0
19 0 0 1 0 1 0
20 1 0 1 0 1 0
21 1 0 1 0 1 0
22 1 0 0 0 1 0
23 1 0 0 0 1 0
Abb. 9: Ausschnitt eines Schichtplans vor dem Verschieben von
Arbeitsschichten.
Arbeitsschicht im fiktiven Sonntag liegt. 36 Bei der dritten zur vierten Woche
reichen beim Zurückschieben sieben Perioden. Beim Übergang von der zweiten
zur dritten Woche kann die Arbeitsschicht am Montag höchstens zehn Peri-
oden zurück geschoben werden, sodass diese noch am Montag beginnt. Der
Schichtplan nach dem Verschieben wird in Abbildung 10 dargestellt. Dieser ist
mit dem Lösungsverfahren erzeugbar.
Periode Sonntag Montag Sonntag Montag Sonntag Montag
0 0 0 1 0 0
1 0 0 1 0 0
2 0 0 1 1 0
3 0 0 1 1 0
4 0 0 1 1 0
5 0 0 0 0 0
6 0 0 1 1 0
7 0 0 1 1 0
8 0 0 1 1 0
9 0 0 1 0 0
10 0 0 1 0 1 0
11 1 0 1 0 1 0
12 1 0 1 0 1 0
13 1 0 0 0 1 0
14 1 0 0 0 1 0
15 1 0 0 0 1 0
16 0 0 0 0 0
17 1 0 0 0 1 0
18 1 0 0 0 1 0
19 1 0 0 0 1 0
20 1 0 0 0 1 0
21 1 0 0 0 1 0
22 1 0 0 0 0
23 1 0 0 0 0
Abb. 10: Ausschnitt eines Schichtplans nach dem Verschieben von
Arbeitsschichten.
36 Der Stern bei Sonntag bezeichnet hierbei den fiktiven Sonntag. Dieser stellt einen Tag
über 24 Stunden dar, wobei diese Stunden im „echten“ Schichtplan auf Sonntag und
Montag verteilt sind.
87
6 Dynamisches Programm
Bedingung (67) stellt sicher, dass es mindestens eine Verschiebung des optimalen Schichtplans gibt, in welcher keine Arbeitsschicht von Sonntag* bis Montag* dauert. Kann beispielsweise eine Arbeit maximal zwölf Perioden lang sein und muss eine Mittagspause erfolgen, so darf der Abstand zwischen max j (l) so
j
maximal 24 − 12 − 1 = 11 Perioden betragen. und min j (e) mo
j
Um mit dieser Erkenntnis den optimalen Schichtplan zu bestimmen, müssen
nun 24 − R A − 1 Iterationsschritte berechnet werden. In jedem Schritt werden die Werte der Dualvariablen δ dem und δ D um eine weitere Periode zurück verschoben und die dann fehlenden δ mit Null ergänzt.
Sei δ ∗ j das Delta auf der Stufe j des i-ten Iterationsschritts. Seien weiterhin ∀j = 0, ..., n; c ∈ R + δ j = c (68)
0
des ursprünglichen Problems, so ergeben sich die δ ∗ die δ ∈ δ dem , δ D j beim i-ten Iterationsschritt durch
Für alle Iterationsschritte muss das Schichtplanungsproblem nun mit den ent-sprechenden δ ∗ j gelöst werden und aus allen Lösungen wird die Beste bestimmt. Ist diese in der i-ten Iteration generiert worden, so muss nun der Schichtplan um i Perioden nach hinten verschoben werden, um auf den ursprünglichen Schichtplan über den gesamten Planungshorizont zu kommen.
3. Fall Die obigen zwei Bedingungen wurden für den Fall beschrieben, dass eine Woche von Montag bis Sonntag geht. Alternativ können obige Bedingungen angewandt werden, wenn es einen gleichen Stichtag innerhalb jeder Woche gibt, zu welchem obige Bedingungen gelten.
Beispielsweise sei dieser Stichtag Donnerstag, so werden nun Schichtpläne über eine Woche von Freitag bis Donnerstag erzeugt. Da die Werte der Dualvariablen über einen Planungshorizont von einem Montag bis einem Sonntag gegeben sind, müssen hierfür in der ersten angepassten Woche alle Werte der Dualvariablen von Montag bis Donnerstag auf Null gesetzt werden. In der letzten Woche werden die Werte von Freitag bis Sonntag auf Null gesetzt. So kann ein optimaler Schichtplan erzeugt werden, welcher am Ende wieder auf die ursprüngliche Wochentagsbezeichnung zurückgeführt werden muss.
88
7 Zeitliche Analyse der Lösungsverfahren
7 Zeitliche Analyse der Lösungsverfahren
In diesem Kapitel wird das Lösungsverhalten des MIPs und DPs mit verschiedenen Probleminstanzen getestet. Ein Vergleich mit dem Subproblem aus Brunner et al. (2010) (im Folgenden mit SP bezeichnet) wird ebenfalls durchgeführt. Des Weiteren werden die Parameter, welche einen Schichtplan bestimmen, variiert und die Auswirkungen auf die Lösungsdauer dargestellt. Zuerst werden in Kapitel 7.1 die Parameter festgelegt und es wird ein Überblick über die verschiedenen durchgeführten Analysen gegeben. In Kapitel 7.2 werden die Ergebnisse dargestellt und kommentiert. Weitere Ergebnisse finden sich im Anhang C. Am Ende des Kapitels werden die erzielten Ergebnisse zusammengefasst.
7.1 Parametereinstellung und Beschreibung der Variationen
Die Einstellungen für die Parameter in der Zeitanalyse sind, falls diese in der Analyse nicht variiert werden, wie in Tabelle 2 angegeben. Der Parameter N gibt die Anzahl an Iterationen an. Es wurden 100 Iterationen gewählt. Grund hierfür ist die zeitliche Dauer der Analyse, welche mit N = 100 in einem angemessenen Zeitrahmen durchgeführt werden kann. Eine Iteration bezeichnet hierbei die Lösung eines Schichtplanungsproblems, wobei sich die Iterationen durch andere Werte von δ dem und δ D voneinander unterscheiden.
δ dem δ D bezeichnen die Dichte der δ dem bzw. δ D . Die Parameter ρ bzw. ρ
Die Dichte drückt das Verhältnis von der Anzahl an δ dem > 0 bzw. δ D >
= 1 δ dem 0 pro 24 Stunden aus. Die Dichte ρ drückt beispielsweise aus,
2
dass das Verhältnis von Anzahl an δ dem > 0 pro 24 Stunden gleich einhalb ist. Dies bedeutet, es befinden sich im Mittel zwölf δ dem > 0 an einem Tag. Die Werte für δ dem bzw. δ D sind gleichverteilt zwischen den Bereichen 0 und 100 bzw. 0 und 1000. Für die Generierung der gleichverteilten Werte als auch der gleichverteilten Anordnung der δ dem > 0 bzw. δ D > 0 wurde Microsoft Excel 2003 benutzt. Diese Werte sind somit für die Analyse zufällig erstellte Testdaten.
89
7 Zeitliche Analyse der Lösungsverfahren
Des Weiteren wird in den Analysen durch Γ angegeben, in welcher Zeitspanne eine Arbeit möglich ist. Beispielsweise gibt Γ = [7, 21] an, dass die Ärzte zwischen 7 und 21 Uhr arbeiten und in der restlichen Zeit nur ein Dienst möglich ist. Falls es möglich ist, innerhalb einer Woche rund um die Uhr zu arbeiten, d.h. auch über Tagesgrenzen hinweg, so wird dies mit Γ = 24/7 bezeichnet.
In Abhängigkeit von Γ, T win und R A müssen innerhalb einer Iteration die Lösungen für unterschiedlich viele Startzeitfenster [s win , e win ] berechnet werden. 37 Beispielsweise müssen für T win = 3, Γ = [0, 24] und R A = 6 insgesamt
15 Startzeitfenster von [0, 3] bis [14, 17] zur Bestimmung der Lösung berechnet werden. Das letzte Startzeitfenster ist [14, 17], da von 17 Uhr beginnend
noch eine Arbeit mit Mindestlänge R A = 6 und einer Mittagspause bis 24 Uhr
beendet werden kann. Ist Γ = 24/7, so müssen 23 Startzeitfenster von [0, 3] bis [23, 2] berücksichtigt werden. Theoretisch müsste daher für obige Einstellungen die Laufzeit für Γ = 24/7 in etwa 23/15 ≈ 1, 5 mal so lang sein wie für Γ = [0, 24].
In den Analysen ist normalerweise eine Arbeit von Montag bis Sonntag möglich. Dies kennzeichnet der Parameter Φ = [mo, so]. Die Parameter Γ und Φ werden benutzt, um die Lösungsdauer des DPs zu beschleunigen. Hierbei werden, wie in Kapitel 6.4 beschrieben, nur Schichtpläne erstellt, welche bzgl. Γ und Φ zulässig sind.
Die Einstellungen für die Kostenparameter der Überstunden sind c paid = 1 und c over = 10. Somit wird eine Überstunde eingeplant, wenn hierdurch ein δ dem 11 in der Zielfunktion berücksichtigt werden kann. Falls die Überstunde durch eine Fehlstunde in der nächsten Woche ausgeglichen werden kann und nicht ausbezahlt werden muss, gilt dies sogar für ein δ dem 10. Da δ dem ∈ [0, 100] und gleichverteilt ist, wird in mehr als 89% aller Fälle eine Überstunde eingeplant, falls damit ein δ dem > 0 erreicht werden kann. Die Variationen laufen, falls nicht anders gekennzeichnet, über zwei bzw. vier Wochen. Da der Algorithmus die Schichtplanung in einzelne Wochenprobleme zerlegt, ist die theoretische Lösungsdauer einer Variation über vier bzw. sechs Wochen das Doppelte bzw. das Dreifache einer Variation über zwei Wochen. Dies wird bei der Darstellung der Ergebnisse deutlich. Daher wurden keine größeren Planungshorizonte als vier Wochen gewählt, da sich die Lösungszeiten dieser Variationen aus den Lösungen kleinerer Planungshorizonte ableiten lassen.
Die Ergebnisse folgender Laufzeitanalysen werden im nächsten Kapitel dargestellt. Weichen die Parameter von Tabelle 2 ab, so wird dies explizit ange- geben.
37 Die Beschleunigung des Algorithmus durch die Zerlegung in einzelne Startzeitfenster ist
in Kapitel 6.4 erklärt.
90
7 Zeitliche Analyse der Lösungsverfahren
• Variation der Häufigkeit der Dominanzaufrufe EF F (X j ) mit W = 2, Γ = [0, 24] und Φ = [mo, f r]
• Variation der Labelbearbeitungsregel ORDER mit W = 2, Γ = [0, 24] und Φ = [mo, f r]
• Vergleich des MIPs und DPs mit dem Modell aus Brunner et al. (2010) anhand eines Praxisbeispiels mit Φ = [mo, f r] und Γ = [7, 21]
• Vergleich des MIPs und DPs mit dem Modell aus Brunner et al. (2010) über 2 Wochen mit Φ = [mo, so], Γ = [0, 24] und ρ (δ) = 1 , 1 , 3 bzw. 1.
4 2 4
• Variation im DP über die Dichte der Deltas ρ (δ) = 1 , 1 , 3 bzw. 1 mit
4 2 4
Γ = [0, 24] bzw. Γ = 24/7 und W = 2, 4, 6.
• Laufzeit im DP ohne Berücksichtigung der Nebenbedingung „Mittags- pause“, „Dienst“bzw. „Zeitfenster“
• Variation im DP über das Zeitfenster T win = 0, 1, ..., 5
• Variation im DP über die Mindestarbeitszeit R A = 2, 4, ..., 10, wobei T pre = T post = 1 · R A und T late = R A
2
• Variation im DP über die Höchstarbeitszeit R A = 8, 10, 12, 14
Fast alle Analysen wurden auf einem Intel Pentium 4 Rechner mit 1,49 GB RAM und einem 2,40 GHz Prozessor durchgeführt. Die Analysen des MIPs bzw. des Modells aus Brunner et al. (2010) wurden im Kapitel 7.2.4 mit einem Athlon XP 2000+ Computer mit 992 MB RAM und einem 1,67 GHz Prozessor gefahren. Beide Computer benutzen das Windows XP Professional Betriebssystem.
Zur Modellierung des MIPs bzw. SPs wurde ILOG OPL 5.1 verwendet und mit dem CPLEX 10.1.1 gelöst. Die Modellierung und Berechnung des DPs erfolgte mit Eclipse 3.4.0 und JAVA 1.6.0, wobei für die Lösung in JAVA der Arbeitsspeicher auf 1100 MB begrenzt wurde.
7.2 Ergebnisse der Laufzeitanalysen
Im Folgenden werden die Ergebnisse der Laufzeiten von oben genannten Variationen dargestellt. In diesem Kapitel werden als Kennwerte der Mittelwert M und der Variationskoeffizient VC benutzt. Tabellen mit der Angabe der Standardabweichung SD und des minimalen Min bzw. maximalen Wertes Max der Lösungszeit sind im Anhang C dargestellt.
Die Lösungszeit einer Iteration setzt sich aus folgenden Komponenten zusammen: Erstellung der Labels, Überprüfung der Effizienz der Labels und der
91
7 Zeitliche Analyse der Lösungsverfahren
Bestimmung der Labels x ∗ für alle i ∈ W, welche kombiniert den besten Ziel- w i
funktionswert bilden. Die ersten beiden Schritte erfolgen abwechselnd, sodass eine getrennte Erfassung der Berechnungszeiten nicht erfolgen kann. Der letzte Schritt dauert zwischen 0 und etwa 1000 Millisekunden, ist aber im Vergleich zur Lösungszeit weniger als 1% und wird daher nicht separat ausgewiesen.
Die Dauer zur Berechnung der optimalen Schichtpläne ausgehend von den x ∗
w i
fließt nicht in die Lösungsdauer ein, da nur an der Zeitdauer bis zur optimalen Lösungsfindung Interesse besteht, nicht aber an der visuellen Ausgabe der optimalen Lösung.
7.2.1 Häufigkeit der Effizienzprüfung
Ziel dieser Analyse ist die Einstellung für das DP bzgl. der Frequenz der Effizienzprüfung EF F (X j ) herauszufinden, welche die Lösungsdauer minimiert. In Abhängigkeit der Häufigkeit der Effizienzprüfung EF F (X j ) der Label x j ∈ X j ändert sich die Lösungsdauer. Erfolgt die Effizienzprüfung nicht nach jeder Stufe j, sondern nur in jeder zweiten, dritten, etc. Stufe, so werden einerseits weniger Labelvergleiche durchgeführt, was zu einer Laufzeitverbesserung beiträgt. Auf der anderen Seite werden hierdurch weniger Labels dominiert und gelöscht, wodurch bei den einzelnen Effizienzprüfungen mehr Labels verglichen werden müssen.
Die abweichenden Parametereinstellungen für diese Analyse sind in Tabelle 3 dargestellt.
Tab. 3: Abweichende Parametereinstellungen bei Variation der Häufigkeit der
Effizienzprüfung.
Diese Analyse hat, wie die nächste Analyse in Kapitel 7.2.2 zum Ziel, die besten Einstellungen beim DP für die weiteren Analysen zu finden, welche die Lösungsdauer minimieren. Zum Testen wurde eine Instanz über zwei Wochen gewählt, bei welcher von Montag bis Freitag von 0 bis 24 Uhr gearbeitet werden kann. Die ORDER Regel entspricht der Bearbeitung der Labels nach aufsteigendem Index.
Das Ergebnis der Analyse ist in Tabelle 4 dargestellt. Für weitere Kennwerte sei auf Tabelle C.1 im Anhang verwiesen.
Man erkennt, dass die Lösungszeit im Mittel am Geringsten ist, wenn die Effizienzprüfung auf jeder zweiten Stufe erfolgt. Die Varianz der Lösungszeit ist insgesamt als konstant anzusehen. Die folgende Tabelle 5 gibt die Anzahl an erstellen Labels (EL), die Anzahl an dominierten Labels (DL) und die Anzahl der notwendigen paarweisen Vergleiche (LV) zur Bestimmung der Effizienz wieder. Tabelle C.2 im Anhang stellt die weiteren Kennwerte „Standardabwei-
92
Tab. 4: Lösungszeiten bei Variation der Häufigkeit der Effizienzprüfung.
chung“, „Minimum“ und „Maximum“ dieser Analyse dar. Zudem ist dort das Verhältnis der Lösungszeit zur Anzahl an erstellten und dominierten Labels bzw. der Anzahl an notwendigen Vergleichen angegeben. Dies wird mit dem Parameter λ(·) für EL, DL und LV angegeben, wobei λ(·) die Einheit [ s 10 6 ] trägt.
Tab. 5: Kennwerte der Labels bei Variation der Häufigkeit der
Effizienzprüfung.
Es wird deutlich, dass die Anzahl an erstellen Labels steigt, je seltener EF F (X j ) aufgerufen wird, also je seltener Labels auf Effizienz überprüft und ggf. gelöscht werden. Je mehr Labels erzeugt werden, desto mehr werden auch dominiert. Wird EF F (X j ) seltener aufgerufen, so gibt es auf die Anzahl der notwendigen Vergleiche zur Bestimmung der Dominanzen LV zwei Einflüsse. Einerseits gibt es weniger Vergleiche, da seltener die Dominanz geprüft wird. Andererseits müssen bei jedem Dominanzaufruf mehr Labels miteinander verglichen werden. Der erste Effekt überwiegt bis zu einem Aufruf von EF F (X j ) auf jeder dritten Stufe. Danach bewirkt der zweite Effekt, dass die Anzahl notwendiger Vergleiche nahezu konstant bei 70 Millionen bleibt.
7.2.2 Variation der ORDER Regel
Im letzten Kapitel wurde festgestellt, dass die Lösungsdauer im Mittel am Geringsten ist, wenn die erzeugten Labels auf jeder zweiten Stufe auf Effizienz untersucht werden. In diesem Kapitel wird mit dieser Regel analysiert, nach welcher ORDER Reihenfolge die Labels am Besten im Laufe des Algorithmus bearbeitet werden, um die Lösungsdauer zu minimieren. In Kapitel 7.2.1 war dies nach aufsteigendem Index. Es wird weiterhin nach absteigendem Index,
93
7 Zeitliche Analyse der Lösungsverfahren
aufsteigendem oder absteigendem Zielfunktionswert bzw. Wochenarbeitszeit untersucht. Die abweichenden Parametereinstellungen gibt Tabelle 6 wieder.
Tab. 6: Abweichende Parametereinstellungen bei Variation der ORDER Regel.
Die Einstellungen sind identisch mit denen des vorherigen Kapitels. Die Ergebnisse der Laufzeitanalyse sind in Tabelle 7 bzw. eine ausführliche Darstellung in Tabelle C.3 dargestellt.
Die ORDER Reihenfolge mit der geringsten mittleren Lösungsdauer ist nach aufsteigendem Zielfunktionswert zu sortieren. Dies bedeutet, dass die Labels mit bisher bestem Zielfunktionswert auf einer Stufe als erstes fortgesetzt werden.
Tabelle 8 gibt einen Überblick über die hierbei erzeugte und dominierte Anzahl an Labels. Tabelle C.4 enthält weitere Kennwerte.
Tab. 8: Kennwerte der Labels bei Variation der ORDER Regel.
Man erkennt, dass bei der besten ORDER Regel die geringste Anzahl mit 1,15 Millionen Labels erstellt wird, wobei genauso viele Labels wie bei den an- derenIterationen durch Dominanz gelöscht werden. Das Ausschlaggebende für die schnellere Lösungszeit ist die niedrigere Anzahl an Labelvergleichen für die Bestimmung der Dominanz. Dies beruht auf die geringere Anzahl an erstellten Labels. Ein weiterer Grund ist vermutlich, dass die Labels gleichmäßiger auf
94
7 Zeitliche Analyse der Lösungsverfahren
allen Stufen verteilt sind, wodurch es selbst bei ähnlich hoher Anzahl an Labels
zu weniger Vergleichen kommt. 38
7.2.3 Praxisbeispiel
Für den Vergleich der in dieser Arbeit dargestellten Lösungsmethoden des MIPs und DPs mit dem SP wird ein Beispiel gewählt, welches die Arbeitszeit wie in der Praxis wiedergibt. Hierbei gibt MIP, das in Kapitel 5 erläuterte Modell, DP, das in Kapitel 6 dargestellt Model und SP, das in Brunner et al. (2010) modellierte Subproblem an. Es kann von Montag bis Freitag von 7 bis 21 Uhr gearbeitet werden und ein Dienst ist an jedem Tag möglich. Tabelle 9 gibt die abweichenden Parameter an. Es sei daran erinnert, dass durch die verkürzten Arbeitszeiten beim MIP und SP ein Preprocessing möglich ist, welches den Lösungsraum einschränkt und daher die Lösungszeit verringert. Für das MIP wurde der „network simplex“ als Algorithmus für die lineare Optimierung eingestellt. Dieser benötigte für die Lösung der Probleminstanzen etwa 15% weniger Zeit als die automatische Einstellung.
Tab. 9: Abweichende Parametereinstellungen im Praxisbeispiel.
Die Lösungszeiten dieser Analyse sind in Tabelle 10 dargestellt. Die Darstellung der Lösungszeiten mit weiteren Kennwerten ist im Anhang C in Tabelle C.5 zu finden.
Tab. 10: Lösungszeiten des MIPs, DPs und SPs im Praxisbeispiel.
Das MIP besitzt in allen Variationen die langsamste mittlere Lösungszeit. Das SP hat für die Variationen über zwei und vier Wochen die durchschnittlich beste Lösungszeit aller drei Lösungsverfahren. Die Instanz über sechs Wochen
38 Seien beispielsweise 100 Labels auf zwei Stufen verteilt, im ersten Fall zu 80-20 und im
zweiten Fall zu 40-60. Somit sind bisher im ersten Fall 1 + 2 + ... + 79 = 3160 und
1 + 2 + ... + 19 = 190, gesamt also 3350 Vergleiche durchgeführt worden. Im zweiten Fall
sind lediglich 1 + 2 +...+39 = 780 und 1+2+...+ 59 = 1770, gesamt also 2550 Vergleiche
notwendig. Die Anzahl der Vergleiche ergibt sich, da ein neu erzeugtes Label auf einer
Stufe mit allen bisherigen Labels dieser Stufe auf Effizienz verglichen wird.
95
7 Zeitliche Analyse der Lösungsverfahren
kann das DP mit durchschnittlich 11,6 Sekunden schneller als das SP lösen. Auffallend beim Vergleich von SP und DP ist die starke Zunahme der Varianz mit steigender Wochenanzahl beim SP bzw. die fallende Varianz beim DP. Die Varianz beim MIP steigt auch mit zunehmender Wochenanzahl. Grund hierfür ist, dass das MIP und SP beide gemischt ganzzahlige Programme sind, wobei das komplette Problem mit dem Simplex auf einmal gelöst wird. Hierdurch wird die Komplexität bei steigender Wochenanzahl größer. Beim DP hingegen werden die Wochen unabhängig voneinander gelöst. Somit ist zum Beispiel die Instanz über sechs Wochen eine Aneinanderreihung von drei Instanzen über zwei Wochen. Die gesamte Varianz über den Planungshorizont ist die Summe der Teilvarianzen der Wochenprobleme. Da der Variationskoeffizient die normierte Standardabweichung ist, also die Wurzel der Varianz
darin einfließt, sinkt dieser mit zunehmender Wochenanzahl. 39
Die mittlere Lösungszeit des DPs pro einzelne Woche ist konstant bei etwa 2 Sekunden. Beim MIP stimmt diese Beziehung zwischen Lösungszeit und Wochenanzahl bis auf die Lösungsdauer der Instanz über zwei Wochen. Diese müsste für einen linearen Zusammenhang um die 10 Sekunden betragen. Beim SP weicht die Lösungsdauer der Instanz über sechs Wochen von den erwarteten 8 Sekunden mit ca. 13 Sekunden stark ab. Dies deutet eher auf einen nichtlinearen Zusammenhang zwischen Lösungsdauer und Wochenanzahl. Ergänzend ist in Tabelle 11 die Anzahl an Variablen, Nebenbedingungen und Koeffizienten ungleich Null des MIPs bzw. SPs angegeben.
Tab. 11: Anzahl an Variablen, Nebenbedingungen und Koeffizienten ungleich
Null im MIP und SP im Praxisbeispiel.
Die Anzahl an Variablen und Nebenbedingungen sowie die Anzahl an Koeffizienten ungleich Null ist beim MIP und SP linear zur Anzahl der Wochen.
39
Seien als Beispiel
X
1
,
X
2
bzw.
X
3
die Lösungszeiten der ersten bis zweiten, dritten
bis vierten bzw. fünften bis sechsten Woche. Die X 1 , X 2 und X 3 sind unabhängig
und (ohne dies zu beweisen) identisch verteilt. Es gilt für die Varianz der Lösungs-
zeit der ersten bis sechsten Woche, dass V ar(X 1 + X 2 + X 3 ) = V ar(X 1 ) + V ar(X 2 ) +
V ar(X
3
) = 3·V
ar(X
1
). Somit gilt für die Standardabweichung
V ar(X 1 ) + V ar(X 2 ) + V ar(X 3 ) =
bei steigender Wochenanzahl sinkt. Vergleiche hierzu Fahrmeir et al. (2009).
96
7 Zeitliche Analyse der Lösungsverfahren
Das SP benötigt knapp ein Viertel der Anzahl an Nebenbedingungen wie das MIP und weniger als die Hälfte an Variablen. Dies erklärt auch die schnellere Lösungszeit des SPs im Vergleich zum MIP.
Die Anzahl an erzeugten Labels und der durchgeführten Vergleiche zur Bestimmung der Dominanz ist in Tabelle 12, bzw. mit weiteren Kennwerten in Tabelle C.6 dargestellt.
Tab. 12: Kennwerte der Labels des DPs im Praxisbeispiel.
Auch hier ist erkennbar, dass die Anzahl an erzeugten bzw. dominierten Labels etwa einen linearen Zusammenhang zur Wochenanzahl bildet. Dies gilt ebenso für die notwendigen Vergleiche der Labels. Die Varianz sinkt mit zunehmender Wochenanzahl.
7.2.4 Praxisbeispiel II
Nun wird die Probleminstanz dahingehend verändert, dass eine Arbeit von Montag bis Sonntag von 0 bis 24 Uhr möglich ist. Ziel ist, das Laufzeitverhalten des MIPs, SPs und DPs bei Parametern, welche keine starke Einschränkung des Lösungsraums ermöglichen, zu untersuchen. Die abweichenden Parameter dieser Analyse sind in Tabelle 13 gegeben.
Tab. 13: Abweichende Parametereinstellungen beim zweiten Praxisbeispiel.
Die Lösungszeiten gibt Tabelle 14 wieder. Für die Lösung des MIPs und SPs wurde der Athlon XP 2000+ verwendet.
Sowohl das MIP als auch das SP konnten für die vorliegende Variation nach 20 Stunden nicht die erste von 100 Iterationen optimal lösen. Das DP konnte diese Variation im Mittel mit etwa 35 Sekunden pro Iteration lösen. Die Tabellen mit der Anzahl an Variablen, an Nebenbedingungen und an Koeffizienten ungleich Null für das MIP und SP befinden sich im Anhang in Tabelle C.7. Die Anzahl an erstellten und dominierten Labels bzw. der notwendigen Vergleiche für die Dominanz sind in Tabelle 15 dargestellt. Da
97
Tab. 14: Lösungszeiten des MIPs, SPs und DPs für das zweite Praxisproblem.
diese Variation identisch mit der Variation für ρ = 1 , W = 2 und Γ = [0, 24]
2
ist, welche im nächsten Kapitel besprochen wird, sind weitere Kennwerte der Lösungszeit bzw. der Labels in Tabelle C.8 bzw. Tabelle C.9 zu finden.
Tab. 15: Kennwerte der Labels für das DP im zweiten Praxisbeispiel.
Löst man das SP mit den Einstellungen
W
= 2, Φ = [mo,
so]
und Γ = [0, 24] und den verschiedenen Dichten
ρ(δ)
=
1
Stunden nur für die Variation ρ(δ) = 1
allen anderen Variationen löste das SP die erste Iteration nicht vollständig. Die Lösung des MIPs mit denselben Einstellungen führte innerhalb von 20 Stunden bei keiner Variation zu der Lösung einer Iteration.
7.2.5 Variation der Dichte der Deltas
In diesem Kapitel wird die Lösungszeit bei verschiedenen Dichten von δ dem und δ D untersucht. Das Laufzeitverhalten bei Erhöhung der relativen Anzahl an δ dem > 0 bzw. δ D > 0 soll untersucht werden, um den Einfluss hierauf auf die Lösungszeit festzustellen. Die Variationen werden über zwei, vier und sechs Wochen und für zwei verschiedene Einstellungen der möglichen Arbeitszeit durchgeführt. Die Parameter, welche dementsprechend von den Grundeinstellungen abweichen, sind in Tabelle 16 dargestellt.
Tab. 16: Abweichende Parametereinstellungen bei Variation der Dichten von
δ dem und δ D .
Das Ergebnis der Laufzeitanalyse ist in Tabelle 17 bzw. mit weiteren Kennwerten in Tabelle C.8 dargestellt. Auffallend ist, dass die Lösungszeiten für
98
7 Zeitliche Analyse der Lösungsverfahren
Γ = [0, 24] und Γ = 24/7 nur bei zwei bzw. vier Wochen für ρ = 1 im theo- 4
retisch erwarteten Verhältnis 2 : 3 stehen. Für alle anderen Variationen sind die Lösungszeiten für Γ = 24/7 kürzer als erwartet. Dieser Effekt beruht dar- auf, dassfür Γ = 24/7 weniger als eineinhalbfach so viele Labelvergleiche zur Überprüfung der Dominanz wie bei Γ = [0, 24] notwendig sind.
Tab. 17: Lösungszeiten bei Variation der Dichten von δ dem und δ D .
Dies ist am Beispiel für zwei bzw. vier Wochen in den Tabellen 18 bzw. 19 sichtbar. Weitere Kennwerten für zwei, vier und sechs Wochen sind im Anhang C in den Tabellen C.9, C.10 und C.11 dargestellt.
Tab. 18: Kennwerte der Labels bei Variation der Dichten von δ dem und δ D für zwei Wochen.
Weiterhin auffallend ist, dass die Varianz bei der Variation über sechs Wochen nicht geringer ist im Vergleich zu zwei bzw. vier Wochen. Dieser Effekt beruht darauf, dass der Arbeitsspeicher des Rechners für die Berechnung nicht
ausreichend ist. Bei der Variation mit ρ = 3 und ρ = 1 konnten für Γ = 24/7
4
vier bzw. 33 Iterationen aufgrund von zu geringem Arbeitsspeicher nicht gelöst werden. Daher sind die Werte für die Variation über sechs Wochen wenig aussagekräftig. Aus diesem Grund und der Tatsache, dass die Laufzeiten von sechs Wochen sich aus den Laufzeiten von zwei bzw. vier Wochen schätzen lassen, werden im Folgenden ausschließlich die Variationen über zwei und vier Wochen gelöst.
99
Tab. 19: Kennwerte der Labels bei Variation der Dichten von δ dem und δ D für vier Wochen.
Zu erwarten wäre bei der mittleren Lösungsdauer in Tabelle 17, dass mit steigender Dichte ρ die mittlere Lösungsdauer ansteigt. Der Grund hierfür ist, da es mit steigendem ρ weniger δ dem = 0 bzw. δ D = 0 gibt und somit eine größere Anzahl an möglichen Schichtplänen erstellt werden muss. Diese Erwartung stimmt für die Variation über zwei Wochen. Bei vier Wochen tritt jedoch der Effekt auf, dass die mittlere Lösungszeit
notwendigen Labelvergleichen für ρ = 3
die mittlere Lösungszeit und die Anzahl an Labelvergleichen bei ρ = 3
Wochen mehr als doppelt so groß ist wie bei der Variation über zwei Wochen. Bei allen anderen Dichten stimmt das erwartete Verhältnis 2 : 1 jedoch in
etwa. Vermutlich tritt diese Abweichung bei ρ = 3 auf, da auch mehr als
4
doppelt so viele Labels erstellt wurden. Dies könnte an der Beschaffenheit der Datensätze liegen. Weitere tiefergehende Analysen sind notwendig, um die Ursache festzustellen.
Bei allen bisherigen Vergleichen, mit Ausnahme der „Häufigkeit der Dominanzaufrufe“, ist auch auffallend, dass der Parameter λ(LV ) konstant zwischen 0, 18 und 0, 23 ist. Die genauen Werte finden sich in den Tabellen im Anhang C. Die Werte für λ(EL) bzw. λ(DL) schwanken etwa zwischen 7 und 19 bzw. 60 und 113. Somit wird deutlich, dass die Lösungszeit von der Anzahl an notwendigen Labelvergleichen zur Bestimmung der Dominanzbeziehungen abhängt. Pro eine Million Labelvergleiche erhöht sich die Lösungsdauer um etwa 0,20 Sekunden.
7.2.6 Auslassung der Nebenbedingungen „Mittagspause“, „Dienst“ bzw. „Startzeitfenster“
Im Folgenden wird die Lösungsdauer des DPs untersucht, wobei jeweils die Nebenbedingung der Mittagspause, des Dienstes bzw. des Startzeitfensters ausge- lassenwird. Es soll festgestellt werden, welchen Einfluss eine Nebenbedingung
100
7 Zeitliche Analyse der Lösungsverfahren
auf die Lösungsdauer besitzt. Es soll also analysiert werden, wie stark eine zusätzliche Nebenbedingung die Lösung des Problems komplexer gestaltet. Die Einstellungen der Parameter, um die Auslassung der Mittagspause zu implementieren, sind in Tabelle 20 beschrieben.
Tab. 20: Abweichende Parametereinstellungen bei Auslassung der Nebenbe-
dingung für die Mittagspause.
Beim Initialisierungszustand ist nun der Wert (mp) j = 1 statt −1. Überdies muss die Transformationsfunktion bei der Entscheidung a j = l so ergänzt werden, dass der Wert für (mp) j+1 auf Eins gesetzt wird. Somit wird verhindert, dass die Entscheidung für eine Mittagspause a j = b getroffen wird, da in allen Labels angezeigt wird, dass bereits eine Mittagspause absolviert wurde. Somit gilt Folgendes für die Transformationsfunktion:
t l (x j , l) : (mp) j+1 = 1 (50.7)
Bei Auslassung des Dienstes muss der Initialisierungszustand auf x init =
(0, 0, 0, R P , 0, 0, N D , 0, 1, 24, 0) 1 0 geändert werden. Somit ist bei Beginn der Woche bereits die maximale Anzahl an erlaubten Diensten absolviert und der Algorithmus plant keine weiteren Dienste mehr ein. Um die Nebenbedingung des Startzeitfensters bei Γ = [24/7] nicht zu be-
rücksichtigen, muss T win = 24 und E A = T win + R A + 1 gesetzt werden. Somit
beinhaltet die for-Schleife beim Algorithmus 3, Zeile 1 in Kapitel 6.4
for i = 0 to E A − S A − R A − T win − 1 do
nur den Wert Null.
Die Lösungszeiten für die Analysen zeigt Tabelle 21 und Tabelle C.12 im Anhang mit weiteren Kennwerten.
Tab. 21: Lösungszeiten bei Auslassung der Nebenbedingungen „Mittagspau-
se“, „Dienst“ bzw. „Startzeitfenster“.
101
7 Zeitliche Analyse der Lösungsverfahren
Im Vergleich zur mittleren Lösungsdauer von 48,58 Sekunden bzw. 96,95 Sekunden für zwei bzw. vier Wochen (siehe Tabelle 17) bei Berücksichtigung aller Nebenbedingungen, führt die Auslassung der Nebenbedingung der Mittagspause zur größten Reduzierung der Lösungszeit. Beim Vernachlässigen der Nebenbedingung des Dienstes ist die Lösungszeit etwa halb so groß wie mit dieser Nebenbedingung.
Grund für die Reduzierungen ist die geringere Anzahl an Möglichkeiten für einen Schichtplan, sodass der Algorithmus weniger Labels erzeugen muss. Insbesondere müssen weniger Labels miteinander vergleichen werden, um die Effizienz von Labels festzustellen. Dies kann anhand Tabelle 22 bzw. mit weiteren Kennwerten anhand Tabelle C.13 bestätigt werden. Bei der Variation über zwei bzw. vier Wochen mit Berücksichtigung aller Nebenbedingungen ist
LV = 265, 41 · 10 6 bzw. LV = 528, 27 · 10 6 (siehe Tabelle 18). Man erkennt am
Vergleich, dass insbesondere die deutlich geringere Anzahl an notwendigen Labelvergleichen bei Auslassung der Nebenbedingungen die Lösungszeit positiv beeinflusst.
Tab. 22: Kennwerte der Labels bei Auslassung der Nebenbedingungen „Mit-
tagspause“, „Dienst“ bzw. „Startzeitfenster“.
Die Auslassung der Nebenbedingung des Startzeitfensters führt kaum zu einer Verbesserung der Lösungszeit. Auffallend ist auch die deutlich höhere
Varianz. Der Wert EL = 0, 83 · 10 6 zeigt eine scheinbar geringere Anzahl an
erzeugten Labels. Zu beachten ist, dass dies die Anzahl in einer Iteration über ein Startzeitfenster ist. Bei der Analyse mit Berücksichtigung von Startzeitfenstern bei Γ = [24/7] wird über 23 Startzeitfenster iteriert und somit ist die durchschnittliche Anzahl von erzeugten Labels in einer solchen Iteration
EL = 2, 83·10 6 /23 ≈ 0, 12·10 6 . Durch die hohe Anzahl an Labels in einer Itera-
tion bei Auslassung des Startzeitfensters sind viele Labelvergleiche notwendig,
102
7 Zeitliche Analyse der Lösungsverfahren
welche die Lösungszeit erhöhen. Zum Vergleich sei auch auf das Kapitel 7.2.9 verwiesen, in welchem der Parameter T win variiert wird.
7.2.7 Variation der Mindestarbeitszeit
Ziel dieser Analyse ist es, die Lösungszeit in Abhängigkeit der Mindestarbeits-zeit festzustellen. Die Mindestarbeitszeit R A wird zwischen den Werten 2 und 10 variiert. Hierfür ist es auch notwendig, die Werte T pre , T late und T post der Nebenbedingung der Mittagspause anzupassen, da es nicht möglich ist, dass
R
A
< T
pre
+
T
post
. Die Einstellungen der veränderten Parameter sind in Ta-
belle 23 dargestellt.
Tab. 23: Abweichende Parametereinstellungen bei Variation der
Mindestarbeitszeit.
Die Ergebnisse der Lösungszeiten zeigt Tabelle 24.
Tab. 24: Lösungszeiten bei Variation der Mindestarbeitszeit.
Es ist gut erkennbar, dass die mittleren Lösungszeiten für vier Wochen in etwa das Doppelte der entsprechenden Lösungszeiten der Variationen über zwei Wochen beträgt. Die Varianz der Lösungszeit nimmt mit steigender Wochen- anzahlab. Die geringste mittlere Lösungsdauer ist bei R A = 10. Bei dieser
Einstellung kann sich die Arbeitszeit nur zwischen den Werten 10 und 12 bewegen, wodurch es wenig Variation bei der Schichtplanerstellung gibt.
Dies lässt die höchste Lösungszeit bei R A = 2 erwarten. Dies ist nicht der
Fall, da es bei dieser Einstellung für das Setzen der Mittagspause nur zwei Möglichkeiten gibt, da T pre = 1 und T late = 2. Eine Mittagspause ist nach der ersten oder zweiten Periode möglich. Wie durch Kapitel 7.2.6 deutlich wurde, erhöht die Berücksichtigung der Mittagspause die Lösungsdauer. Somit ist es von Vorteil, wenn es nur eine geringe Anzahl an Möglichkeiten gibt, zu welcher Periode diese erfolgen kann. Somit verringert dieser zweite Effekt die erwartete längere Lösungsdauer, welche theoretisch durch die höhere Variationsbreite der Arbeitszeit hervorgerufen werden würde.
Diese beiden Effekte führen zu den unterschiedlichen Lösungszeiten, wobei
das Maximum bei R A = 6 angenommen wird. Bei dieser Einstellung gibt
103
7 Zeitliche Analyse der Lösungsverfahren
es vier mögliche Perioden für eine Mittagspause. Die Arbeitsdauer kann im Intervall [6, 12] liegen und somit sieben verschiedene Werte annehmen. Bei der
Einstellung R A = 4 gibt es neun verschiedene Werte für die Arbeitsdauer,
wodurch es zu einer längeren Lösungszeit kommt, welche aber durch die nur drei möglichen Platzierungen der Mittagspause kompensiert wird. Die Kennwerte der Labels sind für zwei Wochen in Tabelle 25 und für vier Wochen in Tabelle 26 dargestellt.
Tab. 25: Kennwerte der Labels bei Variation der Mindestarbeitslänge über
zwei Wochen.
Tab. 26: Kennwerte der Labels bei Variation der Mindestarbeitslänge über vier
Wochen.
Schön zu erkennen ist, dass die Lösungszeit von der Anzahl an notwendigen Labelvergleichen abhängt. Die Anzahl erstellter bzw. dominierter Labels spielt eine Rolle für die benötigte Lösungszeit, da hierdurch u. U. die Anzahl an
Vergleichen der Labels erhöht wird. Bei vier Wochen ist beispielsweise für R A =
2 trotz 6,03 Millionen erstellter Labels die Anzahl an LV am zweit Kleinsten. Grund hierfür ist die gleichmäßigere Aufteilung der erstellten Labels über alle
Stufen, wohingegen es bei R A = 4 bzw. R A = 6 zu Anhäufungen auf einzelnen
Stufen kommt.
104
7 Zeitliche Analyse der Lösungsverfahren
7.2.8 Variation der Höchstarbeitszeit
Dieses Kapitel analysiert die Lösungszeit in Abhängigkeit der Höchstarbeitszeit, um festzustellen, ob eine Variation dieser zu starken Änderungen in der Lösungsdauer führt. Der einzige Parameter, welcher in dieser Analyse verän-dert wird, ist R A = 8, 10, 12, 14. Dies führt zu den in Tabelle 27, bzw. ausführ-
licherin Tabelle C.16, dargestellten Lösungszeiten.
Tab. 27: Lösungszeiten bei Variation der Höchstarbeitszeit.
Die Lösungsdauer steigt mit größer werdendem R A , da hierdurch eine größe-re Anzahl verschiedener Schichtpläne konstruierbar sind. Beispielsweise kom-men bei der Analyse mit R A = 12 zusätzlich zu allen möglichen Schichtplänen mit R A = 10 noch jene mit R A = 11 und R A = 12 hinzu. Dieser Effekt ist
deutlicher bei der Variation über vier Wochen zu sehen.
Die Werte für die Anzahl der erstellten und dominierten Labels bzw. der notwendigen Labelvergleiche zur Bestimmung der Dominanz sind in Tabelle C.17 dargestellt.
7.2.9 Variation des Startzeitfensters
Ziel dieser Analyse ist es, den Einfluss zu erklären, warum bei Auslassung der Nebenbedingung für das „Startzeitfenster“ die Lösungszeit nicht deutlich sinkt. Für die Analyse wird nur der Parameter T win = 0, 1, ..., 5 variiert. Das Ergebnis der Laufzeitanalyse ist in Tabelle 28 bzw. mit weiteren Kennwerten in Tabelle C.18 angegeben.
T win
Tab. 28: Lösungszeiten bei Variation des Startzeitfensters.
Je größer das Startzeitfenster T win ist, also je mehr Perioden zwischen dem frühesten und spätesten Beginn der Arbeit innerhalb einer Woche sein können,
105
7 Zeitliche Analyse der Lösungsverfahren
desto höher ist die mittlere Lösungszeit. Der Grund hierfür ist die erhöhte Anzahl an Labels, welche erstellt und insbesondere für die Dominanz miteinander verglichen werden müssen. Die Anzahl an erstellten und dominierten Labels und die notwendigen Vergleiche für die Bestimmung der Dominanzbeziehungen steigen ebenso wie die mittleren Lösungsdauern mit größerem T win an. Diese sind in Tabelle C.19 dargestellt.
Wie in Kapitel 7.2.6 beschrieben, sind mit größerem T win weniger Startzeitfenster [s win , e win ] für das Lösen einer Iteration zu berücksichtigen, wodurch die Lösungszeit beschleunigt wird. Als entgegengesetzter Effekt sind aber pro Startzeitfenster mehr Schichtpläne zu konstruieren, wodurch es zu einer Verlangsamung kommt. Für T win = 0, ..., 5 überwiegt der zweite Effekt. Da ohne Berücksichtigung von T win , d.h. T win = 24, die durchschnittliche Lösungsdauer bei der Variation über zwei Wochen bei 46,78 Sekunden liegt, gibt es in Abhängigkeit von T win ein Maximum der Lösungsdauer, welches durch die beiden beschriebenen Effekte bestimmt wird. Die Bestimmung des Maximums benötigt weitere Analysen, liegt jedoch vermutlich bei T win = 12 bzw. T win = 13.
7.3 Zusammenfassung
In diesem Kapitel wurde die Laufzeit des DPs anhand von verschiedenen Variationen und im Vergleich zum MIP und dem SP aus Brunner et al. (2010) untersucht. Folgende Ergebnisse konnten festgestellt werden:
• Das DP hat im Mittel die schnellste Laufzeit, wenn auf jeder zweiten Stufe die Effizienz der bisher erzeugten Zustände untersucht wird und die Zustände einer Stufe nach aufsteigendem Zielfunktionswert bearbeitet werden.
• Das DP konnte für das Praxisbeispiel mit Γ = [7, 21] und Φ = [mo, f r] die Probleminstanzen ähnlich schnell wie das SP lösen. Das MIP hatte stets eine langsamere Lösungszeit.
• Für Werte der Parameter, welche keine starke Verkleinerung des möglichen Lösungsraumes beim MIP bzw. SP erlauben (z.B. Γ = 0, 24] und Φ = [mo, so]) konnte nur das DP die optimale Lösung finden. Das MIP und das SP konnten nach 20 Stunden keine Iteration optimal lösen.
• Mit ansteigender Dichte ρ(δ) erhöht sich die mittlere Lösungszeit beim DP, wobei der Anstieg mit steigendem ρ geringer ausfällt und auch ein Abfallen festgestellt werden konnte.
• Das Schichtplanungsproblem wird beim DP in Wochenprobleme zerlegt. Daher sind die Lösungszeiten proportional zur Wochenanzahl des Pla-nungshorizonts und die Varianz nimmt mit steigender Wochenanzahl ab.
106
7 Zeitliche Analyse der Lösungsverfahren
• Die Lösungszeit ist proportional zur Anzahl an Labelvergleichen bei der Dominanzbestimmung und erhöht sich pro eine Million Labelvergleiche um etwa 0,20 Sekunden.
• Für Variationen über sechs Wochen konnten beim DP aufgrund des beschränkten Arbeitsspeichers des Rechners Iterationen nicht gelöst werden. Dies tritt nur bei Werten der Parameter ein, welche nicht erlauben, die Anzahl an erzeugten Labels klein zu halten (Γ = [0, 24] bzw. Γ = 24/7). Daher sind die Lösungen der Variationen über sechs Wochen für diese Parametereinstellungen wenig aussagekräftig.
• Das DP hat ohne Berücksichtigung einer Mittagspause bzw. eines Dienstes eine schnellere Lösungsdauer. Bei der Variation ohne das Startzeitfenster konnte keine deutliche Beschleunigung der Lösungsdauer festgestellt werden.
• Die Variation der Mindestarbeitszeit R A mit Anpassung von T pre , T late und T post besitzt im DP für R A = 6 bei der Lösungsdauer ein Maximum.
Grund hierfür ist die unterschiedliche Anzahl an Schichtplänen, welche erstellt werden können. Die Einstellungen für T pre , T late und T post bestimmen insbesondere die Anzahl an Möglichkeiten einer Mittagspause innerhalb einer Schicht. Je mehr Möglichkeiten es für das Platzieren einer Mittagspause gibt, desto länger ist die Lösungsdauer. Dagegen wirkt der
Effekt, dass je größer R A ist, desto geringer ist die Anzahl an möglichen
Schichtplänen.
• Bei Variation über R A im DP steigt die Lösungszeit mit höherem R A . Der Anstieg ist konkav, da ein höheres R A nur durch ein höheres R WA ausgenutzt werden kann. In dieser Variation wurde das R WA konstant
gehalten.
• Bei Variation des möglichen Startzeitfensters T win der Arbeit innerhalb einer Woche konnte im DP mit steigendem T win ein fast exponentieller Anstieg der mittleren Lösungsdauer gesehen werden. Die ermittelten Werte und der Vergleich mit der mittleren Lösungsdauer ohne Berücksichtigung von T win lassen darauf schließen, dass es für ein bestimmtes T win ein Maximum der Lösungszeit gibt, da zwei Effekte die Lösungszeit beeinflussen. Mit steigendem T win müssen einerseits weniger Wiederholungen des Algorithmus durchgeführt werden, da weniger Startzeitfenster [s win , e win ] berechnet werden müssen. Auf der anderen Seite gibt es pro [s win , e win ] eine höhere Anzahl an möglichen Schichtplänen, welche berechnet werden müssen.
107
8 Ausblick
8 Ausblick
In dieser Arbeit wurde das Subproblem des Spaltengenerierungsverfahrens aus Brunner et al. (2010) als RCSP reformuliert und als MIP und DP modelliert. Ziel war es, die Lösungsdauer zu verringern bzw. eine optimale Lösung für komplexere Probleminstanzen zu ermöglichen.
Zuerst wurde ein Literaturüberblick über Veröffentlichungen der Schicht- planung imAllgemeinen und der Schichtplanung mit dem Lösungsverfahren der gemischt ganzzahligen Programmierung oder der dynamischen Programmierung gegeben. Es wurde festgestellt, dass bisher kein Ansatz veröffentlicht wurde, welcher eine hohe Flexibilität bei der Gestaltung der Nebenbedingungen und bei der Erstellung des Schichtplans aufweist. Die meisten Artikel beschäftigen sich mit einer Planung von explizit modellierten Schichten. Darauf wurde das Schichtplanungsproblem mit den Nebenbedingungen erläutert. Es können in der Schichtplanung eine Vielzahl an Restriktionen berücksichtigt werden. Dieser Aspekt und die implizite Modellierung der Schichtpläne ist die entscheidende Neuerung im Vergleich zu bisherigen Ansätzen. Das SP wurde anschließend als Netzwerk modelliert und die Nebenbedingungen durch Ressourcenbeschränkungen in einem RCSP abgebildet. Die Grundidee des symmetrischen Netzwerks ist hierbei eine Unterteilung in Knoten, welche das Ende einer Schicht repräsentieren und Knoten, welche das Ende einer Pause bzw. Mittagspause darstellen. Die Kanten zwischen den Knoten stellen die Perioden dar. Je nachdem, welcher Pfad von der Quelle zu der Senke benutzt wird, ergibt sich hieraus der Schichtplan. Die Ressourcenbeschränkungen sind auf den Knoten abgebildet, sodass ein Pfad nur fortgesetzt werden kann, wenn die entsprechenden Beschränkungen hierdurch nicht verletzt werden. Das RCSP wurde in einem nächsten Schritt als MIP formuliert, wobei Binärvariablen auf den Kanten angeben, welche Kante im benutzten Pfad enthalten ist. Durch ein Preprocessing, das den Wert bestimmter Binärvariablen in Abhängigkeit der möglichen Arbeitsdauer festsetzt, ist eine Reduzierung des Lösungsraumes möglich. Das MIP wurde in ILOG OPL implementiert und mit der Software CPLEX gelöst.
Als weitere Lösungsmethode für das RCSP wurde ein DP mit Vorwärtsinduktion gewählt und mit JAVA implementiert. Der Vorteil der Vorwärtsinduktion ist, dass Präferenzen von Ärzten berücksichtigt werden können, welche ein bestimmtes Pensum an Arbeit zu einem definierten Zeitpunkt absolviert haben möchten. Im DP wird der gesamte Planungshorizont in einzelne Wochenprobleme zerlegt. Eine Stufe des DPs stellt hierbei den Beginn einer Periode dar. Den Zuständen wurden Labels zugeordnet, welche durch den Verbrauch an Ressourcen und weiteren Komponenten charakterisiert sind. Um das Startzeitfenster, in welchem die Arbeit innerhalb einer Woche beginnen darf, effizient zu berücksichtigen, wurde der Algorithmus so angepasst, dass dieser iterativ
108
8 Ausblick
alle Schichtpläne aller möglichen Startzeitfenster berechnet und das Optimum feststellt. Es wurden außerdem die Bedingungen und eventuell notwendige An- passungenam Algorithmus diskutiert, damit die Zerlegung in Wochenprobleme dennoch den optimalen Schichtplan berechnen kann. Diese Bedingungen treten oft in der Praxis auf, sodass das DP eine optimale Lösungsmethode für praxisrelevante Instanzen bietet.
Im letzten Abschnitt wurden die dargestellten Lösungsmethoden auf ihre Laufzeit zur Lösungsfindung untersucht. Hierbei wurden anhand von selbst erstellten Testsätzen das SP, MIP und DP miteinander verglichen und das Laufzeitverhalten des DPs bei Variation von Parametern bestimmt. Für nicht komplexe Probleme der Praxis löst das DP die Instanzen fast genauso schnell wie das SP. Der Vorteil des DPs liegt darin, dass die Lösungszeit proportional zur Größe des Planungshorizonts ist, wohingegen im SP ein nichtlinearer Anstieg erkennbar ist. Für komplexere Probleminstanzen finden das SP und MIP keine optimalen Lösungen in vertretbarer Zeit, wohingegen das DP als einzige Lösungsmethode die optimale Lösung bei den meisten Probleminstanzen in weniger als einer Minute bestimmen kann.
Das DP stellt somit eine Lösungsmethode dar, welche komplexere Probleminstanzen deutlich effizienter löst als das SP. Überdies kann der Planungs-horizont theoretisch beliebig groß gewählt werden, da die Lösungszeit propor- tionalhierzu verläuft. Lediglich eine Beschränkung der Rechenleistung verhinderte die Lösung von komplexeren Problemen über einen Planungshorizont von sechs Wochen. Im Weiteren können deswegen Methoden entwickelt werden, welche, die bisherigen Effizienzregeln fortsetzend, nicht mehr benötigte Zustände löschen, um den Speicherbedarf zu reduzieren. Überdies kann die Lösungszeit durch weitere Effizienzregeln verbessert werden, um anhand von stärkeren Dominanzregeln mehr Zustände nicht mehr fortsetzen zu müssen. Denkbar wäre auch, den Label Setting Ansatz durch eine andere Methode zu ersetzen.
Da die Lösungszeit im DP von der Anzahl an Labelvergleichen abhängt, welche zur Bestimmung der Dominanz notwendig sind, könnte der Algorithmus weiterentwickelt werden, indem diese Anzahl reduziert wird. Eine Möglichkeit wäre, die zu vergleichenden Zustände nach bestimmten Kriterien zu sortieren, um so nur einen Teil der Zustände miteinander vergleichen zu müssen. Bisherige Versuche scheiterten an der Implementierung einer effizienten Sortierung, welche weniger Zeit benötigt, als hierdurch eingespart werden kann. Es könnte weiterhin untersucht werden, ob es zeiteffizient möglich ist, das Schichtplanungsproblem über den gesamten Planungshorizont zu lösen. Denkbar wäre, nur bestimmte Teilschichtpläne am Ende einer Woche fortzusetzen. Hierfür wären weitere Effizienzregeln notwendig, welche die Anzahl an Zuständen am Ende einer Woche reduzieren.
109
A Vollständiges Modell des MIPs
A Vollständiges Modell des MIPs
Minimiere
w∈W
unter den Bedingungen, dass NB: Flusserhaltung
r∈q +
y (q+1)(q+1) + = 1 (A.2)
(x pa + y pa + q pa ) − p∈a −
∀a ∈ V \ {q, q + 1, t − 1, t} (x as + y as + q as ) = 0
s∈a+
(A.3)
r∈(t−1) −
NB: Ressourcenverbrauch R A (i) R A (i − ) + x i − i + q i − i ∀i ∈ V (A.5)
R A (i) R A (i − ) + x i − i + q i − i − M · x i − i ∀i ∈ V (A.6) R A (i) M (1 − x i − i ) + 1 ∀i ∈ V (A.7) ∀i ∈ V R A (i) x i − i (A.8)
R A (j) = R A (j − ) + M (1 − x j − j ) ∀j ∈ V (A.9)
s R WA (i) = x i − i + x i − i ∀i ∈ V (A.10)
w
s R WA (i) = R WA (i − ) + x i − i + x i − i + q i − i ∀i ∈ V \ V (A.11)
w
R P (j) R P (j − ) + x j − j ∀j ∈ V (A.12)
R P (j) M (1 − x j − j − y j − j ) + 1 ∀j ∈ V (A.13)
R P (i) M (1 − x i − i − y i − i ) + R P (i − ) ∀i ∈ V (A.14)
R D (i) R D (i − ) + y i − i + y i − i ∀i ∈ V (A.15)
R D (i) R D (i − ) + y i − i + y i − i − M (1 − y i − i ) ∀i ∈ V (A.16) R D (i) M (1 − y i − i ) + 1 ∀i ∈ V (A.17) R D (i) y i − i ∀i ∈ V (A.18)
R D (j) = R D (j − ) + M (1 − y j − j ) ∀j ∈ V (A.19)
xiv
A Vollständiges Modell des MIPs
NB: Ressourcenfenster
∀j ∈ V, r ∈ {A,D} R r (j) R r (A.20) r R r (i) R ∀i ∈ V, r ∈ {A,WA,D} (A.21) R P (i) R P ∀i ∈ V (A.22) NB: Dienst ∀i ∈ V, p ∈ i − , s ∈ i + (A.23) y pi + x is 1 ∀i ∈ V, p ∈ i − , s ∈ i + (A.24) x pi + y is 1
∀w ∈ W y jj + N D (A.25) j∈V D
w
NB: Überstunden und Fehlstunden
w − o w + u w ∀w ∈ W R A (A.26) ∀w ∈ W h w o w−1 − u w (A.27) NB: Mittagspause
q j − j R A (j − ) − (T pre − 1) + M (1 − q j − j ) ∀j ∈ V (A.28)
q j − j R A (j − ) − (T late − 1) − M (1 − q j − j ) ∀j ∈ V (A.29)
R A (j − ) − M (1 − q jj + ) ∀j ∈ V (A.30) q jj + − q j − j = 0 ∀j ∈ V (A.31)
(x jj + − q j − j ) = 0 ∀w ∈ W, d ∈ D (A.32)
j∈V w,d
NB: Startzeitfenster ⎛ ⎛ ⎞ ⎞
l w −
Werte des vorherigen Planungshorizonts R P (q + 1) =
R P (A.35)
xv
A Vollständiges Modell des MIPs
Variablendefinition
x a − a ∈ {0, 1} ∀ a ∈ V (A.36) q i − i , q ii + ∈ {0, 1} ∀ i ∈ V (A.37) y i − i , y ii + ∈ {0, 1} ∀ i ∈ V (A.38) R r (a) ∈ N 0 ∀r ∈ T , a ∈ V (A.39) o w ∈ {0, 1, ..., R WA − v} ∀ w ∈ W (A.40) u w ∈ {0, 1, ..., v} ∀ w ∈ W 0 (A.41) h w ∈ {0, 1, ..., R WA − v} ∀ w ∈ W (A.42)
l w ∈ {S A , · · · , E A − R A } ∀ w ∈ W (A.43)
xvi
B Vollständiges Modell des DPs
B Vollständiges Modell des DPs
Ertragsfunktion
ΔR WA r(x j , a j ) = −δ dem · I {l} (a j ) − δ D j · I {d} (a j ) + c over · ·
j j+1
R WA I {S D } (j mod 24) + c over · min − v; 0 · I {l} (a j ) (B.1) 1; max
j+1
mit
Entscheidungen
Die möglichen Entscheidungen a j ∈ A j (x j ) hängen vom Zustand x j ab. Im Folgenden werden die möglichen Entscheidungen a j in Abhängigkeit der Zustände x j beschrieben. Hierbei ist für die Nebenbedingung der Startzeitfenster die Vorgehensweise von Kapitel 6.4 gewählt worden.
• a j = l für alle j mit x j ∈ X j , wenn x j folgendermaßen charakterisiert ist:
∧
∧
∧
∧
∧
∧ j · I {p} (a j−1 ) mod 24 e win (B.2.7) ∧ j mod 24 < E A (B.2.8)
∧ n −
• a j = p für alle j mit x j ∈ X j , wenn x j folgendermaßen charakterisiert ist:
∨
< R P ∨ R P (B.3.3)
j
= R P ∧ = 0 ∧ ∨ R P R A R D = 0 (B.3.4)
j j j
∧ (mp) j = −1 (B.3.5)
xvii
B Vollständiges Modell des DPs
• a j = d für alle j mit x j ∈ X j , wenn x j folgendermaßen charakterisiert ist:
R WA R WA − ˜ f 1 (j) (B.4.1)
j
∧
∧ n D + I {S D } (j mod 24) N D (B.4.4)
• a j = b für alle j mit x j ∈ X j , wenn x j folgendermaßen charakterisiert ist:
(mp) j = −1 (B.5.1)
∧ T pre T late R A (B.5.2)
j
∧
Transformationsfunktion
Wird eine Entscheidung a j ∈ A j (x j ) getroffen, so wird in Abhängigkeit der gewählten Entscheidung durch die Transformationsfunktion der neue Zustand x j+1 = t(x j , a j ) gebildet. Im Folgenden werden je nach gewählter Entscheidung die Komponenten eines Zustands x j+1 beschrieben, welche sich im Vergleich zu x j ändern.
⎧
t l
t p
t d
t b (x j , b) : (mp) j+1 = j (B.9)
Dominanzregeln
Um Zustände zu löschen, welche nicht mehr das Optimum ergeben können, werden Dominanzregeln eingeführt. Es gilt, dass x k j , wenn alle folgenden Gleichungen erfüllt sind. Aus Gründen der einfacheren Notation wird daher auf das Zeichen ∧ verzichtet. Für die Dominanzregeln müssen drei Zustandstypen unterschieden werden, welche angeben, welche Zustände miteinander verglichen werden. Entweder sind beide Zustände x k j Pausenzustände
(I) oder beide Zustände sind Arbeitszustände (II). Ein Dienstzustand kann nur als möglicher dominierter Zustand mit einem Arbeit- bzw. Dienstzustand verglichen werden (III).
(obj) k (B.10.3)
j
xix
B Vollständiges Modell des DPs
k k k k
j (obj) k (obj) k (B.11.4)
j
j (e) k (e) k (B.11.10)
j
j (e) k (l) k (B.11.11)
j
Bestimmung der optimalen Politik
Zu A) Für das Problem der Kombination der besten Endzustände x k i jeder
w i
Woche i zu einem Schichtplan über den gesamten Planungshorizont, muss folgendes Minimierungsproblem gelöst werden.
unter den Nebenbedingungen
+ (s mo ) w i+1 R P ∀i = 1, ..., |W | − 1 (R P ) k i (B.14.1)
w i
= 1 ⇒ (s mo ) w i+1 S D + R P ∀i = 1, ..., |W | − 1 (B.14.2) (d so ) k i
w i
k i+1
R WA D ) R WA · f 1 (j so ∀i = 1, ..., |W | − 1 (B.14.3) + (d so ) k i
w i w i+1
u w i = max
o w i − u w i+1 ; 0 ∀i ∈ 0, ..., |W | − 1 (B.14.6) h w i = max
xx
B Vollständiges Modell des DPs
Zu B) Aus den besten Endzuständen werden wochenweise rekursiv alle weiteren Zustände und Entscheidungen der Woche ermittelt. Hierbei wird für j =
1,
..., n
zuerst
aus
x
∗
x
∗
n−j+1
und
a
∗
n−j
das optimale
x
∗
1.
Aus
x
∗
n−j+1
wird zuerst
a
∗ ∗
⇒ a ∗ n−j = d ∀j = 1, ..., n R D > 0
n−j+1
(B.15.3)
x ∗ n−j ∈ X n−j mit der Rekursionsgleichung ermittelt. Es gilt:
x ∗ x ∗ n−j , a ∗ x ∗ ∀j = 1, ..., n V = r + V
n−j+1 n−j n−j
Es wird
also
iterativ derjenige Zustand
x
k
Abhängigkeit der Entscheidung a ∗ n−j folgende Gleichungen erfüllt
a ∗ n−j = l
k
c over · min
a ∗ n−j = p k ∗
n−j = (obj) ∗ (obj) k ∀j = 1, ..., n (B.17.4)
n−j+1
xxi
B Vollständiges Modell des DPs
a ∗ n−j = d
max
k
a ∗ n−j = b
k k ∗
n−j = (obj) ∗ (obj) k ∀j = 1, ..., n (B.19.2)
n−j+1
xxii
C Ausführliche Ergebnisse der Laufzeitanalysen
C Ausführliche Ergebnisse der Laufzeitanalysen
C.1 Häufigkeit der Effizienzprüfung
Tab. C.1: Lösungzeiten bei Variation der Häufigkeit der Effizienzprüfung - aus-
Tab.C.2: Kennwerte der Labels bei Variation der Häufigkeit der Effizienzprü-
C Ausführliche Ergebnisse der Laufzeitanalysen
C.2 Variation der ORDER Regel
Tab. C.3: Lösungzeiten bei Variation der ORDER Regel - ausführliche
Tab. C.4: Kennwerte der Labels bei Variation der ORDER Regel - ausführliche
C Ausführliche Ergebnisse der Laufzeitanalysen
C.3 Praxisbeispiel
Tab. C.5: Lösungzeiten des MIPs, DPs und SPs im Praxisbeispiel - ausführli-
Tab.C.6: Kennwerte der Labels beim Praxisbeispiel - ausführliche
C Ausführliche Ergebnisse der Laufzeitanalysen
C.4 Praxisbeispiel II
Tab. C.7: Anzahl an Variablen, Nebenbedingungen und Koeffizienten ungleich
C Ausführliche Ergebnisse der Laufzeitanalysen
C.5 Variation der Dichte der Deltas
Max 325,42 1077,20 450,95 401,64 322,39 536,55 1280,09 1752,00
Tab. C.8: Lösungszeiten bei Variation der Dichten von δ dem und δ D - ausführ-
Tab.C.9: Kennwerte der Labels bei Variation der Dichten von δ dem und δ D für
Tab. C.10: Kennwerte der Labels bei Variation der Dichten von δ dem und δ D
Tab. C.11: Kennwerte der Labels bei Variation der Dichten von δ dem und δ D
C Ausführliche Ergebnisse der Laufzeitanalysen
C.6 Auslassung der Nebenbedingungen „Mittagspause“,
„Dienst“ bzw. „Startzeitfenster“
Tab. C.12: Lösungszeiten bei Auslassung der Nebenbedingungen „Mittagspau-
C Ausführliche Ergebnisse der Laufzeitanalysen
C.7 Variation der Mindestarbeitszeit
Tab. C.14: Lösungszeiten bei Variation der Mindestarbeitszeit - ausführliche
C Ausführliche Ergebnisse der Laufzeitanalysen
C.8 Variation der Höchstarbeitszeit
Tab. C.16: Lösungszeiten bei Variation der Höchstarbeitszeit - ausführliche
C Ausführliche Ergebnisse der Laufzeitanalysen
C.9 Variation des Startzeitfensters
T win
Tab. C.18: Lösungszeiten bei Variation des Startzeitfensters - ausführliche
Literaturverzeichnis
Literaturverzeichnis
Ahuja, R., Magnanti, T. und Orlin, J. (1993), Network flows: theory, algorithms, and applications, Prentice-Hall, New York, NY.
Bard, J. und Purnomo, H. (2005), ‘Short-term nurse scheduling in response to daily fluctuations in supply and demand’, Health Care Management Science 8(4), 315-324.
Barnhart, C., Johnson, E., Nemhauser, G., Savelsbergh, M. und Vance, P. (1998), ‘Branch-and-price: Column generation for solving huge integer programs’, Operations Research 46(3), 316-329.
Beliën, J. (2006), Exact and Heuristic Methodologies for Scheduling in Hospitals: Problems, Formulations and Algorithms, Dissertation, Faculteit Economische en Toegepaste Economische Wetenschap- pen, KatholiekeUniversiteit Leuven, Belgien. online verfügbar unter http://www.econ.kuleuven.be/jeroen.belien.
Beliën, J. und Demeulemeester, E. (2006), ‘Scheduling trainees at a hospital department using a branch-and-price approach’, European journal of operational research 175(1), 258-278.
Beliën, J. und Demeulemeester, E. (2008), ‘A branch-and-price approach for integrating nurse and surgery scheduling’, European Journal of Operational Research 189(3), 652-668.
Bellman, R. (1952), ‘On the theory of dynamic programming’, Proceedings of the National Academy of Sciences of the United States of America 38(8), 716-719. online verfügbar unter http://www.pnas.org/content/38/8/716.full.pdf.
Bellman, R. (1959), Dynamic Programming, 2. Aufl., Princeton University Press, Princeton, NJ.
Bellman, R. und Dreyfus, S. (1962), Applied dynamic programming, Princeton University Press, Princeton, NJ.
Bertsekas, D. (2005), Dynamic programming and optimal control, Vol. I, 3. Aufl., Athena Scientific, Belmont, MA.
Bhavnani, K. und Chen, K. (1966), Optimization of time-dependent systems by dynamic programming , in ‘Joint automatic control conference’, S. 516-521.
Bradley, S., Hax, A. und Magnanti, T. (1977), Applied mathematical programming, Addison-Wesley, Reading, MA. online verfügbar unter http://web.mit.edu/15.053/www/.
xxxvii
Literaturverzeichnis
Brunner, J., Bard, J. und Kolisch, R. (2009), ‘Flexible shift scheduling of phy- sicians’, HealthCare Management Science 12(3), 285-305.
Brunner, J., Bard, J. und Kolisch, R. (2010), ‘Midterm scheduling of physicians with flexible shifts using branch-and-price’, To appear in IIE Transactions on Operations Engineering .
Burke, E., De Causmaecker, P., Vanden Berghe, G. und Van Landeghem, H. (2004), ‘The state of the art of nurse rostering’, Journal of scheduling 7(6), 441-499.
Cezik, T., Günlük, O. und Luss, H. (2001), ‘An integer programming model for the weekly tour scheduling problem’, Naval Research Logistics 48(7), 607-624.
Cheang, B., Li, H., Lim, A. und Rodrigues, B. (2003), ‘Nurse rostering problems—-a bibliographic survey’, European Journal of Operational Research 151(3), 447-460.
Cooper, L. und Cooper, M. (1981), Introduction to dynamic programming, Pergamon Press, Oxford.
Desaulniers, G., Desrosiers, J. und Solomon, M. ,Hrsg. (2005), Column generation, Springer, Berlin.
Desrochers, M. und Soumis, F. (1988), ‘A generalized permanent labelling algorithm for the shortest path problem with time windows’, Infor 26(3), 191-212.
Desrochers, M. und Soumis, F. (1989), ‘A column generation approach to the urban transit crew scheduling problem’, Transportation Science 23(1), 1-13.
Desrosiers, J., Dumas, Y., Solomon, M. und Soumis, F. (1995), Time constrained routing and scheduling, in M. Ball, C. L. Monma und T. Magnanti (Hrsg.), ‘Network routing’, Handbooks in Operations Research and Management Science, 8: Network Routing, North-Holland Publishing, Amsterdam.
Dreyfus, S. und Law, A. (1977), The art and theory of dynamic programming, Academic Press, New York, NY.
Ernst, A., Jiang, H., Krishnamoorthy, M., Owens, B. und Sier, D. (2004a), ‘An annotated bibliography of personnel scheduling and rostering’, Annals of Operations Research 127(1), 21-144.
xxxviii
Literaturverzeichnis
Ernst, A., Jiang, H., Krishnamoorthy, M. und Sier, D. (2004b), ‘Staff scheduling and rostering: A review of applications, methods and models’, European Journal of Operational Research 153(1), 3-27.
Eveborn, P. und Rönnqvist, M. (2004), ‘Scheduler-A system for staff planning’, Annals of Operations Research 128(1-4), 21-45.
Fahrmeir, L., Künstler, R., Pigeot, I. und Tutz, G. (2009), Statistik. Der Weg zur Datenanalyse, 7. Aufl., Springer, Berlin.
Garey, M. und Johnson, D. (1979), Computers and Intractability: A Guide to the Theory of NP-completeness, W.H. Freeman, New York, NY.
Grünert, T. und Irnich, S. (2005a), Optimierung im Transport, Band I: Grundlagen, Shaker, Aachen.
Grünert, T. und Irnich, S. (2005b), Optimierung im Transport, Band II: Wege und Touren, Shaker, Aachen.
Hans, E. (2001), Resource loading by branch-and-price techniques, Dissertation, Twente University Press, Enschede, Niederland.
Hartel, P. H. und Glaser, H. (1996), ‘The resource constrained shortest path problem implemented in a lazy functional language’, Journal of Functional Programming 6(1), 29-45.
Isfort, M. und Weidner, F. (2007), ‘Pflege-Thermometer 2007. Eine bundesweite repräsentative Befragung zur Situation und zum Leistungsspektrum des Pflegepersonals sowie zur Patientensicherheit im Krankenhaus.’. Her- ausgegeben von:Deutsches Institut für angewandte Pflegeforschung e.V. (dip), Köln. http://www.dip.de/materialien/berichte-dokumente/.
Jaumard, B., Semet, F. und Vovor, T. (1996), A two-phase resource constrained shortest path algorithm for acyclic graphs, Technical report, Les Cahiers du GERAD G-96-48, École des Hautes Études Commerciales, Montréal.
Jaumard, B., Semet, F. und Vovor, T. (1998), ‘A generalized linear program- mingmodel for nurse scheduling’, European Journal of Operational Research 107(1), 1-18.
Jungnickel, D. (1994), Graphen, Netzwerke und Algorithmen, 3. Aufl., Bibliographisches Institut, Mannheim.
Kellerer, H., Pferschy, U. und Pisinger, D. (2004), Knapsack problems, Springer, Berlin.
Kellogg, D. und Walczak, S. (2007), ‘Nurse scheduling: From academia to implementation or not?’, Interfaces 37(4), 355-369.
xxxix
Literaturverzeichnis
Kohl, N. und Karisch, S. (2004), ‘Airline crew rostering: problem types, modeling, and optimization’, Annals of Operations Research 127(1), 223-257.
Mandelbaum, A. (2006), ‘Call Centers (Centres). Research Bibliography with Abstracts. Version 7’. http://ie.technion.ac.il/serveng/References/US7_ CC_avi.pdf.
Mason, A. und Smith, M. (1998), A nested column generator for solving rostering problems with integer programming, in L. Caccetta, K. Teo, P. Siew, Y. Leung, L. Jennings und V. Rehbock (Hrsg.), ‘International conference on optimisation: techniques and applications’, Curtin University of Technology, Perth, Australia, S. 827-834.
Righini, G. und Salani, M. (2008), ‘New dynamic programming algorithms for the resource constrained elementary shortest path problem’, Networks 51(3), 155-170.
Seinfeld, J. und Lapidus, L. (1968), ‘Aspects of the Forward Dynamic Programming Algorithm’, Industrial & Engineering Chemistry Process Design and Development 7(3), 475-478.
Sennott, L. (1999), Stochastic dynamic programming and the control of queueing systems, Wiley-Interscience, New York, NY.
Sniedovich, M. (2006), ‘Dijkstra’s algorithm revisited: the dynamic program- mingconnexion’, Control and cybernetics 35(3), 599-620.
Statistisches Bundesamt (2009), ‘Gesundheit. Grunddaten der Krankenhäuser 2008’. Fachserie 12, Reihe 6.1.1, Wiesbaden.
Thungjaroenkul, P., Cummings, G. und Embleton, A. (2007), ‘The impact of nurse staffing on hospital costs and patient length of stay: a systematic review’, Nursing Economics 25(5), 255-265.
Wilhelm, W. (2001), ‘A technical review of column generation in integer pro- gramming’, Optimizationand Engineering 2(2), 159-200.
Williams, H. (1999), Model building in mathematical programming, John Wiley & Sons, Chichester.
Yunes, T., Moura, A. und de Souza, C. (2000), A hybrid approach for solving large scale crew scheduling problems, in E. Pontelli und S. Vitor (Hrsg.), ‘Lecture Notes in Computer Science’, Vol. 1753, Springer, Berlin, S. 293-307.
Zhu, X. (2005), The dynamic, resource-constrained shortest path problem on an acyclic graph with application in column generation and a literature xl
Literaturverzeichnis
review on sequence-dependent scheduling, Dissertation, Texas A&M University.
Ziegelmann, M. (2001), Constrained shortest paths and related problems, Dissertation, Universität des Saarlandes, Saarbrücken.
xli
Arbeit zitieren:
Jan Mathias Köhler, 2010, Generierung von Personaleinsatzplänen in Dienstleistungsunternehmen: Reformulierung von Entscheidungsproblemen und deren Lösung, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
BWL - Personal und Organisation: neuer Titel erschienen: Generierung von Personaleinsatzplänen in Dienstleistungsunternehmen: Reformulierung von Entscheidungsproblemen und deren Lösung
Jan Mathias Köhler hat einen neuen Text hochgeladen
The Encyclopedia of Restaurant Training: A Complete Ready-To-Use Train...
Lora Arduser, Douglas Robert Brown
Forward-Looking Decision Making: Dynamic-Programming Models Applied to...
Dynamic Programming Models App...
Robert Ernest Hall
Dynamic Programming Based Operation of Reservoirs: Applicability and L...
K. D. W. Nandalal, Janos J. Bogardi
0 Kommentare