トップ > 製品概要 > Numerical Optimizer FAQ

Numerical Optimizer FAQ

INDEX
一般的な質問
数理計画法って?
Numerical Optimizerは何をするの?
どこで作られたソフト?
導入実績と適用事例は?
価格とライセンス形態は?
どのようなプラットフォームで動作するの?
(株)NTT データ数理システムはパッケージ販売のみ?
モデル記述とデータについて
モデルとデータって何?
SIMPLEの記述はどんなもの?
新しい言語を覚えるのはちょっと...?
モデルは自分で書くの?(数式はちょっと...)
データはどうやって受け渡しするの?
Numerical Optimizerを使ってアプリケーションを作成することは可能?
数理計画法アルゴリズムについて
Numerical Optimizerが解ける数理計画問題の範囲は?
大域的最適解は求まるの?
アルゴリズムについてはよく知らないのだけど...
どの程度の規模の問題がどのくらいの速度で解けるの?
非線形関数の微係数は与える必要があるの?
扱っている問題には折れ線関数や条件判定が含まれるのだけど...
扱っている問題は式で表現できないのだけど...
その他
Numerical Optimizerの持っているGUI(Ver5以降)の機能は?
SNUOPTとは?

数理計画法アルゴリズムについて

Numerical Optimizerが解ける数理計画問題の範囲は?

以下がNumerical Optimizerが適用可能な数理計画問題の種類とアルゴリズムです。

線形計画問題(目的関数と制約式が線形)

単体法・内点法(高次オーダー法)

二次計画問題(制約式が線形、目的関数が二次式)

有効制約法・内点法(直線探索法)

混合整数線形計画問題(線形計画法の変数が一部整数)

分枝限定法(単体法)

混合整数二次計画問題(二次計画法の変数の一部整数)

分枝限定法(有効制約法)

非線形計画問題(目的関数と制約式がすべて非線形な式)

内点法(信頼領域法)・逐次二次計画法

半正定値計画問題(行列の半正定値性に関する制約を含む)

内点法   <Numerical Optimizer V10 より適用可能>

離散変数モデル(離散変数のみを含む問題)

wcsp(タブー・サーチに基づく制約充足アルゴリズム)

RCPSP(資源制約つきスケジューリング問題)

rcpsp(タブー・サーチに基づくアルゴリズム)

目的関数の微分の情報を利用することが出来ないモデル

DFO(derivative free optimization の手法に基づくアルゴリズム)
< 有償・Numerical Optimizer V11 より適用可能 >
 

単一のプラットフォームでこのように広い範囲の手法をカバーしているのがNumerical Optimizerの特徴です。ただし、汎用パッケージであるため特定の問題に特化したアルゴリズムについては特別仕様による作り込みとなります。また、非線形整数計画問題については、メタヒューリスティクスアルゴリズムである wcsp や 大域的最適化アルゴリズム(有償)が適用できます。なお、wcsp・rcpsp に関して、「タブー・サーチ」は焼きなまし法や遺伝的アルゴリズムなどと同列のメタヒューリスティクスアルゴリズムですが、高い汎用性を備えています。

大域的最適解は求まるの?

一般の非線形計画問題や一部の二次計画問題は局所解の一意性が保証できませんが、その場合通常版のNumerical Optimizerのアルゴリズムは局所解のいずれか一つを求めるというものであるため、大域的な最適解は求まりません。その場合には初期値を振ってみる、あるいは、適当な制約式を追加するなど問題に特化した処理が必要になります。
しかし、Ver.7 以降では有償アドオンである Numerical Optimizer/Global を導入することにより、一般の小規模非線形モデルの大域的最適解を求めることができるようになります。

アルゴリズムについてはよく知らないのだけど...

Numerical Optimizerは数理計画モデルの形からアルゴリズムを自動的に選択する機能を持っていますので、アルゴリズムについて深い知識をもたずとも利用可能です。特別に速度を問題にする場合などは、選択を行う方が有利な場合がありますが、それについては良い選択方法についてマニュアルに記載がございます。

どの程度の規模の問題がどのくらいの速度で解けるの?

WindowsPC(CPUは1G程度)での典型的な例を申し上げます。
線形計画法なら数万変数程度までの問題、二次計画法もマルコビッツモデルなど凸で解の一意性が保証できる場合には、1万変数程度の問題がそれぞれ数分で解くことができます。
非線形計画問題は問題の自由度が非常に高いので一意に申し上げることができませんが、線形制約と非線形制約が半々の問題で1万変数程度の問題ならやはり数分で解くことができます。
混合整数計画問題ですと、整数変数の数が求解時間を支配します。問題の性質に依存するので、一概に論ずることはできませんが、数千変数程度までの問題であれば数分で最適解を求めることができます。
離散変数モデルにつきましては、wcsp により実行可能解を高速に求めることができます。この場合、1万変数程度の問題でも 30 秒程度で実行可能解を得ることができます。

弊社のベンチマークではNumerical Optimizerのスピードと安定性は類似のソフトに比べて最高の水準であることであることが示されています。

非線形関数の微係数は与える必要があるの?

必要ありません。モデリング言語SIMPLEは自動微分機能を持っているので、式の記述のみから、必要な二階微係数までの情報を自動的に計算します。

扱っている問題には折れ線関数や条件判定が含まれるのだけど...

整数変数を導入することによってかなり複雑な折れ線や、条件判定(and/or の組み合わせを含む)を表現することができ、実際に機器の停止、運転を表現するのに利用されています。具体的なノウハウについては資料がございますので、興味のある方は nuopt-info@msi.co.jpまでご連絡ください。また、Numerical Optimizer 無料セミナーにおきましてもノウハウを提供しておりますのでぜひご参加ください。

扱っている問題は式で表現できないのだけど...

回路解析、プラントエンジニアリングなどでは、素子や機器の特性値は式ではなく何らかの言語で書かれたコードとして表現されることが多いようです。そのような場合にNumerical Optimizerを利用するには以下の方法があります。

  • モデリング言語SIMPLEの柔軟性を活かしてそのコードを若干変換してそのままモデルとして利用する方法
  • 関数をC(C++)やFORTRANのサブルーチンとして入力する機能(外部関数入力機能)を利用する方法
  • Numerical Optimizer V11 より導入された有償アドオン Numerical Optimizer/DFO を利用し、コードを実行した得られた値を逐次最適化計算に反映させる方法
上記のうちどの方法が良いかは問題(コード)の複雑さや規模にも依存しますので一意に判断することはできませんが、具体的な問題をお持ちの方は nuopt-info@msi.co.jpまでご連絡ください。

他の