ÐÏࡱá>þÿ  þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿa plant.; SUPLINK( PRODUCT, PLANT): S; ! Each customer is served by one DC, indicated by Y.; YLINK( DISTCTR, CUSTOMER): Y; ! C= Cost/ton of a product from a plant to a DC, X= tons shipped.; CLINK( PRODUCT, PLANT, DISTCTR): C, X; ! G= Cost/ton of a product from a DC to a customer.; GLINK( PRODUCT, DISTCTR, CUSTOMER): G; ENDSETS DATA: ! Plant Capacities; S = 80, 40, 75, 20, 60, 75; ! Shipping costs, plant to DC; C = 1, 3, 3, 5, ! Product A; 4, 4.5, 1.5, 3.8, 2, 3.3, 2.2, 3.2, 1, 2, 2, 5, ! Product B; 4, 4.6, 1.3, 3.5, 1.8, 3, 2, 3.5; ! DC fixed costs; F = 100, 150, 160, 139; ! Shipping costs, DC to customer; G = 5, 5, 3, 2, 4, ! Product A; 5.1, 4.9, 3.3, 2.5, 2.7, 3.5, 2, 1.9, 4, 4.3, 1, 1.8, 4.9, 4.8, 2, 5, 4.9, 3.3, 2.5, 4.1, ! Product B; 5, 4.8, 3, 2.2, 2.5, 3.2, 2, 1.7, 3.5, 4, 1.5, 2, 5, 5, 2.3; ! Customer Demands; D = 25, 30, 50, 15, 35, 25, 8, 0, 30, 30; ENDDATA !--------------------------------------------------; ! Objective function minimizes costs.; [OBJ] MIN = SHIPDC + SHIPCUST + FXCOST; SHIPDC = @SUM( CLINK: C * X); SHIPCUST = @SUM( GLINK( I, K, L): G( I, K, L) * D( I, L) * Y( K, L)); FXCOST = @SUM( DISTCTR: F * Z); ! Supply Constraints; @FOR( PRODUCT( I): @FOR( PLANT( J): @SUM( DISTCTR( K): X( I, J, K)) <= S( I, J)) ); ! DC balance constraints; @FOR( PRODUCT( I): @FOR( DISTCTR( K): @SUM( PLANT( J): X( I, J, K)) = @SUM( CUSTOMER( L): D( I, L)* Y( K, L))) ); ! Demand; @FOR( CUSTOMER( L): @SUM( DISTCTR( K): Y( K, L)) = 1 ); ! Force DC K open if it serves customer L; @FOR( CUSTOMER( L): @FOR( DISTCTR( K): Y( K, L) <= Z( K)) ); ! Y binary; @FOR( DISTCTR( K): @FOR( CUSTOMER( L): @BIN( Y( K,L))) ); END MODEL: ! MULLDC; ! Multilevel DC location model, based on Geoffrion/Graves, Man. Sci., Jan., 1974; ! Original LINGO model by Kamaryn Tanner; SETS: ! Two products; PRODUCT/ A, B/; ! Three plants; PLANT/ P1, P2, P3/; ! Each DC has an associated fixed cost, F, and an "open" indicator, Z.; DISTCTR/ DC1, DC2, DC3, DC4/: F, Z; ! Five customers; CUSTOMER/ C1, C2, C3, C4, C5/; ! D = Demand for a product by a customer.; DEMLINK( PRODUCT, CUSTOMER): D; ! S = Capacity for a product at þÿÿÿýÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ‰ CONTENTSÿÿÿÿÿÿÿÿÿÿÿÿ‰ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%&þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRoot Entryÿÿÿÿÿÿÿÿ*0_šîÏ»òÀð^@|Ù­eþÄ@Contentsÿÿÿÿÿÿÿÿÿÿÿÿ)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿýÿÿÿþÿÿÿ þÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ  !"#$%&'()*+,-./012345678þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿUST = \par \cf1 @SUM\cf2 ( GLINK( I, K, L): \par G( I, K, L) * D( I, L) * Y( K, L)); \par FXCOST = \cf1 @SUM\cf2 ( DISTCTR: F * Z); \par \par \cf3 ! Supply Constraints;\cf2 \par \cf1 @FOR\cf2 ( PRODUCT( I): \par \cf1 @FOR\cf2 ( PLANT( J): \par \cf1 @SUM\cf2 ( DISTCTR( K): X( I, J, K)) <= S( I, J)) \par ); \par \par \cf3 ! DC balance constraints;\cf2 \par \cf1 @FOR\cf2 ( PRODUCT( I): \par \cf1 @FOR\cf2 ( DISTCTR( K): \par \cf1 @SUM\cf2 ( PLANT( J): X( I, J, K)) = \par \cf1 @SUM\cf2 ( CUSTOMER( L): D( I, L)* Y( K, L))) \par ); \par \par \cf3 ! Demand;\cf2 \par \cf1 @FOR\cf2 ( CUSTOMER( L): \par \cf1 @SUM\cf2 ( DISTCTR( K): Y( K, L)) = 1 \par ); \par \par \cf3 ! Force DC K open if it serves customer L;\cf2 \par \cf1 @FOR\cf2 ( CUSTOMER( L): \par \cf1 @FOR\cf2 ( DISTCTR( K): Y( K, L) <= Z( K)) \par ); \par \par \cf3 ! Y binary;\cf2 \par \cf1 @FOR\cf2 ( DISTCTR( K): \par \cf1 @FOR\cf2 ( CUSTOMER( L): \cf1 @BIN\cf2 ( Y( K,L))) \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 ! MULLDC;\cf2 \par \cf3 ! Multilevel DC location model, based on \par Geoffrion/Graves, Man. Sci., Jan., 1974;\cf2 \par \cf3 ! Original LINGO model by Kamaryn Tanner;\cf2 \par \cf1 SETS\cf2 : \par \cf3 ! Two products;\cf2 \par PRODUCT/ A, B/; \par \cf3 ! Three plants;\cf2 \par PLANT/ P1, P2, P3/; \par \cf3 ! Each DC has an associated fixed cost, F, \par and an "open" indicator, Z.;\cf2 \par DISTCTR/ DC1, DC2, DC3, DC4/: F, Z; \par \cf3 ! Five customers;\cf2 \par CUSTOMER/ C1, C2, C3, C4, C5/; \par \cf3 ! D = Demand for a product by a customer.;\cf2 \par DEMLINK( PRODUCT, CUSTOMER): D; \par \cf3 ! S = Capacity for a product at a plant.;\cf2 \par SUPLINK( PRODUCT, PLANT): S; \par \cf3 ! Each customer is served by one DC, \par indicated by Y.;\cf2 \par YLINK( DISTCTR, CUSTOMER): Y; \par \cf3 ! C= Cost/ton of a product from a plant to a DC, \par X= tons shipped.;\cf2 \par CLINK( PRODUCT, PLANT, DISTCTR): C, X; \par \cf3 ! G= Cost/ton of a product from a DC to a customer.;\cf2 \par GLINK( PRODUCT, DISTCTR, CUSTOMER): G; \par \cf1 ENDSETS\cf2 \par \cf1 DATA\cf2 : \par \cf3 ! Plant Capacities;\cf2 \par S = 80, 40, 75, \par 20, 60, 75; \par \cf3 ! Shipping costs, plant to DC;\cf2 \par C = 1, 3, 3, 5, \cf3 ! Product A;\cf2 \par 4, 4.5, 1.5, 3.8, \par 2, 3.3, 2.2, 3.2, \par 1, 2, 2, 5, \cf3 ! Product B;\cf2 \par 4, 4.6, 1.3, 3.5, \par 1.8, 3, 2, 3.5; \par \cf3 ! DC fixed costs;\cf2 \par F = 100, 150, 160, 139; \par \cf3 ! Shipping costs, DC to customer;\cf2 \par G = 5, 5, 3, 2, 4, \cf3 ! Product A;\cf2 \par 5.1, 4.9, 3.3, 2.5, 2.7, \par 3.5, 2, 1.9, 4, 4.3, \par 1, 1.8, 4.9, 4.8, 2, \par 5, 4.9, 3.3, 2.5, 4.1, \cf3 ! Product B;\cf2 \par 5, 4.8, 3, 2.2, 2.5, \par 3.2, 2, 1.7, 3.5, 4, \par 1.5, 2, 5, 5, 2.3; \par \cf3 ! Customer Demands;\cf2 \par D = 25, 30, 50, 15, 35, \par 25, 8, 0, 30, 30; \par \cf1 ENDDATA\cf2 \par \cf3 !--------------------------------------------------;\cf2 \par \cf3 ! Objective function minimizes costs.;\cf2 \par [OBJ] \cf1 MIN\cf2 = SHIPDC + SHIPCUST + FXCOST; \par SHIPDC = \cf1 @SUM\cf2 ( CLINK: C * X); \par SHIPC