locoを使用して最適化の基本例を実行しようとしています。ロコを使用した基本最適化の方法
インデックスのインデックスは、いくつかのスロットの整数値に対応し、スロットの別個のサブセットのコストの合計を最小限に抑えることを望んでいます。
選択したスロットと費用の間に「リンク」がないため、動作しない下記の試行をご覧ください。
(def costs [10 10 20 20 30 30 40 40 10 10])
(let [slot-vars (for [i (range 5)] ($in [:slot i] 1 10))
cost-vars (for [i (range 10)] ($in [:cost i] 10 40))]
(solution
(concat
slot-vars
cost-vars
[($distinct (for [i (range 5)] [:slot i]))]
(for [i (range 5)]
($= [:cost i] (get costs i))))
:minimize (apply $+ (for [i (range 5)] [:slot i]))))
これは、最小化ナップザック問題のように聞こえます。 最大化はできますが、最小化はできません。おそらく、これを行うにはチョコライブラリに直接対処する必要があります。 – Mike