$Title Schichtplanung $Ontext Vorlesung: Service Operations Management Abschnitt: 3.3 Personaleinsatzplanung Problemstellung: Erzeugung von zulaessigen Schichtmustern zur Deckung von Personalbedarfen - Model - Author: Rui Guo Date: 24/11/2019 $Offtext $eolcom// $include shift-scheduling_data.gms variables einsatz Personaleinsatz in Mitarbeiter-Perioden (Zielfunktion) x(t) Anzahl an Mitarbeitern die zu Beginn von Periode t eine Schicht beginnen y(t) Anzahl an Mitarbeitern die zum Ende von Periode t eine Schicht beenden z(t) Anzahl an Mitarbeitern die zu Beginn von Periode t in die Pause gehen ; integer variable x, y, z ; equations def_einsatz Berechnung des Personaleinsatzes deckung_bedarf(t) Deckung des Personalbedarfs in Periode t schichtlaenge_min(t) Einhaltung der minimalen Schichtlaenge in Periode t schichtlaenge_max(t) Einhaltung der maximalen Schichtlaenge in Periode t beendigung_schicht Jede Schicht muss beendet werden pausen_in_schicht_1(t) Keine Pausen vor Schichtbeginn in Periode t pausen_in_schicht_2(t) Keine Pausen nach Schichtende in Periode t einhaltung_pausen Jeder Mitarbeiter nimmt eine Pause ; def_einsatz.. einsatz =e= sum(t, (card(t)-ord(t)+1)*x(t)) - sum(t, (card(t)-ord(t))*y(t))-d_br*sum(t,z(t)) ; deckung_bedarf(t).. sum(tPrime$(ord(tPrime) le ord(t)), x(tPrime)) - sum(tPrime$(ord(tPrime)card(t)-d_min+2) = 0 ; // kein Schichtbeginn in diesen Perioden moeglich model shift_scheduling / all / ; options mip = cplex optcr = 0 reslim = 60 ; solve shift_scheduling minimzing einsatz using mip ; display einsatz.l, x.l, y.l, z.l ;