ÐÏࡱá>þÿ  þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Setup times; VT = 1 1; ! Production time per unit; SC = 150 45; ! Setup costs; VC = 7 4; ! Cost per unit to produce; HC = 2 1; ! Holding cost per unit; DEM = 40 60 130 0 100 200 ! Demands; 0 45 50 35 20 35; ENDDATA !------------------------------------; ! The Eppen/Martin model; SETS: PXTXT( PROD, TIME, TIME)| &3 #GE# &2: PCOF, CCOF, X; ENDSETS ! Compute cost and production amounts for various production runs; @FOR( PROD( I): @FOR( TIME( S): PCOF( I, S, S) = DEM( I, S); CCOF( I, S, S) = VC( I) * DEM( I, S); @FOR( TIME( T)| T #GT# S: PCOF( I, S, T) = PCOF( I, S, T - 1) + DEM( I, T); CCOF( I, S, T) = CCOF( I, S, T - 1) + ( VC( I) + HC( I) * ( T - S)) * DEM( I, T); ) ) ); ! The objective; MIN = TCOST; TCOST = @SUM( PXTXT: CCOF * X) + @SUM( PXT( I, S): SC( I) * Y( I, S)); @FOR( PROD( I): ! In period 1, some production run must be started; ! Note, watch out for periods without demand; @SUM( PXTXT( I, S, T) | S #EQ# 1: X( I, S, T)) = 1; @FOR( TIME( K)| K #GT# 1: ! If we ended a run in period K - 1...; @SUM( PXTXT( I, S, T)| T #EQ# K - 1: X( I, S, K - 1)) ! then we must start a run in period k; = @SUM( PXTXT( I, K, T): X( I, K, T)); ); ! Setup forcing; @FOR( TIME( S): Y( I, S) = @SUM( PXTXT( I, S, T) : ( PCOF( I, S, T) #GT# 0) * X( I, S, T)); ! Calc amount made each period; MAKE( I, S) = @SUM( PXTXT( I, S, T): PCOF( I, S, T) * X( I, S, T)) ) ); ! The capacity constraints; @FOR( TIME( S): @SUM( PROD( I): ST( I) * Y( I, S)) + @SUM( PXTXT( I, S, T): VT( I) * PCOF( I, S, T) * X( I, S, T)) <= CAP ); ! Make the Y's integer; @FOR( PXT: @GIN( Y)); END MODEL: ! Multiproduct Capacitated lot sizing; SETS: PROD/1..2/: ! Each product has a ...; ST, ! Setup time; VT, ! Production time per unit; SC, ! Setup cost; VC, ! Production cost per unit; HC; ! Holding cost per unit per period; TIME/1..6/:; PXT( PROD, TIME): ! Each product in each period has...; DEM, ! Demand; MAKE, ! Amount to produce; Y; ! = 1 if anything is produced; ENDSETS DATA: CAP = 200; ! Capacity per period; ST = 0 0; !þÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ! CONTENTSÿÿÿÿÿÿÿÿÿÿÿÿ! ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ*0_šîÏ»òÀð^@4±eþÄ Contentsÿÿÿÿÿÿÿÿÿÿÿÿß ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿÿþÿÿÿ þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%&'()*+,-./01234567þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ended a run in period K - 1...;\cf2 \par \cf1 @SUM\cf2 ( PXTXT( I, S, T)| T #EQ# K - 1: \par X( I, S, K - 1)) \par \cf3 ! then we must start a run in period k;\cf2 \par = \cf1 @SUM\cf2 ( PXTXT( I, K, T): X( I, K, T)); \par ); \par \cf3 ! Setup forcing;\cf2 \par \cf1 @FOR\cf2 ( TIME( S): \par Y( I, S) = \cf1 @SUM\cf2 ( PXTXT( I, S, T) \par : ( PCOF( I, S, T) #GT# 0) * X( I, S, T)); \par \cf3 ! Calc amount made each period;\cf2 \par MAKE( I, S) = \cf1 @SUM\cf2 ( PXTXT( I, S, T): \par PCOF( I, S, T) * X( I, S, T)) \par ) \par ); \par \par \cf3 ! The capacity constraints;\cf2 \par \cf1 @FOR\cf2 ( TIME( S): \par \cf1 @SUM\cf2 ( PROD( I): ST( I) * Y( I, S)) + \par \cf1 @SUM\cf2 ( PXTXT( I, S, T): \par VT( I) * PCOF( I, S, T) * X( I, S, T)) <= CAP \par ); \par \par \cf3 ! Make the Y's integer;\cf2 \par \cf1 @FOR\cf2 ( PXT: \cf1 @GIN\cf2 ( Y)); \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 ! Multiproduct Capacitated lot sizing;\cf2 \par \cf1 SETS\cf2 : \par PROD/1..2/: \cf3 ! Each product has a ...;\cf2 \par ST, \cf3 ! Setup time;\cf2 \par VT, \cf3 ! Production time per unit;\cf2 \par SC, \cf3 ! Setup cost;\cf2 \par VC, \cf3 ! Production cost per unit;\cf2 \par HC; \cf3 ! Holding cost per unit per period;\cf2 \par TIME/1..6/:; \par PXT( PROD, TIME): \par \cf3 ! Each product in each period has...;\cf2 \par DEM, \cf3 ! Demand;\cf2 \par MAKE, \cf3 ! Amount to produce;\cf2 \par Y; \cf3 ! = 1 if anything is produced;\cf2 \par \cf1 ENDSETS\cf2 \par \cf1 DATA\cf2 : \par CAP = 200; \cf3 ! Capacity per period;\cf2 \par ST = 0 0; \cf3 ! Setup times;\cf2 \par VT = 1 1; \cf3 ! Production time per unit;\cf2 \par SC = 150 45; \cf3 ! Setup costs;\cf2 \par VC = 7 4; \cf3 ! Cost per unit to produce;\cf2 \par HC = 2 1; \cf3 ! Holding cost per unit;\cf2 \par DEM = 40 60 130 0 100 200 \cf3 ! Demands;\cf2 \par 0 45 50 35 20 35; \par \cf1 ENDDATA\cf2 \par \par \cf3 !------------------------------------;\cf2 \par \cf3 ! The Eppen/Martin model;\cf2 \par \cf1 SETS\cf2 : \par PXTXT( PROD, TIME, TIME)| &3 #GE# &2: \par PCOF, \par CCOF, \par X; \par \cf1 ENDSETS\cf2 \par \cf3 ! Compute cost and production amounts for \par various production runs;\cf2 \par \cf1 @FOR\cf2 ( PROD( I): \par \cf1 @FOR\cf2 ( TIME( S): \par PCOF( I, S, S) = DEM( I, S); \par CCOF( I, S, S) = VC( I) * DEM( I, S); \par \cf1 @FOR\cf2 ( TIME( T)| T #GT# S: \par PCOF( I, S, T) = PCOF( I, S, T - 1) + \par DEM( I, T); \par CCOF( I, S, T) = CCOF( I, S, T - 1) + \par ( VC( I) + HC( I) * ( T - S)) * DEM( I, T); \par ) \par ) \par ); \par \par \cf3 ! The objective;\cf2 \par \cf1 MIN\cf2 = TCOST; \par TCOST = \cf1 @SUM\cf2 ( PXTXT: CCOF * X) + \par \cf1 @SUM\cf2 ( PXT( I, S): SC( I) * Y( I, S)); \par \par \cf1 @FOR\cf2 ( PROD( I): \par \cf3 ! In period 1, some production run must be started;\cf2 \par \cf3 ! Note, watch out for periods without demand;\cf2 \par \cf1 @SUM\cf2 ( PXTXT( I, S, T) | S #EQ# 1: \par X( I, S, T)) = 1; \par \cf1 @FOR\cf2 ( TIME( K)| K #GT# 1: \par \cf3 ! If we