proc optmodel; set supply= {"S1","S2"}; set distr= {"SGD","MYD","IDD","VND","THD"}; set plant= {"SG","MY","ID","VN","TH"}; number Suppliercap {supply}=[2000,2000]; number AnnualDemand {plant}=[ 150 300 150 150 300]; number timeperiods = 6; number matcost = 40; number packcost = 5; number Leg1Trcost {supply,distr}=[ 12 12 14 16 18 14 12 14 18 16] ; number Leg2Trcost {distr,plant}=[ 0 4 4 6 5 3 0 4 4 5 3 4 0 4 6 5 4 6 0 3 5 6 4 3 0]; number Pmin = 1; number Pmax = 5; var Firstlegsupply {supply,distr} >= 0; var Secondlegsupply {distr,plant} >= 0; var open {distr} binary; minimize Total_Cost= sum {i in supply,k in distr} Firstlegsupply[i,k]*(Leg1Trcost[i,k]+matcost) + sum {k in distr,j in plant} Secondlegsupply[k,j]*(Leg2Trcost[k,j]+matcost+packcost); con MaxS {i in supply} : sum {k in distr} Firstlegsupply[i,k] <= Suppliercap[i]; con MinD {j in plant} : sum {k in distr} Secondlegsupply[k,j]*timeperiods = AnnualDemand[j]; con NoStock {k in distr} : sum {i in supply} Firstlegsupply[i,k] = sum {j in plant} Secondlegsupply[k,j]; con linkingcons{k in distr,j in plant}: Secondlegsupply[k,j]-2000*open[k]<=0; con mindistr : sum{k in distr}open[k]>= Pmin; con maxdistr : sum{k in distr}open[k]<= Pmax; con minqty{k in distr,j in plant}: Secondlegsupply[k,j]<=25; con maxqty{k in distr,j in plant}: Secondlegsupply[k,j]<=100; solve; print Total_Cost; print {k in distr} (sum {i in supply} Firstlegsupply[i,k]); print Secondlegsupply; quit; The above is my code which will output Total cost, and flows during 2 legs of material supply. In addition to this i want to seperately print Transportation cost during both legs for the optimized quantities.i.e. 1. sum {i in supply,k in distr} Firstlegsupply[i,k]*Leg1Trcost[i,k]; 2. sum {k in distr,j in plant} Secondlegsupply[k,j]*Leg2Trcost[k,j]; Could you kindly advise on how to write code for this. Do i need to define additional variables and assign this equation. As you can see this is portion of objective function. And i want the function to calculate the value based on optimised values for FirstLegsupply and Secondlegsupply.
... View more