5.2 目的関数クラスObjective
目的関数はObjective
というクラスで表現されます.目的関数自身の定義と,目的関数の構造の定義は別々に行う必要があります.例えばという目的関数(最小化)を定義したい場合,次のように記述します.
Objective f(type = minimize); f = 2 * x + 3 * y;
以下の記述はいずれも誤りです.
Objective 2 * x + 3 * y (type = minimize);
Objective f = 2 * x + 3 * y (type = minimize);
目的関数を定義する際,扱う問題が最小化問題である場合は引数にtype = minimize
を指定するか,type =
を省略します.一方,最大化問題である場合は引数にtype = maximize
を指定します.
Objective f(type = minimize); // 最小化問題 Objective f; // 最小化問題 Objective f(type = maximize); // 最大化問題
目的関数に添字をつける事はできません.例えば,以下の記述は誤りです.
Objective f(index = i, type = minimize); f[i] = 2 * x[i] + 3 * y[i];
Minimize
, Maximize
という糖衣構文もあります.
Minimize f; // Objective f(type = minimize); と同じ Maximize f; // Objective f(type = maximize); と同じ
上に戻る