最適化の検索方法

検索方法とは、現在の設計ポイントより小さい目的関数が得られる新しい設計ポイントまたは現在の設計ポイントより実現可能性が高い新しい設計ポイントを見出すために、最適化アルゴリズムで使用する手法です。

MotionSolveでは、SCIPYアルゴリズムを使用して 解を見つけます。このアルゴリズムでは、いくつかの検索方法をサポートしています。
注: これまでに当社で実施したテストのほとんどで、SLSQP(逐次最小二乗計画法)アルゴリズムを使用しています。
scipy.optimize.minimizeでサポートされている各種のアルゴリズムを以下に示します。
表 1.
アルゴリズム 問題タイプ 説明
L-BFGS-B 制約あり L-BFGS-B(Limited-memory BFGS Bounds)手法は、準ニュートン系の最適化アルゴリズムであり、少量のコンピューターメモリを使用してBFGS(Broyden–Fletcher–Goldfarb–Shanno)アルゴリズムに近似した最適化を提供します。この手法は簡潔な範囲で制約した最適化にのみ適用できます。すなわち、唯一の制約条件の形式が b L b b U MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbdfgBPj MCPbqefqvATv2CG4uz3bIuV1wyUbqeduuDJXwAKbYu51MyVXgaruWq VvNCPvMCG4uz3bqeeuuDJXwAKbsr4rNCHbGeaGqiFu0Je9sqqrpepC 0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yq aqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaGaaiGadmWaamaaci GaaqqaceqbcaGcbaGaamOyamaaBaaaleaacaWGmbaabeaakiabgsMi JkaadkgacqGHKjYOcaWGIbWaaSbaaSqaceaatLVaamyvaaqabaaaaa@4669@ である問題にのみ適用できます。
TNC 制約あり TNC手法では、打ち切りニュートンアルゴリズムを使用して、境界値が設定された変数を持つ関数を最小化します。この手法は簡潔な範囲で制約した最適化にのみ適用できます。すなわち、唯一の制約条件の形式が b L b b U MathType@MTEF@5@5@+= feaagKart1ev2aqatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbdfgBPj MCPbqefqvATv2CG4uz3bIuV1wyUbqeduuDJXwAKbYu51MyVXgaruWq VvNCPvMCG4uz3bqeeuuDJXwAKbsr4rNCHbGeaGqiFu0Je9sqqrpepC 0xbbL8F4rqqrFfpeea0xe9Lq=Jc9vqaqpepm0xbba9pwe9Q8fs0=yq aqpepae9pg0FirpepeKkFr0xfr=xfr=xb9adbaGaaiGadmWaamaaci GaaqqaceqbcaGcbaGaamOyamaaBaaaleaacaWGmbaabeaakiabgsMi JkaadkgacqGHKjYOcaWGIbWaaSbaaSqaceaatLVaamyvaaqabaaaaa@4669@ である問題にのみ適用できます。このアルゴリズムは勾配情報を使用することから、ニュートン共役勾配法とも呼ばれます。
COBYLA 制約あり COBYLA手法とは、位相制約の下での線形近似による最適化です。このアルゴリズムは、目的関数と各制約条件に対する線形近似に基づいています。
SLSQP 制約あり SLSQP手法は、Sequential Least SQuares Programming(逐次最小二乗計画法)を使用して、制限値、等式制約条件、および不等式制約条件を任意の組み合わせで適用した多変数の関数を最小化します。
Nelder-Mead 制約なし Nelder-Mead手法では、シンプレックスアルゴリズムを使用します。このアルゴリズムは、多くの用途で堅牢性を発揮します。ただし、導関数の数値計算を信頼できる場合は、1次導関数や2次導関数の情報を使用する他のアルゴリズムの方が、全般的に性能が優れていることから望ましい可能性があります。
Powell 制約なし Powell手法は、Powellの共役方向法を改良した手法です。この手法では、方向セットを構成する各ベクトルの方向に逐次線形最小化を実行します。この方向セットは、メインの最小化ループが反復されるたびに更新されます。関数は微分可能である必要はなく、導関数は取得されません。
CG 制約なし CG手法では、PolakとRibiereによる非線形共役勾配アルゴリズムを使用します。これはFletcher-Reeves法からの派生手法です。この手法では1次導関数のみを使用します。
BFGS 制約なし BFGS手法では、Broyden、Fletcher、Goldfarb、およびShannoの準ニュートン法を使用します。この手法では1次導関数のみを使用します。BFGSは、スムーズではない最適化に対しても優れた性能を発揮することが実証されています。この手法からは、ヘッセ行列の逆行列の近似も返されます。
ニュートン-CG 制約なし ニュートン-CG手法では、ニュートン-CGアルゴリズム(打ち切りニュートン法とも呼ばれます)を使用します。この手法はCG法を使用して検索方向を計算します。類似のアルゴリズムによるボックス制約最小化を実行するTNC手法もご参照ください。
dog-leg 制約なし dogleg手法では、制約のない最小化にdog-leg信頼領域アルゴリズムを使用します。このアルゴリズムは勾配とヘッセ行列を必要とし、さらにこのヘッセ行列は正定値とする必要があります。
trust-ncg 制約なし trust-ncg手法では、制約のない最小化にニュートン共役勾配信頼領域アルゴリズムを使用します。このアルゴリズムは勾配のほかに、ヘッセ行列を必要とするか、指定したベクトルとヘッセ行列との積を計算する関数を必要とします。