/* Dakota furniture problem in Picat. One of the standard examples from Winston OR, e.g. page 140. This Picat model was created by Hakan Kjellerstrand, hakank@gmail.com See also my Picat page: http://www.hakank.org/picat/ */ % import util. import mip. main => go. go => X1 :: 0..1000, % desks X2 :: 0..1000, % table X3 :: 0..1000, % chairs Z #= 60.0*X1 + 30.0*X2 + 20.0*X3, % lumber: 8*X1 + 6*X2+X3 #<= 48, % finishing: 4*X1 + 2*X2 + 1.5*X3 #<= 20, % carpentry: 2*X1 + 1.5*X2 + 0.5*X3 #<= 8, % table_demand: X2 #<= 5.0, solve($[max(Z)], [X1,X2,X3]), println(z=Z), println([X1,X2,X3]), nl.