最適化セミナーのご案内

2.1 実行形式の作成

 まずは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変数のナップサック問題を解きます.以下にコマンドプロンプト上で実行形式を作成する例を示しますが,詳細についてはNumerical Optimizer/SIMPLEマニュアルをご参照ください.

//
//   ナップサック問題
//
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");
}
  • VC++
    prompt> mknuopt.bat knapsack.smp
  • UNIX
    prompt% mknuopt knapsack.smp

 

 

上に戻る