最適化ソフトウェアの比較(さいてきかソフトウェアのひかく)では、数理最適化で用いられているソフトウェアについての説明を行う。
あるシステムが、入力の集合を出力値へと変換する場合、そのシステムは関数 f によって記述される。最適化とは、許容される入力値の集合から規則的に値を選択し、関数の値を計算し、その過程で得られた最良値を記録することによって、利用可能な選択肢の中から最適な解を生成・選択するプロセスを指す。この一般的な枠組みは、多くの実世界の問題や理論的な問題をモデル化するのに適用することができる。具体例として、入力がモーターの設計パラメータで、出力が消費電力である。また、入力がビジネス上での選択で、出力がそれらによって得られる利益である。あるいは、入力が物理システムの構成を表し、出力がそのエネルギーが挙げられる。
最適化問題は以下のように表現される。
- 入力: ある集合 A から実数 R の関数 f:AR
- 求めるもの: 任意の xA に対して f(x0)≤f(x) を満たすA の要素 x0(最小化問題)
通常、集合 A はユークリッド空間 Rn の部分集合として定義され、A の要素は等式や不等式で記されている制約を満たさなければならない。最大化問題は、関数に −1 を乗ずることで最小化問題として扱うことができる。
最適化ソフトウェアを利用するには、関数 f を適切なプログラミング言語で定義し、最適化ソフトウェアと連携させる必要がある。最適化ソフトウェアは集合 A の入力値を提供し、関数 f を実装するソフトウェアモジュールが f(x) の計算結果を返す。このように設計することで、ある関数 f に対して複数の最適化ソフトウェアを用いて実行を行ったり、最適化ソフトウェアに対して様々な関数 f に適用といった柔軟な使用用途を達成することができる。
以下の表は、いくつかの特定用途・汎用最適化ソフトウェアライブラリを比較したものである。
脚注
関連項目
- 最適化ソフトウェアのリスト
外部リンク
- OR/MS Today: 2013 Linear Programming Software Survey
- OR/MS Today: 1998 Nonlinear Programming Software Survey




