ÐÏࡱá>þÿ  þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿevel; RXQ( RAWMAT, QUALMES): QLEVEL; !For each combination of quality measure and finished good there are upper and lower limits on quality, and a slack on upper quality to be determined; QXF( QUALMES, FINGOOD): QUP, QLOW, QSLACK; !For each combination of raw material and finished good there is an amount of raw material used to be solved for; RXF( RAWMAT, FINGOOD): USED; ENDSETS DATA: !Raw material availability; AVAIL = 1000, 4000, 5000; !Raw material costs; COST = 7.3, 18.2, 12.5; !Quality parameters of raw materials; QLEVEL = 120, 60, 105, 100, 2.6, 3, 74, 4.1, 12; !Limits on finished goods; MINREQ = 4000, 2000; MAXSELL = 8000, 6000; !Finished goods prices; PRICE = 18.4, 22; !Upper and lower limits on quality for each finished good; QUP = 110, 110, 11, 11, 25, 25; QLOW = 90, 95, 8, 8, 17, 17; ENDDATA !Subject to raw material availability; @FOR( RAWMAT( R): [RMLIM] @SUM( FINGOOD( F): USED( R, F)) <= AVAIL( R); ); @FOR( FINGOOD( F): !Batch size computation; [BATCOMP] BATCH( F) = @SUM( RAWMAT( R): USED( R, F)); !Batch size limits; @BND( MINREQ, BATCH, MAXSELL); !Quality restrictions for each quality measure; @FOR( QUALMES( Q): [QRESUP] @SUM( RAWMAT( R): QLEVEL( R, Q) * USED( R, F)) + QSLACK( Q, F) = QUP( Q, F) * BATCH( F); [QRESDN] QSLACK( Q, F) <= ( QUP( Q, F) - QLOW( Q, F)) * BATCH( F); ); ); ! We want to maximize the profit contribution; [OBJECTIVE] MAX = @SUM( FINGOOD: PRICE * BATCH) - @SUM( RAWMAT( R): COST( R) * @SUM( FINGOOD( F): USED( R, F))); END MODEL: TITLE BLEND; SETS: !Each raw material has an availability and cost/unit; RAWMAT/ BUTANE, CATREF, NAPHTHA/: AVAIL, COST; !Each finished good has a min required, max sellable, selling price, and batch size to be determined; FINGOOD/ REGULAR, PREMIUM/: MINREQ, MAXSELL, PRICE, BATCH; !Here is the set of quality measures; QUALMES/ OCTANE, VAPOR, VOLATILITY/; !For each combo of raw material and quality measure there is a quality lþÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ8 CONTENTSÿÿÿÿÿÿÿÿÿÿÿÿ8 ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ*0_šîÏ»òÀð^IÄeþÄ € Contentsÿÿÿÿÿÿÿÿÿÿÿÿ` ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿÿþÿÿÿ þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%&'()*+,-./012345þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿM\cf2 ( RAWMAT( R): USED( R, F)); \par \par \cf3 !Batch size limits;\cf2 \par \cf1 @BND\cf2 ( MINREQ, BATCH, MAXSELL); \par \par \cf3 !Quality restrictions for each \par quality measure;\cf2 \par \cf1 @FOR\cf2 ( QUALMES( Q): \par \par [QRESUP] \cf1 @SUM\cf2 ( RAWMAT( R): \par QLEVEL( R, Q) * USED( R, F)) \par + QSLACK( Q, F) = QUP( Q, F) * \par BATCH( F); \par \par [QRESDN] QSLACK( Q, F) <= \par ( QUP( Q, F) - QLOW( Q, F)) * \par BATCH( F); \par \par ); \par ); \par \par \cf3 ! We want to maximize the profit contribution;\cf2 \par [OBJECTIVE] \cf1 MAX\cf2 = \par \cf1 @SUM\cf2 ( FINGOOD: PRICE * BATCH) - \par \cf1 @SUM\cf2 ( RAWMAT( R): COST( R) * \par \cf1 @SUM\cf2 ( FINGOOD( F): USED( R, F))); \par \cf1 END\cf2 \par \par } ì‹{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Courier New;}} {\colortbl ;\red0\green0\blue255;\red0\green0\blue0;\red0\green175\blue0;} \viewkind4\uc1\pard\cf1\f0\fs20 MODEL\cf2 : \par \cf1 TITLE\cf2 BLEND; \par \cf1 SETS\cf2 : \par \cf3 !Each raw material has an availability \par and cost/unit;\cf2 \par RAWMAT/ BUTANE, CATREF, NAPHTHA/: AVAIL, COST; \par \par \cf3 !Each finished good has a min required, \par max sellable, selling price, \par and batch size to be determined;\cf2 \par FINGOOD/ REGULAR, PREMIUM/: \par MINREQ, MAXSELL, PRICE, BATCH; \par \par \cf3 !Here is the set of quality measures;\cf2 \par QUALMES/ OCTANE, VAPOR, VOLATILITY/; \par \par \cf3 !For each combo of raw material and \par quality measure there is a quality \par level;\cf2 \par RXQ( RAWMAT, QUALMES): QLEVEL; \par \par \cf3 !For each combination of quality \par measure and finished good there are \par upper and lower limits on quality, \par and a slack on upper quality to be \par determined;\cf2 \par QXF( QUALMES, FINGOOD): \par QUP, QLOW, QSLACK; \par \par \cf3 !For each combination of raw material \par and finished good there is an amount \par of raw material used to be solved for;\cf2 \par RXF( RAWMAT, FINGOOD): USED; \par \cf1 ENDSETS\cf2 \par \par \cf1 DATA\cf2 : \par \cf3 !Raw material availability;\cf2 \par AVAIL = 1000, 4000, 5000; \par \par \cf3 !Raw material costs;\cf2 \par COST = 7.3, 18.2, 12.5; \par \par \cf3 !Quality parameters of raw \par materials;\cf2 \par QLEVEL = 120, 60, 105, \par 100, 2.6, 3, \par 74, 4.1, 12; \par \par \cf3 !Limits on finished goods;\cf2 \par MINREQ = 4000, 2000; \par MAXSELL = 8000, 6000; \par \par \cf3 !Finished goods prices;\cf2 \par PRICE = 18.4, 22; \par \par \cf3 !Upper and lower limits on \par quality for each finished good;\cf2 \par QUP = 110, 110, \par 11, 11, \par 25, 25; \par QLOW = 90, 95, \par 8, 8, \par 17, 17; \par \cf1 ENDDATA\cf2 \par \par \cf3 !Subject to raw material availability;\cf2 \par \cf1 @FOR\cf2 ( RAWMAT( R): \par [RMLIM] \cf1 @SUM\cf2 ( FINGOOD( F): USED( R, F)) \par <= AVAIL( R); \par ); \par \par \cf1 @FOR\cf2 ( FINGOOD( F): \par \par \cf3 !Batch size computation;\cf2 \par [BATCOMP] BATCH( F) = \par \cf1 @SU