Tôi đang cố gắng làm một ví dụ cơ bản về tối ưu hóa bằng cách sử dụng loco.Cách tối ưu hóa cơ bản bằng cách sử dụng loco
Tôi có vectơ chi phí chỉ mục tương ứng với giá trị số nguyên của một số vị trí và muốn giảm thiểu tổng chi phí cho một tập con riêng biệt của các vị trí.
Hãy xem nỗ lực của tôi bên dưới, không hoạt động do không có "liên kết" giữa các vị trí đã chọn và chi phí.
(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]))))
này nghe có vẻ như một vấn đề giảm thiểu ba lô. Bạn có thể thực hiện tối đa hóa nhưng không tối đa hóa. Có thể sẽ phải đối phó trực tiếp với thư viện choco để làm điều này. – Mike