$Title Aggregierte Kapazitaetsabstimmung $Ontext Vorlesung: Produktionswirtschaft Abschnitt: 4.1 Produktionsprogrammplanung Problemstellung: Integrierte dynamische Produktionsprogrammplanung und aggregierte Personalkapazitaetsplanung - Model - Author: Rui Guo Date: 06/11/2019 $Offtext $eolcom// $include pers-cap-planning_data.gms variable kosten Gesamtkosten (Zielfunktion) x(j,t) Lagerbestand von Produktgruppe j zu Beginn von Periode t y(j,t) Produktionsmenge von Produktgruppe j in Periode t u(t) Anzahl an Stammarbeitskraeften in Periode t uPlus(t) Anzahl zu Beginn von Periode t eingestellter Stammarbeitskraefte v(t) Anzahl an Ueberstunden in Periode t w(t) Anzahl an Leiharbeitskraeften in Periode t aPlus(t) Anzahl der Mehrstunden in Periode t aMinus(t) Anzahl der Minderstunden in Periode t ; positive variables u, v, w, x, y, aMinus, aPlus, uPlus ; equations def_kosten Definition der Gesamtkosten kapazitaet(i,t) Kapazitaetsrestriktion fuer Faktor i und Periode t stundenbilanz(t) Bilanzgleichung fuer Stundenkonto in Periode t kontenausgleich Kontenausgleichsbedingung konto_min(t) Untere Grenze des Flexibilitaetskorridors konto_max(t) Obere Grenze des Flexibilitaetskorridors arbeitskraeftebilanz(t) Bilanzgleichung fuer Bestand an Stammarbeitskraeften in Periode t lagerbilanz(j,t) Lagerbilanzgleichung fuer Bestand von Produktgruppe j in Periode t+1 ; def_kosten.. kosten =e= sum(t$real(t), ANormal*(knl*u(t)+kll*w(t))+kul*v(t)+sum(j, h(j)*x(j,t+1))) ; kapazitaet(i,t)$(not sameas(i,'personal') and real(t)).. sum(j, a(i,j)*y(j,t)) =l= R(i,t) ; stundenbilanz(t)$real(t).. sum(j, aHuman(j)*y(j,t)) =l= ANormal*(u(t)+w(t))+v(t)+aPlus(t)-aMinus(t) ; kontenausgleich.. sum(t, aPlus(t)-aMinus(t)) =e= 0 ; konto_min(t)$real(t).. sum(tPrime$(ord(tPrime) le ord(t)), aPlus(tPrime)-aMinus(tPrime)) =g= -AQuerMinus*u(t) ; konto_max(t)$real(t).. sum(tPrime$(ord(tPrime) le ord(t)), aPlus(tPrime)-aMinus(tPrime)) =l= AQuerPlus*u(t) ; arbeitskraeftebilanz(t)$((ord(t)>1) and real(t)).. u(t) =e= u(t-1)+uPlus(t)-uMinus(t) ; lagerbilanz(j,t)$real(t).. x(j,t+1) =e= x(j,t)+y(j,t)-d(j,t) ; v.up(t) = vQuer(t) ; // Beschraenkung der Anzahl an Ueberstunden u.fx(t)$(ord(t)=1) = ua ; u.fx(t)$(ord(t)=card(t)-1) = ua ; x.fx(j,t)$(ord(t)=1) = xa(j) ; model pers_cap_planning / all / ; options lp = cplex ; solve pers_cap_planning minimizing kosten using lp ; display kosten.l, y.l, x.l, u.l, uPlus.l, v.l, w.l, aPlus.l, aMinus.l ;