| PARALLEL *
 *
 * MINLP MODEL FOR CYCLIC MULTIPRODUCT
                        SCHEDULING ON
 * CONTINUOUS PARALLEL LINES
 *
 * N. Sahinidis and I. E. Grossmann
 *
 * Department of Chemical Engineering,
                        Carnegie Mellon University
 * Pittsburgh, PA 15213, U.S.A.
 *
 * Ref: Computers chem. Engng. Vol. 15,
                        No. 2, pp. 85-103, 1991.
 
 
 
 $TITLE MINLP MODEL FOR CYCLIC
                        MULTIPRODUCT SCHEDULING ON CONTINUOUS
                        PARALLEL LINES
 
 
 SET I PRODUCTS /
 A,
 B,
 C,
 D,
 F/
 L LINES /1*1/
 T TIME PERIODS /1*5/
 
 PARAMETER YR OPERATING TIME (hr per yr);
 YR = 8280;
 
 PARAMETER TD TOTAL DEMAND (Klb per yr);
 TD = 8000;
 
 PARAMETER DEPERC(I) DEMAND RATES
                        (percentage) /
 A 50.00
 B 20.00
 C 15.00
 D 15.00
 /;
 
 PARAMETER R(I,L) PRODUCTION RATES (Klb
                        per day);
 R('A', '1') = 32;
 R('B', '1') = 25;
 R('C', '1') = 30;
 R('D', '1') = 30;
 
 PARAMETER RT(I,J) TRANSITION TIME (hr);
 RT('A', 'A') = 0.00;
 RT('A', 'B') = 2.00;
 RT('A', 'C') = 6.00;
 RT('A', 'D') = 5.00;
 RT('B', 'A') = 2.00;
 RT('B', 'B') = 0.00;
 RT('B', 'C') = 3.00;
 RT('B', 'D') = 2.00;
 RT('C', 'A') = 6.00;
 RT('C', 'B') = 3.00;
 RT('C', 'C') = 0.00;
 RT('C', 'D') = 2.00;
 RT('D', 'A') = 5.00;
 RT('D', 'B') = 2.00;
 RT('D', 'C') = 2.00;
 RT('D', 'D') = 0.00;
 
 PARAMETER PC(I) PRODUCTION COST ($ per
                        Klb) /
 A 0.76
 B 0.75
 C 0.77
 D 0.75
 /;
 
 PARAMETER H INVENTORY HOLDING COST ($ per
                        Klb-hr);
 H = 2.00;
 
 PARAMETER DELTA1 PROFIT BOOST FOR
                        AVAILABLE CAPACITY ($ per Klb);
 DELTA1 = 2500.00;
 
 PARAMETER DELTA3 DEAD INVENTORY COST ($
                        per Klb-hr);
 DELTA3 = 0.00;
 
 PARAMETER HS FRACTION OF SAFETY
                        INVENTORY;
 HS = 1.00;
 
 PARAMETER AL(L) UNDERESTIMATION OF
                        TRANSITION COST ($ per Klb);
 AL('1') = 1707.00;
 
 * INITIALIZATION
 
 PARAMETER HLLEVEL(L) CYCLE TIME (hr);
 HLLEVEL('1') = 4140.00;
 
 PARAMETER HLLOW(L) LOWER BOUND CYCLE TIME
                        (hr);
 HLLOW('1') = 1;
 
 PARAMETER HLUP(L) UPPER BOUND CYCLE TIME
                        (hr);
 HLUP('1') = 690.00;
 
 * SEQUENCE OPTIMIZATION
 
 SCALAR SEQUENCE optimize sequence /1/;
 
 * INITIAL ASSIGNMENT
 
 BINARY VARIABLE X(L,T,I);
 X.L('1', '1', 'A') = 1;
 X.L('1', '2', 'B') = 1;
 X.L('1', '3', 'C') = 1;
 X.L('1', '4', 'D') = 1;
 X.L('1', '5', 'F') = 1;
 
 * FORBIDDEN ASSIGNMENTS
 
 PARAMETER XFOR(I,L,T) FORBIDDEN
                        ASSIGNMENTS (REPORT);
 XFOR(I,L,T) = 0;
 
 * SEQUENCING CONSTRAINTS
 
 PARAMETER SEQCO(I,J);
 SEQCO(I,J) = 0;
 
 SCALAR SEQCONS /0/;
 
 PARAMETER EP TOLERANCE FOR CALCULATIONS;
 EP = 0.0000100000;
 
 PARAMETER TOL PERCENTAGE GAP BETWEEN
                        LOWER AND UPPER BOUNDS;
 TOL = 5.00/100;
 |