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); と同じ
上に戻る
