このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。
ハイブリッド関数を使用する場合
ハイブリッド関数は、元のソルバーが終了した後も最適化を継続する関数です。
これらの Global Optimization Toolbox ソルバーは、終了後にハイブリッド関数、つまり 2 番目のソルバーを自動的に実行できます。
ハイブリッド関数を実行するには、2 番目のソルバーに HybridFcn オプションを設定します。
ハイブリッド関数は、次の状況で、最初のソルバーによって見つかった比較的大まかな解から始めて、より正確な解を得ることができます。
目的関数に滑らかでない領域があるかどうかに関係なく、解が滑らかな制約を持つ滑らかな領域にある場合は、
fminconなどの Optimization Toolbox™ のハイブリッド関数を使用します。目的関数または制約が解の近くで滑らかでない場合は、ハイブリッド関数として
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