Main Content

このページは機械翻訳を使用して翻訳されました。元の英語を参照するには、ここをクリックします。

ハイブリッド関数を使用する場合

ハイブリッド関数は、元のソルバーが終了した後も最適化を継続する関数です。

これらの 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)

参考

| | |

関連するトピック