$Title Pufferverteilung fuer Reihenfertigung $Ontext Vorlesung: Modellierung und Planung von Logistiksystemen Abschnitt: 3.2 Konfigurationsplanung bei Fliessfertigung Problemstellung: Verteilung einer gegebenen Anzahl von Pufferplaetzen auf die Zellen eines Fliessfertigungssystems bei Poissonschen Ankuenften und exponentialverteilten Bearbeitungsdauern Hinweis: Implementierung des Modells ist auf dreistufige Systeme ausgerichtet - Model - Author: Christoph Schwindt Date: 08/12/2019 $Offtext $eolcom// $include buffer-allocation_data.gms variables DB Erwarteter Deckungsbeitrag abzgl. erwarteter Lagerungskosten L Erwarteter Umlaufbestand lambda_eff Effektive Ankunfsrate pi(i1,i2,i3) Stationaere Wahrscheinlichkeit von Zustand i piPrime(i1,i2,i3) Hilfsvariable = pi*yPrime q(i1,i2,i3,j1,j2,j3) Hilfsvariable = g*pi*y z(k) Pufferkapazitaet von Zelle k y(i1,i2,i3) Indikatorvariablen y yPrime(i1,i2,i3) Indikatorvariablen y' yBar(ik,k) Indikatorvariable fuer Unzulaessigkeit von Zustand ik in Zelle k ; positive variables pi, piPrime, q ; binary variables y, yPrime, yBar ; integer variables z ; equations def_DB Definition des erwarteten Deckungsbeitrags eff_ankunftsrate Berechnung der effektiven Ankunfsrate umlaufbestand Berechnung des erwarteten Umlaufbestands def_q_1(i1,i2,i3,j1,j2,j3) Definition von q(ij) fuer Zustaende i und j Teil 1 def_q_2(i1,i2,i3,j1,j2,j3) Definition von q(ij) fuer Zustaende i und j Teil 2 def_q_3(i1,i2,i3,j1,j2,j3) Definition von q(ij) fuer Zustaende i und j Teil 3 gleichgewicht(i1,i2,i3) Gleichgewichtsbedingungen fuer Zustand i norm Normierungsbedingung def_yBar_1(ik,k) Definition von yBar(ikk) fuer Zustand ik und Zelle k Teil 1 def_yBar_2(ik,k) Definition von yBar(ikk) fuer Zustand ik und Zelle k Teil 2 def_y_1(i1,i2,i3) Definition von y(i) fuer Zustand i Teil 1 def_y_2(i1,i2,i3) Definition von y(i) fuer Zustand i Teil 2 def_pi(i1,i2,i3) Definition von pi(i) fuer Zustand i def_yPrime(i1,i2,i3) Definition von yPrime(i) fuer Zustand i def_PiPrime_1(i1,i2,i3) Definition von piPrime(i) fuer Zustand i Teil 1 def_piPrime_2(i1,i2,i3) Definition von piPrime(i) fuer Zustand i Teil 2 def_piPrime_3(i1,i2,i3) Definition von piPrime(i) fuer Zustand i Teil 3 allokation Verteilung der der Pufferkapazitaet auf die Zellen ; def_DB.. DB =e= w*lambda_eff - h*L ; eff_ankunftsrate.. lambda_eff =e= (1-sum(i, piPrime(i)))*lambda ; umlaufbestand.. L =e= sum((i1,i2,i3), (ord(i1)+ord(i2)+ord(i3)-card(k))*pi(i1,i2,i3)) ; def_q_1(i,j)$(g(i,j)>0).. q(i,j) =g= g(i,j)*pi(i) - g(i,j)*(1-y(j)); def_q_2(i,j)$(g(i,j)>0).. q(i,j) =l= g(i,j)*pi(i) ; def_q_3(i,j)$(g(i,j)>0).. q(i,j) =l= g(i,j)*y(j) ; gleichgewicht(i).. sum(j, q(i,j)) =e= sum(j, q(j,i)) ; norm.. sum(i, pi(i)) =e= 1 ; def_yBar_1(ik,k).. yBar(ik,k) =l= 1 - (z(k)-ord(ik)+3)/(zBar(k)+2) ; def_yBar_2(ik,k).. yBar(ik,k) =g= (ord(ik)-2-z(k))/zBar(k) ; def_y_1(i1,i2,i3).. y(i1,i2,i3) =l= 1 - (yBar(i1,'k1')+yBar(i2,'k2')+yBar(i3,'k3'))/card(k) ; def_y_2(i1,i2,i3).. y(i1,i2,i3) =g= 1 - (yBar(i1,'k1')+yBar(i2,'k2')+yBar(i3,'k3')) ; def_pi(i).. pi(i) =l= y(i) ; def_yPrime(i1,i2,i3).. yPrime(i1,i2,i3) =g= (ord(i1)-1) * y(i1,i2,i3) - z('k1') ; def_piPrime_1(i).. pi(i) - (1-yPrime(i)) =l= piPrime(i) ; def_piPrime_2(i).. piPrime(i) =l= pi(i) ; def_piPrime_3(i).. piPrime(i) =l= yPrime(i) ; allokation.. sum(k, z(k)) =e= ges_kap ; z.up(k) = zBar(k) ; q.fx(i,j)$(g(i,j)=0) = 0 ; model buffer_allocation / all / ; options mip = cplex optcr = 0 reslim = 60 ; solve buffer_allocation using mip maximizing DB ; display DB.l, z.l, L.l, lambda_eff.l ;