model "Transportation" uses "mmxprs" !Xpress Optimiser parameters DATAFILE= "Transportation-v2.dat" !File with input data end-parameters declarations !Declare parameters and variables SUPPLY: set of string !Array for supply points DEMAND: set of string !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 end-declarations !Initialise input parameters initializations from DATAFILE s d c end-initializations finalize(SUPPLY) finalize(DEMAND) declarations !Declare parameters and variables !Decision variable: number of units shipped from !supply point i to demand point j x: array(SUPPLY,DEMAND) of mpvar end-declarations !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