Ich versuche, ein grundlegendes Beispiel für die Optimierung mit loco zu tun.Wie grundlegende Optimierung mit Hilfe der Lok
Ich habe einen Kostenvektor, dessen Index dem ganzzahligen Wert einer Anzahl von Slots entspricht und möchte die Summe der Kosten für eine bestimmte Teilmenge der Slots minimieren.
Bitte sehen Sie meinen Versuch unten, der nicht funktioniert, weil es keine "Verbindung" zwischen den ausgewählten Steckplätzen und den Kosten gibt. Diese
(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]))))
Dieses wie ein Knapsackproblems minimieren klingt. Sie können ein Maximieren, aber kein Minimieren. Würde sich möglicherweise direkt mit der Schoko-Bibliothek beschäftigen müssen, um dies zu tun. – Mike