最適化セミナーのご案内

5.2 目的関数クラスObjective

 目的関数はObjectiveというクラスで表現されます.目的関数自身の定義と,目的関数の構造の定義は別々に行う必要があります.例えば$2x + 3y$という目的関数(最小化)を定義したい場合,次のように記述します.

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=maximizeを指定する必要があります.これはそれぞれ扱う数理計画問題が最小化問題,最大化問題であることを意味します.このtype=を省略した場合,自動的に最小化問題であると認識します.

 目的関数に添字をつける事はできません.例えば,以下の記述は誤りです.

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); と同じ

 

 

上に戻る