аЯрЁБс>ўџ ўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџRoot Entryџџџџџџџџ*0_šюЯЛђР№^ ywа4Щ Contentsџџџџџџџџџџџџѕџџџџџџџџџџџџџџџџџџџџџџџџўџџџ§џџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџ ўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџRoot Entryџџџџџџџџ*0_šюЯЛђР№^`аб™БЩРContentsџџџџџџџџџџџџОџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџўџџџ§џџџўџџџ џџџџџџџџџџџџџџџџџџџџўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџ ўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџь‹{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Courier New;}} {\colortbl ;\red0\green175\blue0;\red0\green0\blue0;\red0\green0\blue255;} \viewkind4\uc1\pard\cf1\f0\fs20 ! LINGO3h;\cf2 \par \cf1 ! Product mix example;\cf2 \par \cf1 ! Notice: the SETS section says nothing about the number or names of \par the machines or products. That information is determined \par completely by the supplied data;\cf2 \par \cf3 SETS\cf2 : \par \cf1 ! The simple/primitive sets;\cf2 \par Machine: ProdHoursAvail; \par Product: Profit, Produce; \par \cf1 ! A derived set;\cf2 \par MaPr( Machine, Product): ProdHoursUsed; \par \cf3 ENDSETS\cf2 \par \cf3 DATA\cf2 : \par \cf1 ! Get the names of the machines;\cf2 \par Machine = Roll Cut Weld; \par \cf1 ! Hours available on each machine;\cf2 \par ProdHoursAvail = 28 34 21; \par \cf1 ! Get the names of the products;\cf2 \par Product = P01 P02 P03 P04; \par \cf1 ! Profit contribution of each;\cf2 \par Profit = 26 35 25 37; \par \cf1 ! Hours needed per unit of product;\cf2 \par ProdHoursUsed = 1.7 2.1 1.4 2.4 \cf1 ! Roll;\cf2 \par 1.1 2.5 1.7 2.6 \cf1 ! Cut;\cf2 \par 1.6 1.3 1.6 0.8; \cf1 ! Weld;\cf2 \par \cf3 ENDDATA\cf2 \par \cf1 ! Maximize total profit contribution;\cf2 \par [TotalProfit] \cf3 MAX\cf2 = \cf3 @SUM\cf2 ( Product(i): Profit(i)*Produce(i)); \par \par \cf1 ! For each machine i;\cf2 \par \cf3 @FOR\cf2 ( Machine(j): \par \c ўџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџџь‹{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Courier New;}} {\colortbl ;\red0\green175\blue0;\red0\green0\blue0;\red0\green0\blue255;} \viewkind4\uc1\pard\cf1\f0\fs20 ! LINGO3h;\cf2 \par \cf1 ! Product mix example: This example is explained in Appendix 3.1 of the book;\cf2 \par \cf1 ! Notice: the SETS section says nothing about the number or names of \par the machines or products. That information is determined \par completely by the supplied data;\cf2 \par \cf3 SETS\cf2 : \par \cf1 ! The simple/primitive sets;\cf2 \par Machine: ProdHoursAvail; \par Product: Profit, Produce; \par \cf1 ! A derived set;\cf2 \par MaPr( Machine, Product): ProdHoursUsed; \par \cf3 ENDSETS\cf2 \par \cf3 DATA\cf2 : \par \cf1 ! Get the names of the machines;\cf2 \par Machine = Roll Cut Weld; \par \cf1 ! Hours available on each machine;\cf2 \par ProdHoursAvail = 28 34 21; \par \cf1 ! Get the names of the products;\cf2 \par Product = P01 P02 P03 P04; \par \cf1 ! Profit contribution of each;\cf2 \par Profit = 26 35 25 37; \par \cf1 ! Hours needed per unit of product;\cf2 \par ProdHoursUsed = 1.7 2.1 1.4 2.4 \cf1 ! Roll;\cf2 \par 1.1 2.5 1.7 2.6 \cf1 ! Cut;\cf2 \par 1.6 1.3 1.6 0.8; \cf1 ! Weld;\cf2 \par \cf3 ENDDATA\cf2 \par \cf1 ! Maximize total profit contribution;\cf2 \par [TotalProfit] \cf3 MAX\cf2 = \cf3 @SUM\cf2 ( Product(i): Profit(i)*Produce(i)); \par \par \cf1 ! For each machine i;\cf2 \par \cf3 @FOR\cf2 ( Machine(j): \par \cf1 ! Hours used <= hours available;\cf2 \par [Capacity] \cf3 @SUM\cf2 ( Product(i): ProdHoursUsed(j,i)*Produce(i)) \par <= ProdhoursAvail(j); \par ); \par \par }