-, , , , , 5 . loco , , knapsack - . , , . 1 , 5, 5 10 . [:include i], , (1 true 0 false). : include .
(def costs [10 10 20 20 30 30 40 40 10 10])
(def weights (repeat 10 1))
(def include-vars (for [i (range 10)] [:include i]))
(def include-constraints (for [i (range 10)] ($in [:include i] 0 1)))
(def model
(concat
include-constraints
[($knapsack weights costs include-vars 5 :total)
($in :total 0 (apply + costs))]))
(solution model :minimize :total)
:
{[:include 4] 0, [:include 6] 0, [:include 9] 1, [:include 1] 1, [:include 3] 0, [:include 8] 1, :total 60, [:include 0] 1, [:include 7] 0, [:include 2] 1, [:include 5] 0}