ÐÏࡱá>þÿ   þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ30 -30 0; ! Holding cost/unit unused; ! The diversion matrix. FRAC( PR, PX) = upper limit on fraction of product PX unsatisfied demand that can be satisfied by product PR; FRAC = 1 0 0 ! Upper limits on; .66667 1 0 ! substitution fractions; 1 1 1; ! Sum over col should be >= 1; ! Transfer costs. TC( PR, PX) = cost per unit of satisfying a type PX demand with a type PR product; TC = 0 0 0 ! Cost of transferring; 0 0 0 ! or substituting one; 190 250 0; ! product for another; ! The demand scenarios. 3rd product takes care of unsatisfied demand; DEM = 2100 3300 0 900 2710 0 1890 2256 0 1994 1840 0 2442 2334 0 1509 2654 0; ! Prob of each scenario; ! (They are equally likely); PROB = .166667 .166667 .166667 .166667 .166667 .166667; ENDDATA !--------------------------------------------------; ! Maximize expected profit; MAX = @SUM( SCEN( SC): PROB( SC) * PROF( SC)); ! For each scenario; @FOR( SCEN( SC): ! profit = revenues - acquisition cost - holding cost - transfer costs; ! T( SC, PR, PX) = units of type PX demand satisfied by a type PR product; PROF( SC) = @SUM( PROD( PR): V( PR) * @SUM( PROD( PX): T( SC, PX, PR)) - C( PR) * S( PR) - H( PR) * I( SC, PR) - @SUM( PROD( PX): TC( PR, PX) * T( SC, PR, PX))); @FREE( PROF( SC)); @FOR( PROD( PR): ! Stock = inventory left + sent to various products; S( PR) = I( SC, PR) + @SUM( PROD( PX): T( SC, PR, PX)); ! Directly satisfied + unsatisfied = original demand; T( SC, PR, PR) + U( SC, PR) = DEM( SC, PR); ! Unsatisfied demand must be covered from somewhere; U( SC, PR) = @SUM( PROD( PX)| PX #NE# PR: T( SC, PX, PR)); ! Cannot send too much to any one place; @FOR( PROD( PX)| PX #NE# PR: T( SC, PX, PR) <= FRAC( PX, PR) * U( SC, PR); ! In case users find it confusing to transfer fractional items; @GIN( T( SC, PR, PX)); ); ); ); END MODEL: ! Multi-product Newsboy inventory model, with substitution, diversion, or spill. For each product, calculate the optimal order up to stock level, S; SETS: PROD/ G1 G2 SPOT/: C, V, H, S; PXP( PROD, PROD): FRAC, TC; SCEN/1..6/: PROB, PROF; SXP( SCEN, PROD): DEM, U, I; SXPXP( SCEN, PROD, PROD): T; ENDSETS DATA: ! Cost data for 1 Gig and 2 Gig disk drives. Third product is outside spot market; V = 20 30 0; ! Revenue/unit sold; C = 140 200 0; ! Cost/unit stocked; H = -þÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot EntryÿÿÿÿÿÿÿÿŸ CONTENTSÿÿÿÿÿÿÿÿÿÿÿÿŸ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%&'()*þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ*0_šîÏ»òÀð^ð³ÔQfþÄÀContentsÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿÿþÿÿÿ þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%&'()*+,-./0123456789:þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ = original demand;\cf2 \par T( SC, PR, PR) + U( SC, PR) = DEM( SC, PR); \par \cf3 ! Unsatisfied demand must be covered from somewhere;\cf2 \par U( SC, PR) = \cf1 @SUM\cf2 ( PROD( PX)| PX #NE# PR: \par T( SC, PX, PR)); \par \cf3 ! Cannot send too much to any one place;\cf2 \par \cf1 @FOR\cf2 ( PROD( PX)| PX #NE# PR: \par T( SC, PX, PR) <= FRAC( PX, PR) * U( SC, PR); \par \cf3 ! In case users find it confusing to transfer fractional items;\cf2 \par \cf1 @GIN\cf2 ( T( SC, PR, PX)); \par ); \par ); \par ); \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 \cf3 ! Multi-product Newsboy inventory model, with substitution, diversion, or spill. For each product, calculate the optimal order up to stock level, S;\cf2 \par \cf1 SETS\cf2 : \par PROD/ G1 G2 SPOT/: C, V, H, S; \par PXP( PROD, PROD): FRAC, TC; \par SCEN/1..6/: PROB, PROF; \par SXP( SCEN, PROD): DEM, U, I; \par SXPXP( SCEN, PROD, PROD): T; \par \cf1 ENDSETS\cf2 \par \cf1 DATA\cf2 : \par \cf3 ! Cost data for 1 Gig and 2 Gig disk drives. \par Third product is outside spot market;\cf2 \par V = 20 30 0; \cf3 ! Revenue/unit sold;\cf2 \par C = 140 200 0; \cf3 ! Cost/unit stocked;\cf2 \par H = -30 -30 0; \cf3 ! Holding cost/unit unused;\cf2 \par \cf3 ! The diversion matrix. FRAC( PR, PX) = upper limit on fraction of product PX unsatisfied demand that can be satisfied by product PR;\cf2 \par FRAC = \par 1 0 0 \cf3 ! Upper limits on;\cf2 \par .66667 1 0 \cf3 ! substitution fractions;\cf2 \par 1 1 1; \cf3 ! Sum over col should be >= 1;\cf2 \par \cf3 ! Transfer costs. TC( PR, PX) = cost per unit of satisfying a type PX demand with a type PR product;\cf2 \par TC = \par 0 0 0 \cf3 ! Cost of transferring;\cf2 \par 0 0 0 \cf3 ! or substituting one;\cf2 \par 190 250 0; \cf3 ! product for another;\cf2 \par \cf3 ! The demand scenarios. 3rd product takes care of unsatisfied demand;\cf2 \par DEM = 2100 3300 0 \par 900 2710 0 \par 1890 2256 0 \par 1994 1840 0 \par 2442 2334 0 \par 1509 2654 0; \par \cf3 ! Prob of each scenario;\cf2 \par \cf3 ! (They are equally likely);\cf2 \par PROB = .166667 .166667 .166667 \par .166667 .166667 .166667; \par \cf1 ENDDATA\cf2 \par \cf3 !--------------------------------------------------;\cf2 \par \cf3 ! Maximize expected profit;\cf2 \par \cf1 MAX\cf2 = \cf1 @SUM\cf2 ( SCEN( SC): PROB( SC) * PROF( SC)); \par \cf3 ! For each scenario;\cf2 \par \cf1 @FOR\cf2 ( SCEN( SC): \par \cf3 ! profit = revenues - acquisition cost - holding cost - transfer costs;\cf2 \par \cf3 ! T( SC, PR, PX) = units of type PX demand satisfied by a type PR product;\cf2 \par PROF( SC) = \par \cf1 @SUM\cf2 ( PROD( PR): \par V( PR) * \cf1 @SUM\cf2 ( PROD( PX): T( SC, PX, PR)) \par - C( PR) * S( PR) \par - H( PR) * I( SC, PR) \par - \cf1 @SUM\cf2 ( PROD( PX): \par TC( PR, PX) * T( SC, PR, PX))); \par \cf1 @FREE\cf2 ( PROF( SC)); \par \cf1 @FOR\cf2 ( PROD( PR): \par \cf3 ! Stock = inventory left + sent to various products;\cf2 \par S( PR) = I( SC, PR) + \cf1 @SUM\cf2 ( PROD( PX): \par T( SC, PR, PX)); \par \cf3 ! Directly satisfied + unsatisfied