2.5 式
ここでは,これまでの結果出力(油田運転日数/週,全運転コスト)に加えて,各製品の生産量/週も出力してみます.
生産量/週は一般的に以下のように記述できます.
製品jの生産量/週 |
この式に対応するC++SIMPLEの記述は,以下のようになります.
Expression prod(name = "製品の生産量", index = j); // 式の宣言 prod[j] = sum(prodX[i, j] * x[i], i); // 式の定義
まず,Expression
で式を宣言します.name
, index
の指定は,変数宣言時(Variable
)と同様に,name
で名前を指定し,index
で添字を指定します.prod[j] = ...
で式の内容を定義します.Expression
は,任意の変数を含む式に名前を付けるためのもので,数理最適化問題の変数の数が増加することはありません.
次に生産ノルマの記述を見てみます.
sum(prodX[i, j] * x[i], i) >= norma[j];
左辺は先ほど定義したprod[j]
と全く同じ内容ですので,以下のように左辺をprod[j]
に置き換えることができます.
prod[j] >= norma[j];
次に結果出力部分に以下のようにprod[j]
を追加します.
prod[j].val.print();
これで,製品の生産量/週が出力されるようになりました.生産量の出力結果は,以下のようになります.
製品の生産量[ガス]=24 製品の生産量[重油]=12
上に戻る