トップ > 製品概要 > NUOPT の更新情報 > NUOPT 13 の更新情報

NUOPT V13 の更新情報

NUOPT V13 の新機能等を紹介いたします。

  1. Matrix/Vector クラスの導入
  2. SIMPLE の速度向上
  3. 混合整数計画問題の速度向上
  4. マニュアルの充実
  5. マニュアル参照・検索機能の向上
  6. 外部 CLAPACK のリンク機能

1. Matrix/Vector クラスの導入

モデリング言語 SIMPLE のクラスとして行列・ベクトルを直接記述するための Matrix/Vector クラスを導入します。 標準形の LP やその双対表現をコンパクトに記述、操作することが可能になります。
例題集にも、二次割当問題や MAX-CUT 問題など、行列・ベクトルを利用する例を追加します。

標準形の LP とその双対問題の記述

標準形 LP と双対問題の記述例
Set M, N;
Element m( set = M ), n( set = N );

Matrix A(( m, n ));
Vector b( m ), c( n );

Variable x_var( index = n ), y_var( index = m );
Vector x( n ), y( m );
x[n] = x_var[n]; // 変数 x をベクトルに詰める
y[m] = y_var[m]; // 変数 y をベクトルに詰める

// Primal
Objective f( type = minimize );
f = inprod( c, x );
A*x >= b;
x >= 0;

// Dual
Objective g( type = maximize );
g = inprod( b, y );
trans(A)*y <= c;
y >= 0;

2. SIMPLE の速度向上

モデリング言語 SIMPLE の一部実装の刷新により、大規模な数式の解釈の速度が飛躍的に向上します。以下のテーブルは、大きさ n の集合の要素 5 個を添字として持つパラメータの和の計算時間を V12、V13 で比較したものです。

n (n^5) 8 (32,768) 10 (100,000) 12 (248,832)
V12 2.9 秒 22.3 秒 212.3 秒
V13 0.7 秒 2.2 秒 4.9 秒

3. 混合整数計画問題の速度向上

混合整数線形・二次計画問題における分枝限定法が、V12 での進化に留まらず、さらに改善します。最適化計算の前処理ルーチンの強化により、問題全体で見て速度が向上しています。

4. マニュアルの充実

Excel 連係に関連するマニュアルを一本化致します。以前は「Excel 連係チュートリアル」と「Excel 連係マニュアル」の二種類のマニュアルが存在しましたが、これらを「NUOPT/SIMPLE/Excel 連係マニュアル」として一本化し、解説を充実致します。

また、好評をいただいておりますチュートリアル内の「例題集」部分を独立させ、新たに「NUOPT/SIMPLE 例題集」と致します。新たな数理計画問題の例題として「包絡分析法(DEA) モデル」「巡回セールスマン問題」「ロジスティック回帰モデル」、さらに NUOPT V13 より新たに導入される Vector/Matrix クラスを利用した「最大カット問題」「二次割当問題」を追加いたします。

5. マニュアル参照・検索機能の向上

NUOPT V13 では、各マニュアルの内容をスタートメニューから参照する事が可能になります。用語をキーワード検索する事も可能です。ユーザー様の利便性向上の一助となれば幸いです。

 NUOPT ヘルプ画面

6. 外部 CLAPACK のリンク機能

ユーザー様がお持ちの CLAPACK を NUOPT ライブラリへリンクすることができるようになります。これにより大規模な線形計画問題において内点法を用いる場合の求解速度が速くなる場合があります。
例えば、Intel 社の MKL を使用することで、CPU が Core2 Quad 3GHz(Q9650)で求解時間が 1/3 となった問題がありました(*1)。

(*1)これは結果の一例であり、全ての問題で必ず同程度速度が速くなることを保証できるわけではありません。しかしながら、MKLの場合はスレッド化されるため、Many Coreの環境では多くの問題でより高パフォーマンスとなることが期待できます。