数理最適化セミナーのご案内

6.3.4 求解オプションdefaultConstraintWeight

 求解オプションdefaultConstraintWeightを用いると,モデルファイルで出現する制約式全てに一律に重みを設定できます.次の例では,一律に重み12のソフト制約を指定しています.

sum(a[i]*x[i], i) == 3;    // 重み12のソフト制約となる
options.defaultConstraintWeight = 12;
sum(b[i] * x[i], i) <= 20;   // 重み12のソフト制約となる
sum(c[i] * x[i], i) <= 100;  // 重み12のソフト制約となる
sum(d[i] * x[i], i) >= 15;   // 重み12のソフト制約となる

 defaultConstraintWeightに0を設定すると,ハード制約として扱われます.defaultConstraintWeightの初期設定値は0です.

 求解オプションdefaultConstraintWeightConstraint関数(hardConstraint関数,semiHardConstraint関数,softConstraint関数)が競合した場合,後者が優先されます.

sum(a[i] * x[i], i) == 3;   // 重み12のソフト制約となる
options.defaultObjectiveWeight = 12;
sum(b[i] * x[i], i) <= 20;  // 重み12のソフト制約となる
hardConstraint();
sum(c[i] * x[i], i) <= 100; // ハード制約となる
semiHardConstraint();
sum(d[i] * x[i], i) <= 100; // セミハード制約となる
softConstraint(5);
sum(e[i] * x[i], i) >= 15;  // 重み5のソフト制約となる

 

 

上に戻る