ホーム
> nAG数理最適化ソリューション
> nAG数理最適化ソルバー
nAG数理最適化ソルバーは、線形計画法(LP)、二次計画法(QP)、非線形計画法(NLP)、二次錐計画問題 (SOCP)、半正定値計画問題(SDP) など、様々な最適化問題に対応する高度なソルバー群です。これらのソルバーは、nAG数値計算ライブラリの一部として提供されており、数十年にわたる研究開発と実績に裏打ちされた信頼性と効率性を誇ります。
nAG数理最適化ソルバーの主な特長:
• 幅広い最適化問題に対応した専用アルゴリズムを多数提供
• 高性能かつ信頼性の高いアルゴリズム
• 大規模問題への対応力
• 使いやすいインターフェース
• 多様なプログラミング言語と環境をサポート(Python、C/C++、Fortran、.NET、Java、MATLABなど)
• 継続的な更新と技術サポート
以下のセクションでは、nAG数理最適化ソルバーが対応する問題クラスと、各問題に対するソルバーの詳細についてご紹介します。
nAGの最適化ソルバーで扱える問題のクラス
nAG ライブラリでは、線形計画、非線形計画、二次計画、二次錐計画、半正定値計画、混合整数計画など、様々な最適化問題を解くための多彩なアルゴリズムを提供しています。
※ 下記の nAG ルーチン名は、Fortran / C / Python の順番で並んでいます。
線形計画問題(Linear Programming, LP) |
密(非スパース) |
有効制約法/主単体法 |
選択肢1 ... e04mff / e04mfc / lp_solve |
選択肢2 ... e04ncf / e04ncc / lsq_lincon_solve |
スパース |
内点法(Interior Point Method, IPM)... e04mtf / e04mtc / handle_solve_lp_ipm |
有効制約法/主単体法 |
推奨(E04 チャプターイントロダクションの セクション 3.3 / セクション 4.3 参照)... e04nqf / e04nqc / qpconvex2_sparse_solve |
代替 ... e04nkf / e04nkc / qpconvex1_sparse_solve |
二次計画問題(Quadratic Programming, QP) |
密(非スパース) |
QP 問題(非凸)、有効制約法 ... e04nff / e04nfc / qp_dense_solve |
凸 QP 問題、有効制約法 ... e04ncf / e04ncc / lsq_lincon_solve |
スパース |
QP 問題(非凸)、内点法(Interior Point Method, IPM)... e04stf / e04stc / handle_solve_ipopt |
凸 QP 問題、有効制約法 |
推奨(E04 チャプターイントロダクションの セクション 3.3 / セクション 4.3 参照)... e04nqf / e04nqc / qpconvex2_sparse_solve |
代替 ... e04nkf / e04nkc / qpconvex1_sparse_solve |
二次錐計画問題 (Second-order Cone Programming, SOCP) |
密(非スパース)または スパース |
内点法(Interior Point Method, IPM)... e04ptf / e04ptc / handle_solve_socp_ipm |
半正定値計画問題(Semidefinite Programming, SDP) |
SDP および双線形行列不等式 SDP(BMI-SDP)、一般化された拡張ラグランジュ法 ... e04svf / e04svc / handle_solve_pennon |
非線形計画問題(Nonlinear Programming, NLP) |
密(非スパース) |
逐次二次計画法(Sequential Quadratic Programming, SQP) |
ダイレクトコミュニケーション |
推奨(E04 チャプターイントロダクションの セクション 3.3 / セクション 4.3 参照)... e04ucf / e04ucc / nlp1_solve |
代替 ... e04wdf / e04wdc / nlp2_solve |
リバースコミュニケーション ... e04uff / e04ufc / nlp1_rcomm |
スパース |
逐次二次計画法(Sequential Quadratic Programming, SQP)... e04srf / e04src / handle_solve_ssqp |
内点法(Interior Point Method, IPM)... e04stf / e04stc / handle_solve_ipopt |
非線形計画問題(Nonlinear Programming, NLP)- Derivative-free Optimization, DFO |
境界制約、モデルベース法 |
ダイレクトコミュニケーション ... e04jdf / e04jdc / handle_solve_dfno |
リバースコミュニケーション ... e04jef / e04jec / handle_solve_dfno_rcomm |
制約なし、ネルダーミード法 ... e04cbf / e04cbc / uncon_simplex |
非線形計画問題(Nonlinear Programming, NLP)- 特殊なケース |
一次元の最適化問題、境界制約 |
2次補間に基づく方法、導関数なし ... e04abf / e04abc / one_var_func |
3次補間に基づく方法 ... e04bbf / e04bbc / one_var_deriv |
制約なし |
前処理付き共役勾配法 ... e04dgf / e04dgc / uncon_conjgrd_comp |
境界制約 |
一次有効制約法(非線形共役勾配法)... e04kff / e04kfc / handle_solve_bounds_foas |
準ニュートン法、導関数なし ... e04jyf / - / bounds_quasi_func_easy |
準ニュートン法、一次導関数 ... e04kyf / e04kbc / bounds_quasi_deriv_easy |
修正ニュートン法、一次導関数 ... e04kdf / - / bounds_mod_deriv_comp |
修正ニュートン法、一次導関数、簡便(引数が少ない)... e04kzf / - / bounds_mod_deriv_easy |
修正ニュートン法、一次導関数と二次導関数 ... e04lbf / e04lbc / bounds_mod_deriv2_comp |
修正ニュートン法、一次導関数と二次導関数、簡便(引数が少ない)... e04lyf / - / bounds_mod_deriv2_easy |
非線形計画問題(Nonlinear Programming, NLP)- 大域的最適化 |
境界制約 |
粒子群最適化法(Particle Swarm Optimization, PSO)... e05saf / e05sac / bnd_pso |
分岐アルゴリズム、Multi-level Coordinate Search ... e05kbf / e05kbc / handle_solve_mcs |
汎用(非線形制約を含む) |
粒子群最適化法(Particle Swarm Optimization, PSO)... e05sbf / e05sbc / nlp_pso |
マルチスタート ... e05ucf / e05ucc / nlp_multistart_sqp |
線形最小二乗問題、線形回帰、データフィッティング |
境界制約、最小二乗問題 ... e04pcf / e04pcc / bnd_lin_lsq |
線形制約、有効制約法 ... e04ncf / e04ncc / lsq_lincon_solve |
データフィッティング |
一般的な損失関数 ... e04gnf / e04gnc / handle_solve_nldf |
非線形最小二乗問題、データフィッティング |
制約なし |
ガウス・ニュートン法と修正ニュートン法を組み合わせた方法 |
導関数なし ... e04fcf / e04fcc / lsq_uncon_mod_func_comp |
導関数なし、簡便(引数が少ない)... e04fyf / - / lsq_uncon_mod_func_easy |
一次導関数 ... e04gdf / - / lsq_uncon_mod_deriv_comp |
一次導関数、簡便(引数が少ない)... e04gzf / - / lsq_uncon_mod_deriv_easy |
一次導関数と二次導関数 ... e04hef / - / lsq_uncon_mod_deriv2_comp |
一次導関数と二次導関数、簡便(引数が少ない)... e04hyf / - / lsq_uncon_mod_deriv2_easy |
ガウス・ニュートン法と準ニュートン法を組み合わせた方法 |
一次導関数 ... e04gbf / e04gbc / lsq_uncon_quasi_deriv_comp |
一次導関数、簡便(引数が少ない)... e04gyf / - / lsq_uncon_quasi_deriv_easy |
非線形最小二乗問題(制約なし)の共分散行列 ... e04ycf / e04ycc / lsq_uncon_covariance |
境界制約 |
モデルベース法 |
ダイレクトコミュニケーション ... e04fff / e04ffc / handle_solve_dfls |
リバースコミュニケーション ... e04fgf / e04fgc / handle_solve_dfls_rcomm |
信頼領域法 |
一次導関数、オプションで二次導関数 ... e04ggf / e04ggc / handle_solve_bxnl |
汎用(非線形制約を含む) |
逐次二次計画法(Sequential Quadratic Programming, SQP)... e04usf / e04unc / lsq_gencon_deriv |
非線形最小二乗問題、データフィッティング - 大域的最適化 |
汎用(非線形制約を含む) |
マルチスタート ... e05usf / e05usc / nlp_multistart_sqp_lsq |
混合整数線形計画問題(Mixed Integer Linear Programming, MILP) |
密(非スパース) |
分枝限定法 ... h02bbf / h02bbc / ilp_dense |
スパース |
分枝限定法 ... h02cef / - / iqp_sparse |
混合整数二次計画問題(Mixed Integer Quadratic Programming, MIQP) |
密(非スパース) |
分枝限定法 ... h02cbf / - / iqp_dense |
スパース |
分枝限定法 ... h02cef / - / iqp_sparse |
混合整数非線形計画問題(Mixed Integer Nonlinear Programming, MINLP) |
密(非スパース) |
混合整数逐次二次計画法(Mixed Integer Sequential Quadratic Programming, MISQP)... h02daf / h02dac / sqp |
オペレーションズリサーチ(Operations Research, OR) |
特徴選択問題 |
与えられたサイズの最良のサブセット |
ダイレクトコミュニケーション ... h05abf / h05abc / best_subset_given_size |
リバースコミュニケーション ... h05aaf / h05aac / best_subset_given_size_revcomm |
最短経路問題 ... h03adf / - / shortestpath |
輸送問題 ... h03abf / h03abc / transportation |
巡回セールスマン問題、Simulated Annealing ... h03bbf / h03bbc / tsp_simann |
サンプルコード
- 業界別最適化Example集 - 実世界の問題に対する最適化の実践 金融、物流、環境エネルギー、農林水産業、公共サービスなど様々な業界における最適化問題を解決するための具体例を紹介
- 最適化アルゴリズムExample集 - 問題タイプ別の実装例と解法テクニック 線形計画問題(LP)、非線形計画問題(NLP)、二次計画問題(QP)など、様々な最適化アルゴリズムの実装例と解法テクニックを問題タイプ別に解説
- JupyterNote Example集 - JupyterNoteで実行可能なExample集 導関数フリー(DFO)アルゴリズム、非線形最小二乗法 、グローバル最適化、粒子群最適化など幅広いExampleを収録
- 最適化問題におけるスパース性の重要性と適切なソルバー選択 スパース行列の特徴、コレスキー分解でのスパース性の影響、線形計画法の例を用いてスパースソルバーの優位性を解説
- 最適化問題に適したソルバーの選択 特化型ソルバーと汎用ソルバーの性能比較を通じて、問題構造の理解と適切なソルバー選択による計算効率や精度向上を説明
- 有限差分法による導関数近似の精度と課題 非線形最適化における導関数の重要性、有限差分法による導関数近似の精度や課題、有限差分間隔選択の影響について詳述
- DFO(Derivative Free Optimization)の概要と比較 確率的方法、直接検索法、モデルベース法の3つのDFOアプローチを比較し、モデルベースDFOの優れた性能とノイズ耐性を解説
- 用量反応関係のデータフィッティングモデリング nAGライブラリの最適化ソルバーを用いた4パラメーターロジスティックモデルのフィッティング、損失関数や正則化の影響を調査
- クリスマスにおけるキャンディー隠し場所の最適化問題 クリスマスツリーとプレゼントで構成される複雑な領域内でのキャンディー隠し最適化問題を、nAGライブラリの最適化ソルバーを用いて解決する方法を解説
- Hestonモデルのキャリブレーションにおける導関数を利用しない最適化手法の有効性 DFO手法によるHestonモデルのキャリブレーションが、従来の勾配ベースの手法よりも少ない関数評価回数で高精度な結果を得られることを実証
- デリバティブフリー最適化(DFO)ソルバーの特徴 複雑な数値モデルの最適化問題に対するDFOソルバーの利点と特徴、nAGが提供する新しいDFOソルバーの特徴、ノイズに対するロバスト性を紹介
- nAGの導関数不要最適化(DFO)ソルバーによるキャリブレーション問題の解決 DFOの利点、ファイナンスにおけるノイズの原因、ヘストンモデルのキャリブレーション例、DFOの性能比較、ノイズに対するロバスト性を詳細に解説
- BOBYQAアルゴリズム:nAGライブラリの新機能 導関数不要で効率的な最適化アルゴリズムBOBYQAの特徴や実用例、性能比較について説明
- nAGライブラリの新しい非線形最小二乗法ソルバーの紹介 Mark 27.1で導入されたhandle_solve_bxnl (e04gg)の特徴や従来のソルバーとの比較、実際の使用例を詳しく説明
- nAGの新しい非線形最適化ソルバーe04kfの紹介 特徴や性能、他のソルバーとの比較結果を詳細に説明。大規模な非線形最適化問題を効率的に解くための新しいアプローチを紹介
- nAG混合整数線形計画問題(MILP)ソルバーの概要 前処理、分枝限定法、カット生成、ヒューリスティクスなどの高度なアルゴリズムを組み合わせた強力なツールの説明
- nAGの混合整数非線形計画法(MINLP)ソルバーの紹介 h02dacの特徴と革新的アルゴリズムについて説明し、その優位性や応用例を紹介
- 二次錐計画法(SOCP)を用いた凸最適化問題の解法 SOCPの基本概念、数学的定式化、nAGライブラリでの実装、ポートフォリオ最適化での具体的な使用例を含む
- nAGの二次錐計画(SOCP)ソルバーによるポートフォリオ最適化の効率化 最新のSOCPソルバーの性能とポートフォリオ最適化への応用について解説。従来のソルバーと比較して高速かつ高精度であることを強調
- nAGライブラリにおけるQCQP問題ソルバーの紹介 Mark27.1で導入された二次制約付き二次計画法問題(QCQP)を解くための新機能について説明。QCQPの定義、新しいルーチンの特徴、凸/非凸問題の扱い方、ソルバーの選択などを解説
- nAGライブラリの大規模線形計画問題向け内点法ソルバーの紹介 e04mtの特徴や利点、実装されている2つの方法(Primal-Dual法とSelf-Dual法)の説明、他のソルバーとの比較を含む
- 非線形最適化手法の比較:SQPとIPM アクティブセット順序二次計画法(SQP)と内点法(IPM)の特徴、利点、適用分野について比較し、それぞれの手法の有効性と使用例を説明
- AMPLモデリング言語を用いた非線形最適化のチュートリアル (pdf版) AMPLの基本的な使い方から、nAGの最適化ソルバーとの連携、実際のモデル作成例までを解説
その他のサンプルコード
問題タイプ | Fortran | C | C# | Python |
---|---|---|---|---|
線形計画問題 | Fortran | C/C++ | C# | |
2次計画問題 | Fortran | C/C++ | ||
線形最小二乗問題 | Fortran | C/C++ | C# | |
非線形計画問題(密) | Fortran | C/C++ | C# | |
非線形計画問題(スパース) | Fortran | C# | ||
大域的最適化問題 | Fortran | C/C++ | C# | Python |
凸2次計画問題 | C# | |||
最適化問題(シンプレックス法) | C# |
技術記事
お客様事例