【发布时间】:2014-07-04 22:08:16
【问题描述】:
之前,我发布了一个问题,询问如何从集合中选择最少数量的整数,并且总和 >= 一个常数。 我的代码如图所示:
option solver cplex;
set x:= {4, 5, 7, 1};
param c:= 10;
var u{x} binary;
minimize output : sum {i in x} u[i];
subject to constraint: sum {i in x} u[i]*i >= c;
solve;
display u;
我决定添加一个新目标,即最小化总和。 在前面的示例中,cplex 产生 12(7 和 5)。我希望它产生 11(7 和 4)。 为此,我添加了这个目标:
minimize output : sum {i in x} u[i]*i;
很遗憾,我有一个学生版的 AMPL,所以我不能使用 2 个目标。现在我的新代码将解决问题,但我想问是否有解决方法或技巧将 2 个目标合并为 1 个目标,但仍然具有相同的功能。
编辑:我更感兴趣的是尽量减少元素数量,然后尽量减少总和。
【问题讨论】:
-
为了表示您的问题已解决,请接受解决问题的答案。它可以是你自己的答案。
-
谢谢 ALi,我试过了,但出现了一条弹出消息,上面写着“我明天可以接受我自己的答案”。我等到明天才能接受。
标签: mathematical-optimization ampl