ÐÏࡱá>þÿ   þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ; V = 120 160;! Selling price at each retail point; P1=10 11; ! Shortage penalty, lost sales, period 1; P2=12 17; ! Shortage penalty, lost sales, period 2; H0 = 4; ! Holding cost per unit in holdback; H1 = 5 6; ! Holding cost at end of period 1; H2 = -18 -23; ! At end of period 2; DEM1 = 90 60 100 210 ! Demands by scenario; 50 102 87 45; DEM2 = 50 60 100 70 45 87; SHIFT= 12 -10 13 19 ! Shift in period 2 demand; -11 14 -8 -15; ! based on period 1 demand; ENDDATA !---------------------------------------------------; ! Count number of scenarios; NS1 = @SIZE( SCENE1); NS2 = @SIZE( SCENE2); MAX = REVENUE - PCOST - SHORT1 - SHORT2 - HOLD0 - HOLD1 - HOLD2; PCOST = @SUM( RXS1( I, K1): C( I) * ( S1( I) + ALLOC( I, K1))/NS1; ); ! Amount ordered = held back + initial allocation; S = HOLDBK + @SUM( RETAILP( I): S1( I)); ! Limits on amount available for second period; @BND( 0, HOLDBK, HBLIM); ! Set Z1 = lost sales in period 1; @FOR( RXS1( I, K1): Z1( I, K1) >= DEM1( I, K1) - S1( I); ); ! Set Z2 = lost sales in period 2; @FOR( RXS1XS2( I, K1, K2): Z2( I, K1, K2) >= DEM2( I, K2) + SHIFT( I, K1) - (S1( I) - DEM1( I, K1) + Z1( I, K1) + ALLOC( I, K1)); ); ! Cannot allocate more than was held back; @FOR( SCENE1( K1): @SUM( RETAILP( I): ALLOC( I, K1)) <= HOLDBK; ); ! Compute various average costs; HOLD0 = H0 * HOLDBK; HOLD1 = @SUM( RXS1( I, K1): H1( I)* ( S1( I) - DEM1( I, K1) + Z1( I, K1)))/ NS1; ! If there is a salvage value, HOLD2 could be < 0; @FREE( HOLD2); HOLD2 = @SUM( RXS1XS2( I, K1, K2): H2( I) * ( S1( I) - DEM1( I, K1) + Z1( I, K1) + ALLOC( I, K1) - DEM2( I, K2) - SHIFT( I, K1) + Z2( I, K1, K2))) /( NS1 * NS2); SHORT1 = @SUM( RXS1( I, K1): P1( I) * Z1( I, K1))/NS1; SHORT2 = @SUM( RXS1XS2( I, K1, K2): P2( I) * Z2( I, K1, K2))/( NS1 * NS2); REVENUE = @SUM( RXS1XS2( I, K1, K2): V( I) * ( DEM1( I, K1) - Z1( I, K1) + DEM2( I, K2) + SHIFT( I, K1) - Z2( I, K1, K2))) /( NS1 * NS2); END MODEL: ! Holdback inventory model. A central facility can holdback some inventory or capacity after the first period to allocate to outlets likely to run out in the second period; SETS: RETAILP/1..2/: C, V, S1, P1, P2, H1, H2; SCENE1/1..4/:; SCENE2/1..3/:; RXS1( RETAILP, SCENE1): DEM1, SHIFT, Z1, ALLOC; RXS2( RETAILP, SCENE2): DEM2; RXS1XS2( RETAILP, SCENE1, SCENE2): Z2; ENDSETS DATA: C = 50 60; ! Cost/unit for each retail point; HBLIM = 80; ! Max available for period 2þÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ CONTENTSÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%&'(þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ*0_šîÏ»òÀð^µNfþÄ Contentsÿÿÿÿÿÿÿÿÿÿÿÿï ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿÿþÿÿÿþÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%&'()*+,-./01234567þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ1) + Z1( I, K1) + ALLOC( I, K1) \par - DEM2( I, K2) - SHIFT( I, K1) + Z2( I, K1, K2))) \par /( NS1 * NS2); \par SHORT1 = \cf1 @SUM\cf2 ( RXS1( I, K1): P1( I) * Z1( I, K1))/NS1; \par SHORT2 = \cf1 @SUM\cf2 ( RXS1XS2( I, K1, K2): \par P2( I) * Z2( I, K1, K2))/( NS1 * NS2); \par REVENUE = \cf1 @SUM\cf2 ( RXS1XS2( I, K1, K2): V( I) * \par ( DEM1( I, K1) - Z1( I, K1) \par + DEM2( I, K2) + SHIFT( I, K1) - Z2( I, K1, K2))) \par /( NS1 * NS2); \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 ! Holdback inventory model. A central facility can holdback some inventory or capacity after the first period to allocate to outlets likely to run out in the second period;\cf2 \par \cf1 SETS\cf2 : \par RETAILP/1..2/: C, V, S1, P1, P2, H1, H2; \par SCENE1/1..4/:; \par SCENE2/1..3/:; \par RXS1( RETAILP, SCENE1): DEM1, SHIFT, Z1, ALLOC; \par RXS2( RETAILP, SCENE2): DEM2; \par RXS1XS2( RETAILP, SCENE1, SCENE2): Z2; \par \cf1 ENDSETS\cf2 \par \cf1 DATA\cf2 : \par C = 50 60; \cf3 ! Cost/unit for each retail point;\cf2 \par HBLIM = 80; \cf3 ! Max available for period 2;\cf2 \par V = 120 160;\cf3 ! Selling price at each retail point;\cf2 \par P1=10 11; \cf3 ! Shortage penalty, lost sales, period 1;\cf2 \par P2=12 17; \cf3 ! Shortage penalty, lost sales, period 2;\cf2 \par H0 = 4; \cf3 ! Holding cost per unit in holdback;\cf2 \par H1 = 5 6; \cf3 ! Holding cost at end of period 1;\cf2 \par H2 = -18 -23; \cf3 ! At end of period 2;\cf2 \par DEM1 = 90 60 100 210 \cf3 ! Demands by scenario;\cf2 \par 50 102 87 45; \par DEM2 = 50 60 100 \par 70 45 87; \par SHIFT= 12 -10 13 19 \cf3 ! Shift in period 2 demand;\cf2 \par -11 14 -8 -15; \cf3 ! based on period 1 demand;\cf2 \par \cf1 ENDDATA\cf2 \par \cf3 !---------------------------------------------------;\cf2 \par \cf3 ! Count number of scenarios;\cf2 \par NS1 = \cf1 @SIZE\cf2 ( SCENE1); \par NS2 = \cf1 @SIZE\cf2 ( SCENE2); \par \cf1 MAX\cf2 = REVENUE - PCOST - SHORT1 - SHORT2 - HOLD0 - HOLD1 - HOLD2; \par PCOST = \cf1 @SUM\cf2 ( RXS1( I, K1): \par C( I) * ( S1( I) + ALLOC( I, K1))/NS1; \par ); \par \cf3 ! Amount ordered = held back + initial allocation;\cf2 \par S = HOLDBK + \cf1 @SUM\cf2 ( RETAILP( I): S1( I)); \par \cf3 ! Limits on amount available for second period;\cf2 \par \cf1 @BND\cf2 ( 0, HOLDBK, HBLIM); \par \cf3 ! Set Z1 = lost sales in period 1;\cf2 \par \cf1 @FOR\cf2 ( RXS1( I, K1): \par Z1( I, K1) >= DEM1( I, K1) - S1( I); \par ); \par \cf3 ! Set Z2 = lost sales in period 2;\cf2 \par \cf1 @FOR\cf2 ( RXS1XS2( I, K1, K2): \par Z2( I, K1, K2) >= DEM2( I, K2) + SHIFT( I, K1) - \par (S1( I) - DEM1( I, K1) + Z1( I, K1) + ALLOC( I, K1)); \par ); \par \cf3 ! Cannot allocate more than was held back;\cf2 \par \cf1 @FOR\cf2 ( SCENE1( K1): \par \cf1 @SUM\cf2 ( RETAILP( I): ALLOC( I, K1)) <= HOLDBK; \par ); \par \cf3 ! Compute various average costs;\cf2 \par HOLD0 = H0 * HOLDBK; \par HOLD1 = \cf1 @SUM\cf2 ( RXS1( I, K1): \par H1( I)* ( S1( I) - DEM1( I, K1) + Z1( I, K1)))/ NS1; \par \cf3 ! If there is a salvage value, HOLD2 could be < 0;\cf2 \par \cf1 @FREE\cf2 ( HOLD2); \par HOLD2 = \cf1 @SUM\cf2 ( RXS1XS2( I, K1, K2): H2( I) * \par ( S1( I) - DEM1( I, K