主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

何时使用混合函数

混合函数是在原始求解器终止后继续进行优化的函数。

这些 Global Optimization Toolbox 求解器完成后,可以自动运行混合函数或第二个求解器:

要运行混合函数,请将 HybridFcn 选项设置为第二个求解器。

在下列情况下,混合函数可以从第一个求解器找到的相对粗略的解开始,获得更精确的解:

  • 无论目标函数是否具有非平滑区域,如果解位于具有平滑约束的平滑区域,则使用来自 Optimization Toolbox™ 的混合函数,例如 fmincon

  • 如果目标函数或约束在解附近不光滑,则使用 patternsearch 作为混合函数。

  • 假设问题有多个局部极小值,而您想要获得一个精确的全局解。单目标求解器可以搜索全局解的附近区域,但不一定能获得极其准确的结果。如果目标函数是平滑的,则使用来自 Optimization Toolbox 的混合函数,例如 fminunc

  • 对于平滑的多目标问题,混合函数通常可以改进 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)

另请参阅

| | |

主题