MODEL:
! Choosing which processes and plants to use to meet steel demand,
  The Mexican Steel problem;
! Keywords: Inventory, Production,  Product management, Sales, Steel industry;
! Ref: Kendrick, D, Meeraus, A, and Alatorre, J, 
    The Planning of Investment Programs in the Steel Industry. 
    The Johns Hopkins University Press, Baltimore and London, 1984; 
SETS:
   ! Steel plants;
  PLANT :
   RD2, MUE;
   ! Markets;
  MARKET : DD, RD3, MUV;
   ! Final products;
  CF : PV, PE, EB;
   ! Intermediate products;
  CI;
   ! Raw materials;
  CR: PD;
   ! Processes;
  PR ;
   ! Productive units;
  UNIT ;
   ! ;
  CRXP( CR, PR) : A1;
  CIXP( CI, PR) : A2;
  CFXP( CF, PR) : A3; 
  UXP( UNIT, PR) : B;
  UXI( UNIT, PLANT) : K; 
  PXM( PLANT, MARKET) : RD1, MUF;
  PXI( PR, PLANT) : Z; 
  CFXPXM( CF, PLANT, MARKET) : X;
  CRXI( CR, PLANT) : U;
  CFXI( CF, PLANT) : E;
  CFXM( CF, MARKET) : D, V;
 ENDSETS
! Variables: z(p,i) = tons for process p, plant i, x(c,i,j) = tons shipped of final product c, plant i, market j, u(c,i) = tons purchased of raw matl c, plant i, v(c,j) = tons imported of matl c, market j, e(c,i) = tons exported matl c, plant i, phi = US$ total cost, phipsi = US$ of raw material cost, philam = US$ of transport cost, phipi = US$ of import cost, phieps = US$ of export revenue ; ! Demand equations; @FOR( CFXM( C, J): D( C, J) = DMDBASE * ( 1 + DMDREQU/ 100) * DD( J)/ 100); ! Compute Transport rates, final products; @FOR( PXM( I, J)| RD1( I, J) #GT# 0: MUF( I, J) = TRBASE + RRDR * RD1( I, J)); @FOR( PXM( I, J)| RD1( I, J) #LE# 0: MUF( I, J) = 0); ! Compute Transport rates, exports; @FOR( PLANT( I)| RD2( I) #GT# 0: MUE( I) = TRBASE + RRDR * RD2( I)); @FOR( PLANT( I)| RD2( I) #LE# 0: MUE( I) = 0); ! Compute Transport rates, imports; @FOR( MARKET( J)| RD3( J) #GT# 0: MUV( J) = TRBASE + RRDR * RD3( J)); @FOR( MARKET( J)| RD3( J) #LE# 0: MUV( J) = 0); ! For each plant I1; @FOR( PLANT( I1): ! Sources >= uses, final products; @FOR( CF( CF1): [MBF] @SUM( PR( P1): A3( CF1, P1) * Z( P1, I1)) >= @SUM( MARKET( J1): X( CF1, I1, J1)) + E( CF1, I1)); ! Intermediate products; @FOR( CI( CI1): [MBI] @SUM( PR( P1): A2( CI1, P1) * Z( P1, I1)) >= 0); ! Raw materials, material balance; @FOR( CR( CR1): [MBR] @SUM( PR( P1): A1( CR1, P1) * Z( P1, I1)) + U( CR1, I1) >= 0); ! Capacity of each productive unit M1; @FOR( UNIT( M1): [CC] @SUM( PR( P1): B( M1, P1) * Z( P1, I1)) <= K( M1, I1)); ); ! For each final product CF1; @FOR( CF( CF1): ! Demand requirements for each market J1; @FOR( MARKET( J1): [MR] @SUM( PLANT( I1): X( CF1, I1, J1)) + V( CF1, J1) >= D( CF1, J1)); ! Upper limit on exports ; [ME] @SUM( PLANT( I1): E( CF1, I1)) <= EB( CF1); ); ! Components of objective; PHIPSI = @SUM( CR( CR1): @SUM( PLANT( I1): PD(CR1) * U(CR1, I1))); ! RM cost; PHILAM = @SUM( CF( CF1): @SUM( PLANT(I1): @SUM( MARKET(J1):MUF(I1,J1)* X( CF1, I1, J1))) + @SUM( MARKET( J1): MUV( J1) * V( CF1, J1)) + @SUM( PLANT( I1): MUE( I1) * E( CF1, I1))); ! Transport cost; PHIPI = @SUM( CFXM( CF1, I1): PV( CF1) * V( CF1, I1)); ! Import cost; PHIEPS = @SUM( CFXP( CF1, I1): PE( CF1) * E( CF1, I1)); ! Export revenue; [OBJROW] MIN = PHIPSI + PHILAM + PHIPI - PHIEPS; DATA: DMDBASE = 5.209; ! Base total demand; DMDREQU = 40; ! Raw steel equivalence; TRBASE = 2.48; ! Transport base rate; RRDR = 0.0084; ! Rail rate per distance; ! Plants available to us; PLANT = AHMSA FUNDIDA SICARTSA HYLSA HYLSAP; MARKET = MEXICO MONTE GUADA; ! Markets where we can sell stuff; ! Final commodities/productss; CF = STEEL; ! Intermediate products; CI = SPONGE PIGIRON; ! Raw materials; CR = PELLETS COKE NATGAS ELECTRIC SCRAP; ! Processes; PR = PIGIRON1 SPONGE1 STEELOH STEELEL STEELBOF; ! Productive units; UNIT = BLASTFUR OPENHEAR BOF DIRECT ELECARC; ! For each material and process; A1= -1.58, -1.38, 0, 0, 0, -0.63, 0, 0, 0, 0, 0, -0.57, 0, 0, 0, 0, 0, 0, -0.58, 0, 0, 0, -0.33, 0, -0.12; ! For each intermediate product and process; A2= 1, 0, -0.77, 0, -0.95, 0, 1, 0, -1.09, 0; ! For each final product and process; A3= 0, 0, 1, 1, 1; ! For each production unit and process; B = 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0; ! For each unit and plant; K = 3.25, 1.40, 1.10, 0, 0, 1.50, 0.85, 0, 0, 0, 2.07, 1.50, 1.30, 0, 0, 0, 0, 0, 0.98, 1, 0, 0, 0, 1.13, 0.56; ! For each plant and market; RD1= 1204 218 1125 1017 0 1030 819 1305 704 1017 0 1030 185 1085 760; ! For each plant; RD2 = 739, 521, 0, 521, 315; ! For each market; RD3 = 428, 521, 300; ! For each raw material; PD = 18.7, 52.17, 14, 24, 105; ! For each final product; PV = 150; PE = 140; EB = 1; ! For each market; DD = 55, 30, 15; ENDDATA END