% Knapsack problem % (c) 2007 Tomi Janhunen % % usage: lparse knapsack.lp | smodels 0 #option -cn=10 #option -cc=40 item(1..n). weight c(I)=2*I. % For example weight v(I)=1000/I. % For example % Select which items are in { in(I) } :- item(I). % Derive costs for the items c(I) :- in(I), item(I). broke :- c [ c(I):item(I) ]. % Enforce the limit :- broke. % Derive values for the items v(I) :- in(I), item(I). maximize [ v(I):item(I) ]. #hide item(I). #hide v(I). #hide c(I).