最適化セミナーのご案内

5.2.5 実行形式の作成と最適化の実行(UNIX)

 さて,サンプルコードuseClassのロードモジュールを作成して実行してみましょう.

prompt% make useClass

とすると,QP.ccknapsack.ccuseClass.ccがコンパイル,リンクされてuseClassが作成されます.引数としてqp312.datQP.smp用のサンプルデータ)を与えてロードモジュールを実行すると,以下のような出力が得られます.

%prompt ./useClass qp312.dat
[List of Data Files]
<reading data_file: qp312.dat>

[Expand Constraints and Objectives]
QP.smp:25:info: 展開中 目的関数 (1/3) name="f"
QP.smp:30:info: 展開中 制約式   (2/3) name=""
QP.smp:31:info: 展開中 制約式   (3/3) name=""

[About Numerical Optimizer]
MSI Numerical Optimizer x.x.x (NLP/LP/IP/SDP module), Copyright (C) 1991 NTT DATA Mathematical Systems Inc.

[Problem and Algorithm]
PROBLEM_NAME                                               QP
NUMBER_OF_VARIABLES                                         2
NUMBER_OF_FUNCTIONS                                         4
PROBLEM_TYPE                                     MINIMIZATION
METHOD                                       TRUST_REGION_IPM

[Progress]
 // (中略)

[Result]
STATUS                                                OPTIMAL
VALUE_OF_OBJECTIVE                                2.318181825
ITERATION_COUNT                                            22
FUNC_EVAL_COUNT                                            26
FACTORIZATION_COUNT                                        37
RESIDUAL                                      5.297266072e-09
ELAPSED_TIME(sec.)                                       0.03
SOLUTION_FILE                                          QP.sol
f=2.31818
x[1]=0.939394
x[2]=0.121212
,[*] = [j]
constr[1]=-0.927273
constr[2]=-0.309091
constr[3]=2
,[*] = [i]
x[  1] =  9.394e-01 x[  2] =  1.212e-01 
x(QP):
[  1]  9.394e-01 [  2]  1.212e-01 
** QP is solved **

[Expand Constraints and Objectives]
knapsack.smp:16:info: 展開中 目的関数 (1/2) name="obj"
knapsack.smp:17:info: 展開中 制約式   (2/2) name=""

[About Numerical Optimizer]
MSI Numerical Optimizer x.x.x (NLP/LP/IP/SDP module), Copyright (C) 1991 NTT DATA Mathematical Systems Inc.

[Problem and Algorithm]
PROBLEM_NAME                                         knapsack
NUMBER_OF_VARIABLES                                        10
(#INTEGER/DISCRETE)                                        10
NUMBER_OF_FUNCTIONS                                         2
PROBLEM_TYPE                                     MAXIMIZATION
METHOD                                                SIMPLEX

[Progress]
 // (中略)

[Result]
STATUS                                                OPTIMAL
VALUE_OF_OBJECTIVE                                        242
SIMPLEX_PIVOT_COUNT                                         0
RESIDUAL                                                    1
ELAPSED_TIME(sec.)                                       0.01
SOLUTION_FILE                                          QP.sol
x(knapsack):
[  1]  1.000e+00 [  2]  0.000e+00 [  3]  0.000e+00 [  4]  0.000e+00 
[  5]  0.000e+00 [  6]  1.000e+00 [  7]  1.000e+00 [  8]  1.000e+00 
[  9]  0.000e+00 [ 10]  1.000e+00 
** knapsack is solved **

 上に挙げた内容はNumerical Optimizerからの求解に関するメッセージです.

System_QP qp;
... .
System_knapsack knap(c,a,b);

として生成された問題について順に求解が行われていることがわかります.問題の変数の数(NUMBER_OF_VARIABLES)や目的関数の値(VALUE_OF_OBJECTVE)を知ることができます.Numerical Optimizerの標準出力の内容についてはNumerical Optimizer/SIMPLEマニュアルをご覧ください.


 

 

上に戻る