MODEL:
! A generic Transportation Model;
! Keywords: Transportation model, Sparse representation;
SETS:
! The SETS section describes the general data structure;
   SUPPLIER : CAPACITY; ! Each supplier has a capacity;
   CUSTOMER : DEMAND;   ! Each customer has a demand;
! A combination of supplier/customer has a 
     cost/unit shipped and amount shipped;
   LINK( SUPPLIER, CUSTOMER): COST, VOLUME;
ENDSETS
! The Model section; ! The objective; MIN = @SUM( LINK( I, J): COST( I, J) * VOLUME( I, J)); ! The capacity constraints. Volume shipped out of I must be <= supply at I; @FOR( SUPPLIER( I): @SUM( LINK( I, J): VOLUME( I, J)) <= CAPACITY( I)); ! The demand constraints. Volume shipped into J must equal demand at J; @FOR( CUSTOMER( J): @SUM( LINK( I, J): VOLUME( I, J)) = DEMAND( J)); ! Here are the data for a specific instance; DATA: SUPPLIER = WH1 WH2 WH3 WH4 WH5 WH6; CAPACITY = 60 55 51 43 41 52; CUSTOMER = V1 V2 V3 V4 V5 V6 V7 V8; DEMAND = 35 37 22 32 41 32 43 38; ! The LINK set is sparse. Not all links exist; LINK, COST= WH1, V1 6 WH1, V2 2 WH1, V5 4 WH1, V6 2 WH2, V1 4 WH2, V3 5 WH2, V4 3 WH2, V8 2 WH3, V2 2 WH3, V3 1 WH3, V7 3 WH3, V8 3 WH4, V4 3 WH4, V6 2 WH4, V8 1 WH5, V1 2 WH5, V2 3 WH5, V6 2 WH6, V3 2 WH6, V4 2 WH6, V6 1 WH6, V7 4 WH6, V8 3 ; ! You can get the data from and store results to a spreadsheet with the @OLE() statement, or a SQL database with the @ODBC() statement; ENDDATA END