このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。
ハイブリッド関数を使用する場合
ハイブリッド関数は、元のソルバーが終了した後も最適化を継続する関数です。
これらの Global Optimization Toolbox ソルバーは、終了後にハイブリッド関数、つまり 2 番目のソルバーを自動的に実行できます。
ハイブリッド関数を実行するには、2 番目のソルバーに HybridFcn
オプションを設定します。
ハイブリッド関数は、次の状況で、最初のソルバーによって見つかった比較的大まかなソリューションから始めて、より正確なソリューションを取得できます。
目的関数に滑らかでない領域があるかどうかに関係なく、解が滑らかな制約を持つ滑らかな領域にある場合は、Optimization Toolbox™ のハイブリッド関数 (
fmincon
など) を使用します。目的関数または制約が解の近くで滑らかでない場合は、ハイブリッド関数として
patternsearch
を使用します。問題に複数の局所最小値があり、正確なグローバル ソリューションを取得したいとします。単一目的ソルバーはグローバルソリューションの近傍を検索できますが、必ずしも非常に正確な結果が得られるとは限りません。目的関数が滑らかな場合は、
fminunc
などの Optimization Toolbox のハイブリッド関数を使用します。滑らかな多目的問題の場合、ハイブリッド関数は通常、
gamultiobj
のソリューションを改善します。
ハイブリッド関数として使用できるソルバーを確認するには、元のソルバーのリファレンス ページの options
入力引数を参照してください。ハイブリッド機能を調整するには、ハイブリッド機能用の別のオプション セットを含めることができます。たとえば、ハイブリッド関数が fmincon
の場合:
hybridopts = optimoptions('fmincon','OptimalityTolerance',1e-10); options = optimoptions('ga','HybridFcn',{'fmincon',hybridopts}); [x,fval] = ga(fun,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options)
参考
ga
| gamultiobj
| particleswarm
| simulannealbnd