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

2.1 実行形式の作成

 まずはC++SIMPLEのモデルファイルknapsack.smpから実行形式を作成します.ここでは,

\[\begin{array}{@{}ll@{}}
  \mbox{目的関数の係数:} & c=(\begin{matrix}6 & 8 & 4 & 3 & 4\end{matrix}) \\
  \mbox{制約式の係数:}   & a=(\begin{matrix}4 & 2 & 3 & 6 & 7\end{matrix})
\end{array}\]

という5変数のナップサック問題を解きます.以下にコマンドプロンプト上で実行形式を作成する例を示しますが,詳細についてはNuorium Optimizerマニュアルをご参照ください.

//
//   ナップサック問題
//
Set S;
Element i(set = S);
IntegerVariable x(index = i, type = binary); // 整数変数
Parameter c(index = i);
Parameter a(index = i);
Parameter b;
Objective obj(type = maximize);

obj = sum(c[i] * x[i], i);    // 目的関数
sum(a[i] * x[i], i) <= b;     // 制約条件

solve(); // 求解

// 結果のファイル出力
FILE* fout = fopen("result.txt", "w");
if(fout){
  simple_fprintf(fout, "%f\n", obj);
  simple_fprintf(fout, "%d\n", x[i]);
  fclose(fout);
}else{
  fprintf(stderr, "file open error!\n");
}
  • 実行形式の作成
    prompt> mknuopt.bat knapsack.smp

 

 

上に戻る