最適化ソフトウェアの一覧

最適化ソフトウェアの一覧(さいてきかソフトウェアのいちらん)では、数理最適化で扱える最適化問題に対して用いられるソフトウェアの一覧が記載されている。

入力の集合を出力値へと変換する場合に関数 f によって記述されることを考える。最適化とは許容される入力の集合からある規則に従って値を選択し、そのときの関数の値を計算し、その中で得られた最良値を記録することによって、利用可能な選択肢の中から最適な解を生成・選択する過程を指す。多くの実世界の問題や理論的な問題をモデル化において最適化を行うことがができる。具体例としては入力がモーターの設計パラメータで、出力が消費電力である。また、入力がビジネス上での選択で、出力がそれらによって得られる利益の例が挙げられる。

(最小化の)最適化問題では以下のように表される:

  • 入力: ある集合 A から実数 R への関数
  • 出力: 任意の に対して を満たす A の要素 x0

連続最適化において集合 A実数空間 Rn部分集合であり、かつその要素が必ず満たさなければならない(等式・不等式の)制約条件が与えられる場合がある。一方、組合せ最適化において集合 A はバイナリ値、順列、または整数値からなる集合などの離散空間部分集合として与えられる。

最適化ソフトウェアを利用する際、関数 fプログラミング言語によって適切に定義し、コンパイル・実行時に最適化ソフトウェアで f が認識される必要がある。最適化ソフトウェアでは A の入力値を提供し、関数 f が記述しているソフトウェアモジュールによって f(x) の値、あるいは(導関数といった)関数に関する追加の情報を提供する。

このようにして求めたい情報を明確に求めることができる。複数の相異なる最適化ソフトウェアモジュールによって同一の関数 f に対しての出力を比較することや、特定の最適化ソフトウェアにおいて異なる関数 f での解の挙動を確認することが容易に可能である。

以下の表は一般的に知られているライセンス・ビジネスごとに分類された最適化ソフトウェアの一覧である。

無償・オープンソースソフトウェア

[編集]

アプリケーション

[編集]
名称 ライセンス 説明
ADMB英語版 BSD 自動微分を用いた非線形計画法フレームワーク
ASCEND英語版 GPL 化学プロセスモデリング用の数理モデリングツール
CUTEr英語版 GPL 最適化および線形代数ソルバ英語版に対する検証環境
GNU Octave GPL 数値計算に重きが置かれた高水準言語利用可能なソフトウェアパッケージMATLABとの互換性がある。
Scilab CeCILL 高水準数値指向プログラミング言語による数値最適化フレームワークを備えたクロスプラットフォームの数値計算パッケージ

ソフトウェアライブラリ

[編集]
名称 ライセンス 説明
ALGLIB GPL C++、C#による自動微分を用いたデュアルライセンス(GPL/商用)最適化ライブラリ(線形計画法、二次計画法、非線形計画法)。
COIN-OR英語版 EPL 1.0 整数計画法、線形計画法、非線形計画法
Dlib BSL‑1.0英語版 C++による無制約/箱型制約付き非線形/二次最適化ライブラリ
Gekko英語版 MIT Pythonによる機械学習および混合整数・微分代数方程式系の最適化ソフトウェア
GLPK英語版 GPL C言語APIで提供される。GNU Linear Programming Kitの略
HiGHS optimizationソルバ英語版 MIT 線形計画法(LP)、混合整数計画法(MIP)、凸二次計画法(QP)[1]
IPOPT EPL(旧ライセンス:CPL C++ (公式にはFortranC言語での提供)による(勾配を求める必要がある)連続方程式系を解くための大規模非線形最適化ソフトウェア。COIN-ORの一部分の機能として提供[2]
MINUIT英語版(現: MINUIT2) LGPL CERNにより開発された無制約最適化ソフトウェア
OpenMDAO英語版 Apache License Pythonによる複合領域設計最適化英語版フレームワーク。NASAグレンリサーチセンターの主導により開発され、NASAラングレー研究所がサポートを行っている
SCIP英語版 Apache License 混合整数計画法(MIP)および混合整数非線形計画法(MINLP)用ソルバ
SciPy BSD いくつかの最適化問題に対応したPythonによる汎用数値計算パッケージ

プロプライエタリソフトウェア

[編集]
  • AIMMS英語版 – GUI building facilities内の機能として提供される最適化モデリングシステム
  • ALGLIB – C++、C#インターフェースによる制約付き二次・非線形最適化のための(GPL/商用)デュアルライセンスライブラリ
  • Altair HyperStudy英語版実験計画法、複合領域設計最適化の最適化ソフトウェア
  • AMPL英語版 – 大規模な線形、混合整数、非線形最適化に対するモデリング言語
  • ANTIGONE英語版決定論的大域的最適化英語版のMINLPソルバ
  • APMonitor英語版 – MATLAB、Python、Juliaで利用可能な大規模な非線形、混合整数、微分代数方程式系の最適化に対するモデリング言語
  • Artelys Knitro英語版 – 連続、混合整数計画問題に対応した大規模非線形最適化ソフトウェア
  • ASTOS英語版 – AeroSpace Trajectory optimization Softwareの略
  • BARON英語版 – 非線形代数・混合整数非線形計画問題に対する最適化ソフトウェア
  • COMSOL Multiphysics英語版有限要素解析・ソルバおよびマルチフィジックスシミュレーションソフトウェア英語版のクロスプラットフォーム
  • CPLEX英語版 – 線形、凸二次計画問題のような連続・整数変数に対応したソルバ
  • FEATool Multiphysics英語版 – MATLABによるFEA GUIツールボックス
  • FICO Xpress英語版 – 線形、凸二次計画問題のような連続・整数変数に対応したソルバ
  • FortMP英語版 – 線形計画法・凸二次計画法
  • FortSP英語版 – 確率計画法
  • GAMS – 汎用代数モデリングシステム
  • Gurobi Optimizer英語版 – 線形、凸二次計画問題のような連続・整数変数に対応したソルバ
  • HEEDS MDO英語版 – SHERPA、ハイブリッド適応型最適化アルゴリズムを用いた複合領域設計最適化ソフトウェア
  • IMSL Numerical Libraries英語版 – 線形、凸二次、非線形、疎な二次最適化。線形計画問題に対するアルゴリズムの実装ではC、Java、C#、.NET、Fortran、Pythonが使用されている。
  • IOSO英語版 – (自己組織化に基づく非直接的最適化による)多目的、多次元非線形最適化
  • Kimeme英語版 – 多目的最適化・複合領域設計最適化に対するオープンプラットフォーム
  • LINDO英語版 – (線形、双方向、離散最適化といった)線形、整数、非線形、確率計画法あるいは大域的最適化に対するソフトウェアExcelのアドインとしてLINDOによる線形、整数、非線形最適化をサポートしている。
  • LIONソルバ英語版 – 学習およびインテリジェント最適化によるデータマイニング解析、モデリング、リアクティブ型ビジネスインテリジェンスアプローチ統合ソフトウェア
  • modeFRONTIER英語版 – サードパーティ製のエンジニアリングツールとのシームレスな連携を提供し、設計シミュレーションプロセスの自動化と分析的意思決定を支援する多目的および複合領域最適化用統合プラットフォーム
  • Maple – 制約付き/無制約の線形、凸二次、非線形、連続、整数最適化を対応。アドオンにより大域的最適化にも対応する
  • MATLABOptimization Toolbox英語版による線形、整数、凸二次、非線形計画問題を解くプラットフォーム。複数の局所解および微分可能でない最適化問題をモデリングにより最適化あるいは推定する
  • MIDACO英語版進化的計算を用いた単一/多目的最適化のための計量ソフトウェアツール。C/C++、Fortranにより実装され、Excel、VBA、Java、Python、Matlab、Octave、R、C#、Juliaで利用可能\
  • Mathematica – 制約付き/無制約の大規模多変数、線形、凸二次、非線形、連続、整数最適化に対応
  • ModelCenter英語版 – 統合、自動化、設計最適化用のグラフィカル環境
  • MOSEK英語版 – 線形、凸二次、錐、凸非線形、連続、整数計画問題の最適化ツール
  • NAG – 線形、凸二次、非線形、(線形・非線形関数の)最小二乗法、(線形・疎な線形、非線形の)制約あるいは無制約最適化に対応している。連続・整数計画問題の局所あるいは大域的最適解を求めることができる。
  • NMath英語版 – 線形、凸二次、非線形計画問題に対応
  • Octeract Engine英語版決定論的大域的最適化英語版によるMINLPソルバ
  • OptimJ英語版 – Javaベースのモデリング言語。プレミアム版ではMosekやCPLEX英語版ソルバを利用することができる。
  • Optimus platform英語版 – Noesis Solutionsにより開発されたプロセス統合、設計最適化プラットフォーム
  • optiSLang英語版 – CAEベース解析、最適化、ロバスト性評価に対するソフトウェアソリューション
  • OptiY英語版 - 不確実性、信頼性、ロバスト性、感度解析、データマイニング、メタモデリングのための最適化戦略および確率的アルゴリズムを提供する設計環境ツール
  • OptiStruct英語版 – 概念設計サイジング、構造最適化
  • OptQuest英語版 – 離散事象シミュレーションソフトウェアと併せて実装されているシミュレーションベース最適化に対するメタヒューリスティックベースの最適化プラグイン
  • PottersWheel英語版 – 常微分方程式によるパラメータ推定(学術版は無償でMATLAB toolboxにおいて利用可能)
  • pSeven英語版 - DATADVANCE英語版により開発されたエンジニアリングシミュレーション・分析・多分野最適化・データマイニングの自動化のためのソフトウェアプラットフォーム
  • SAS英語版 – SASにより開発された(統計、予測、機械学習、最適化などによる)ビジネスインテリジェンス、顧客インテリジェンス、データ管理、リスク管理などの応用解析に適したソフトウェア
  • SmartDO英語版計算機援用工学(CAE)に特化した大域的な多分野融合最適設計用ソフトウェア。直接大域探索アプローチを実装
  • SNOPT英語版 – 大規模最適化問題
  • The Unscrambler英語版 – 製品製剤、プロセス最適化ソフトウェア
  • TOMLAB英語版MATLABによる大域的最適化、整数計画法、最小二乗法、線型計画法、凸二次計画法、無制約最適化問題に対するソフトウェア。TOMLABはCPLEX英語版SNOPT英語版KNITRO英語版MIDACO英語版に挙げられるソルバに対応している
  • VisSim英語版力学系におけるシミュレーションと最適化に特化した視覚的ブロック図言語
  • WORHP英語版 – 連続非線形最適化に対する大規模スパースソルバ

学術用途のフリーライセンス

[編集]

脚注

[編集]
  1. ^ Hall, Julian (2020-09-21). HiGHS: High-performance open-source software for linear optimization. Edinburgh, United Kingdom: エディンバラ大学. https://co-at-work.zib.de/slides/Montag_21.9/HiGHS%20slides%20%281%29.pdf 2022年2月27日閲覧。 
  2. ^ Projects”. COIN-OR: Computational Infrastructure for Operations Research (2014年10月8日). 2021年3月10日閲覧。

関連項目

[編集]