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

6.2 目的関数クラスObjective

 wcsp利用時にも目的関数クラスObjectiveを用いますが,引数targetで目標値を指定する必要があります.目的関数がtargetで指定された値を上回っている分(最大化問題の場合は下回っている分)が「ソフト制約としての制約違反量」に加算されます.次の例では,targetに10を設定しています.

Objective f(type = minimize, target = 10);

 targetの初期設定は0で,明示的にtargetを指定しない場合はtarget0であると解釈されます.すなわち,次の二つは同じ意味です.

Objective f(type = minimize, target = 0);
Objective f(type = minimize);

 targetの値は,定数Parameterから設定する事もできます.

Parameter p;
p = 10;
Objective f(type = minimize, target = p);

 targetの値は,求解オプションdefaultObjectiveTargetで指定することもできます.

options.defaultObjectiveTarget = 5;

 Objectiveの引数でのtarget値と,求解オプションdefaultObjectiveTargetの値が競合した場合は,Objectiveの引数の値の方が優先されます.

 目的関数の重みは求解オプションdefaultObjectiveWeightで指定します.次の例では,目的関数の重みに5を指定しています.

options.defaultObjectiveWeight = 5;

 求解オプションdefaultObjectiveWeightの初期値は1です.


 

 

上に戻る