$Title Iterative Methode (s,q)-Politik $Ontext Vorlesung: Supply Chain Management Abschnitt: 2.3 Modelle der einstufigen Beschaffungsplanung Problemstellung: Iterative Methode zur Optimierung einer (s,q)-Politik unter normalverteiltem Periodenbedarf - Model - Author: Christoph Schwindt Date: 06/03/2019 $Offtext $eolcom// $include s-q_data.gms scalar q Bestellmenge ; variables null Dummy-Zielfunktionswert s Bestellpunkt ; equations def_null Definition der Dummy-Zielfunktion servicegrad Berechnung des Bestellpunkts zum beta-Servicegrad ; def_null.. null =e= 0 ; servicegrad.. (1/sqrt(2*pi)*exp(-sqr((s-mu)/sigma)/2)-(s-mu)/sigma*(1-errorf((s-mu)/sigma)))*sigma =e= (1-beta)*q ; model s_q_iter / all / ; options minlp = lindoglobal optcr = 1e-6 reslim = 60 decimals = 8 ; s.lo = -1000 ; s.up = 1000 ; // Schranken fuer den Solver s_q_iter.solprint = 2 ; // Unterdrueckung der Eintraege im Listing-File ***** Iterative Methode ***** set i Iterationen / i0*i100 / ; scalars ctr Zaehler / 1 / prev_q Bestellmenge der vorangegangenen Iteration ; parameters report(i,*) Dokumentation der Iterationen ; q = sqrt(2*k*d/h) ; report('i0', 's-Wert') = inf ; report('i0', 'q-Wert') = q ; repeat ( ctr = ctr + 1 ; prev_q = q ; solve s_q_iter using minlp minimzing null ; // berechne s(q) q = sqrt(2*k*d/h)*sqrt((1-errorf((s.l-mu)/sigma))/(2*beta-errorf((s.l-mu)/sigma)-1)) ; // berechne q(s) report(i, 's-Wert')$(ord(i)=ctr) = s.l ; report(i, 'q-Wert')$(ord(i)=ctr) = q ; until (abs(prev_q-q) < 1e-9) ) ; display report ; ******************************** scalars C Erwartete Gesamtkostenrate sb Sicherheitsbestand ; C = h*(s.l+q/2-L*d)+k*d/q ; sb = s.l - mu ; display C, s.l, q, sb ;