The Mexican Steel Problem Model: MEXICO
The following model is a production planning model adapted from the GAMS documentation.
MODEL:
! The Mexican Steel problem;
SETS:
! Steel plants;
PLANT /AHMSA FUNDIDA SICARTSA HYLSA HYLSAP/:
RD2, MUE;
! Markets;
MARKET / MEXICO MONTE GUADA /: DD, RD3, MUV;
! Final products;
CF /STEEL/: PV, PE, EB;
! Intermediate products;
CI / SPONGE PIGIRON/;
! Raw materials;
CR /PELLETS COKE NATGAS ELECTRIC SCRAP/ : PD;
! Processes;
PR /PIGIRON1 SPONGE1 STEELOH STEELEL STEELBOF/;
! Productive units;
UNIT / BLASTFUR OPENHEAR BOF DIRECT ELECARC/;
! ;
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
! Demand equations;
@FOR( CFXM( C, J):
D( C, J) = 5.209 * ( 1 + 40/ 100) * DD( J)/100);
! Transport rate equations;
@FOR( PXM( I, J)| RD1( I, J) #GT# 0:
MUF( I, J) = 2.48 + .0084 * RD1( I, J));
@FOR( PXM( I, J)| RD1( I, J) #LE# 0:
MUF( I, J) = 0);
@FOR( PLANT( I)| RD2( I) #GT# 0:
MUE( I) = 2.48 + .0084 * RD2( I));
@FOR( PLANT( I)| RD2( I) #LE# 0: MUE( I) = 0);
@FOR( MARKET( J)| RD3( J) #GT# 0:
MUV( J) = 2.48 + .0084 * 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;
@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)));
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)));
PHIPI = @SUM( CFXM( CF1, I1):
PV( CF1) * V( CF1, I1));
PHIEPS = @SUM( CFXP( CF1, I1):
PE( CF1) * E( CF1, I1));
[OBJROW] MIN = PHIPSI + PHILAM + PHIPI - PHIEPS;
DATA:
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;
A2= 1, 0, -0.77, 0, -0.95,
0, 1, 0, -1.09, 0;
A3= 0, 0, 1, 1, 1;
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;
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;
RD1= 1204 218 1125
1017 0 1030
819 1305 704
1017 0 1030
185 1085 760;
RD2 = 739, 521, 0, 521, 315;
RD3 = 428, 521, 300;
PD = 18.7, 52.17, 14, 24, 105;
PV = 150;
PE = 140;
EB = 1;
DD = 55, 30, 15;
ENDDATA
END
Model: MEXICO