(!****************************************************** Mosel Example Problems ====================== file burglar2.mos ````````````````` Knapsack problem (c) 2008 Fair Isaac Corporation author: S. Heipcke, Aug. 2002 *******************************************************!) model "Burglar 2" uses "mmxprs" declarations ITEMS: set of string ! Set of items WTMAX = 102 ! Maximum weight allowed VALUE: array(ITEMS) of real ! Value of items WEIGHT: array(ITEMS) of real ! Weight of items end-declarations initializations from 'burglar.dat' VALUE WEIGHT end-initializations (! alternatively: initializations from 'burglar2.dat' [VALUE, WEIGHT] as 'KNAPSACK' end-initializations !) declarations take: array(ITEMS) of mpvar ! 1 if we take item i; 0 otherwise end-declarations ! Objective: maximize total value MaxVal:= sum(i in ITEMS) VALUE(i)*take(i) ! Weight restriction sum(i in ITEMS) WEIGHT(i)*take(i) <= WTMAX ! All variables are 0/1 forall(i in ITEMS) take(i) is_binary maximize(MaxVal) ! Solve the MIP-problem ! Print out the solution writeln("Solution:\n Objective: ", getobjval) forall(i in ITEMS) writeln(" take(", i, "): ", getsol(take(i))) end-model