model "Transportation" uses "mmxprs" !Xpress Optimiser declarations !Declare parameters and variables SUPPLY= 1..3 !Array for supply points DEMAND= 1..4 !Array for demand points !Supply limit s: array(SUPPLY) of integer !Demand amount d: array(DEMAND) of integer !Unit transportation cost c: array(SUPPLY,DEMAND) of integer !Decision variable: number of units shipped from !supply point i to demand point j x: array(SUPPLY,DEMAND) of mpvar end-declarations !Initialise input parameters s:= [35,50,40] d:= [45,20,30,30] c:= [8,6,10,9, 9,12,13,7, 14,9,16,5] !Objective function TotalCost:= sum(i in SUPPLY, j in DEMAND) c(i,j)*x(i,j) !Constraints forall(i in SUPPLY) sum(j in DEMAND) x(i,j) = s(i) forall(j in DEMAND) sum(i in SUPPLY) x(i,j) = d(j) !Optimisation statement minimise(TotalCost) !Display results writeln("Total cost is $", getobjval, ".") forall(i in SUPPLY, j in DEMAND) writeln("x(", i, ",", j, ") = ", getsol(x(i,j))) end-model