NAGは最適化を行うためのサブルーチン群をライブラリ(NAG数値計算ライブラリ)として提供しています。NAG数値計算ライブラリはC/C++, Java, Fortran, Python 等、様々な言語から利用可能な汎用的なライブラリです。
この中でも最も使用頻度の高いものが 「最適化」に関するサブルーチン群です。 NAGの専門家は最適化ルーチンの開発とテストに長い期間をかけ、 その結果の信頼性とスピードを実現しています。
局所的最適化(local optimization) v.s. 大域的最適化(global optimization)
最適化の計算においては局所的な最小値(もしくは最大値)を求めても、それが可能な範囲内においての最小の値とは限りません。 例えば F(x)が x sin(x) であった場合に [0, 4pi] の範囲で最適化を行うとします。この場合 x = 1.5piで局所最小値が見つかります。しかしより小さな値が x = 3.5pi で見つかります。
もしユーザが局所的な最小値で満足できない場合には大域的な最小値を見つける必要がありますが、これにはより多くの計算量が必要となります。 NAG数値計算ライブラリには局所的な最適化を行うサブルーチンだけでなく、大域的な最適化を効率良く行う「大域的最適化」サブルーチンも含まれます。
関連情報
- 実用的なポートフォリオ最適化の記事(日本語)
- 製紙機器の最適化の記事(英語、PDF)
- パラメータ推定における最適化(英語、PDF)
- お客様事例:発電プラントの最適化
- 大域的最適化
- 整数計画問題
- NAGが提供する最適化