以前、セットから最小数の整数を選択し、合計 >= 定数を持つ方法について尋ねた質問を投稿しました。私のコードは次のとおりでした:
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 つにまとめて同じ機能を維持するためのトリックがあるかどうかを尋ねたいと思います。
編集:合計を最小化するよりも、要素の数を最小化することに関心があります。