$Title Wagner-Whitin-Modell mit Stufenrabatten $Ontext Vorlesung: Supply Chain Management Abschnitt: 2.4 Einstufige Beschaffungsplanung bei Multiple Sourcing und Mengenrabatten Problemstellung: Lieferantenwahl und Allokation optimaler Bestellmengen bei Stufenrabatten und dynamischem Bedarfsverlauf - Model - Author: Florian Scholz und Rui Guo Date: 25/11/2019 $Offtext $eolcom// $include clsp-qd_data.gms variables kosten Gesamtkosten q_for_tPrime(i,l,t,tPrime) Bestellmenge bei Lieferant i auf Rabattstufe l in Periode t fuer Bedarf in Periode tPrime q(i,l,t) Bestellmenge bei Lieferant i auf Rabattstufe l in Periode t y(i,l,t) gleich 1 falls in Periode t bei Lieferant i auf Stufe l bestellt wird ; binary variable y ; positive variable q_for_tPrime ; equations def_kosten Definition der Gesamtkosten rabattstufe(i,t) Zuweisung der Rabattstufe fuer Lieferant i in Periode t def_q(i,l,t) Definition der Bestellmenge bei Lieferant i auf Rabattstufe l in Periode t bedarf(tPrime) Deckung des Bedarfs in Periode tPrime rabattstufe_unten(i,l,t) Einhaltung der unteren Grenze der Rabattstufe l bei Lieferant i rabattstufe_oben(i,l,t) Einhaltung der oberen Grenze der Rabattstufe l bei Lieferant i kapazitaet(i,t) Kapazitaetsrestriktion fuer Lieferant i in Periode t ; def_kosten.. kosten =e= sum((t,i,l)$stufe(i,l), pi(i,l,t)*q(i,l,t) + I_rate*pi(i,l,t)*sum(tPrime$(ord(tPrime)>ord(t)), (ord(tPrime)-ord(t))*q_for_tPrime(i,l,t,tPrime)) + k(i)*y(i,l,t)) ; rabattstufe(i,t).. sum(l$stufe(i,l), y(i,l,t)) =l= 1; def_q(i,l,t)$stufe(i,l).. q(i,l,t) =e= sum(tPrime$(ord(tPrime) ge ord(t)), q_for_tPrime(i,l,t,tPrime)); bedarf(tPrime).. sum((i,l,t)$(stufe(i,l) and (ord(t) le ord(tPrime))), q_for_tPrime(i,l,t,tPrime)) =g= d(tPrime); rabattstufe_unten(i,l,t)$stufe(i,l).. lb(i,l)*y(i,l,t) =l= q(i,l,t); rabattstufe_oben(i,l,t)$stufe(i,l).. q(i,l,t) =l= ub(i,l)*y(i,l,t); kapazitaet(i,t).. sum(l$stufe(i,l), q(i,l,t)) =l= R(i,t); model ulsp_aud / all / ; options mip = cplex optcr = 0 reslim = 60 ; solve ulsp_aud minimzing kosten using mip ; display kosten.l, y.l, q.l, q_for_tPrime.l ;