最適化問題(数理計画問題)とは、変数(連続または離散)に対する制約式の一群(制約条件)で定義される点集合(実行可能領域)の中で関数(目的関数)の値を最小または最大にする点(最適解)を見つける問題です。
NAG 数値計算ライブラリ は、最適化問題を解く様々なルーチン(ソルバーとユーティリティ)を提供します。
NAG 数値計算ライブラリは、Fortran,C/C++,C#,MATLAB®,Python などの様々な言語環境、また Linux,Winodws,Mac などの様々な OS 上でご利用いただけます。また、商用でのご利用 にも適しています。
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_deriv |
修正ニュートン法、一次導関数 ... 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 / nlin_lsq |
非線形最小二乗問題、データフィッティング − 大域的最適化 |
汎用(非線形制約を含む) |
マルチスタート ... 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 |
NAG ライブラリのルーチンリスト
凸最適化と局所最適化(E04 (Opt))
チャプター E04 (Opt) イントロダクション |
NAG Fortran Library コンテンツ |
NAG C Library コンテンツ |
NAG Library for .NET コンテンツ |
NAG Toolbox for MATLAB® コンテンツ |
NAG Library for Python コンテンツ |
大域的最適化(E05 (Glopt))
チャプター E05 (Glopt) イントロダクション |
NAG Fortran Library コンテンツ |
NAG C Library コンテンツ |
NAG Library for .NET コンテンツ |
NAG Toolbox for MATLAB® コンテンツ |
NAG Library for Python コンテンツ |
混合整数計画問題とオペレーションズリサーチ(H (Mip))
チャプター H (Mip) イントロダクション |
NAG Fortran Library コンテンツ |
NAG C Library コンテンツ |
NAG Library for .NET コンテンツ |
NAG Toolbox for MATLAB® コンテンツ |
NAG Library for Python コンテンツ |
特集
その他の技術情報
Fortran サンプルコード
2次計画問題 |
線形計画問題 |
線形最小二乗問題 |
非線形計問題(密) |
非線形計問題(スパース) |
大域的最適化問題 |
C/C++ サンプルコード
2次計画問題 |
線形計画問題 |
線形最小二乗問題 |
非線形計問題 |
大域的最適化問題 |
C# サンプルコード
最適化問題(シンプレックス法) |
最小二乗問題 |
線形計画問題 |
非線形計画問題 |
非線形計画問題(スパース) |
大域的最適化問題 |
凸2次計画問題 |
Python サンプルコード
大域的最適化問題 |
お客様事例