Ранее я публиковал вопрос, в котором спрашивал о том, как выбрать минимальное количество целых чисел из набора и иметь сумму> = константу. Мой код был таким, как показано:
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, поэтому я не могу использовать две цели. Теперь мой новый код решит проблему, но я хочу спросить, есть ли обходной путь или уловка, чтобы объединить две цели в одну, но с той же функциональностью.
РЕДАКТИРОВАТЬ: Меня больше интересует минимизация количества элементов, чем минимизация суммы.