$Title Wagner-Whitin-Modell mit Blockrabatten $Ontext Vorlesung: Supply Chain Management Abschnitt: 2.4 Einstufige Beschaffungsplanung bei Multiple Sourcing und Mengenrabatten Problemstellung: Lieferantenwahl und Allokation optimaler Bestellmengen bei Blockrabatten und dynamischem Bedarfsverlauf - Model - Author: Florian Scholz und Rui Guo Date: 02/12/2019 $Offtext $eolcom// $include clsp-qd_data.gms variables kosten Gesamtkosten deltaQ_for_tPrime(i,l,t,tPrime) Teil der Bestellmenge bei Lieferant i in Periode t fuer Bedarf in Periode tPrime der auf Rabattstufe l entfaellt deltaQ(i,l,t) Teil der Bestellmenge bei Lieferant i in Periode t der auf Rabattstufe l entfaellt y(i,l,t) gleich 1 falls in Periode t bei Lieferant i auf Stufe l bestellt wird ; binary variable y ; positive variable deltaQ_for_tPrime ; equations def_kosten Definition der Gesamtkosten def_deltaQ(i,l,t) Definition des Teils der Bestellmenge bei Lieferant i in Periode t der auf Rabattstufe l entfaellt bedarf(tPrime) Deckung des Bedarfs in Periode tPrime rabattstufe_unten(i,l,t) Einhaltung der unteren Grenzen der Rabattstufe l>1 bei Lieferant i rabattstufe_unten_1(i,l,t) Einhaltung der unteren Grenze der ersten Rabattstufe l=1 bei Lieferant i rabattstufe_oben(i,l,t) Einhaltung der oberen Grenzen der Rabattstufe l>1 bei Lieferant i rabattstufe_oben_1(i,l,t) Einhaltung der oberen Grenze der ersten Rabattstufe l=1 bei Lieferant i rabattstufen_1_2(i,l,t) Nur Bestellung auf Rabattstufe 2 wenn Obergrenze von Rabattstufe 1 erreicht kapazitaet(i,t) Kapazitaetsrestriktion fuer Lieferant i in Periode t ; def_kosten.. kosten =e= sum((t,i), sum(l$stufe(i,l), pi(i,l,t)*deltaQ(i,l,t) + I_rate*pi(i,l,t)*sum(tPrime$(ord(tPrime)>ord(t)), (ord(tPrime)-ord(t))*deltaQ_for_tPrime(i,l,t,tPrime))) + k(i)*y(i,"l1",t)) ; def_deltaQ(i,l,t)$stufe(i,l).. deltaQ(i,l,t) =e= sum(tPrime$(ord(tPrime) ge ord(t)), deltaQ_for_tPrime(i,l,t,tPrime)); bedarf(tPrime).. sum((i,l,t)$(stufe(i,l) and (ord(t) le ord(tPrime))), deltaQ_for_tPrime(i,l,t,tPrime)) =g= d(tPrime); rabattstufe_unten(i,l,t)$(stufe(i,l) and (ord(l)>1) and (ord(l)1)).. deltaQ(i,l,t) =l= (ub(i,l)-lb(i,l))*y(i,l,t); rabattstufe_oben_1(i,l,t)$(ord(l)=1).. deltaQ(i,l,t) =l= ub(i,l)*y(i,l,t); rabattstufen_1_2(i,l,t)$(ord(l)=1).. deltaQ(i,l,t) =g= ub(i,l)*y(i,l+1,t); kapazitaet(i,t).. sum(l$stufe(i,l), deltaQ(i,l,t)) =l= R(i,t); model ulsp_id / all / ; options mip = cplex optcr = 0 reslim = 60 ; solve ulsp_id minimzing kosten using mip ; display kosten.l, y.l, deltaQ.l, deltaQ_for_tPrime.l ;