Main Content

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

在基于问题的方法和基于解决方案的方法之间做出选择

使用 Global Optimization Toolbox 求解器优化非光滑函数、寻找全局解或解决多目标问题。使用基于问题的方法来更简单地设置和解决问题。

基于问题的特征

优点局限性
更易于设置和调试没有方程问题
更容易针对同一问题运行不同的求解器无自定义数据类型
自动获取合适的求解器没有 surrogateopt 的检查点文件
自动加速解在相同耗时函数(通常是模拟)中计算目标和非线性约束的问题无向量化
您必须转换与基于求解器的方法相关的选项的变量

优点:

  • 更易于设置和调试。在基于问题的方法中,您可以使用符号样式变量来创建优化表达式和约束。请参阅 基于问题的全局优化设置。在基于求解器的方法中,您必须将所有变量放入一个向量中,这可能很不方便,尤其是对于较大或不同维度的变量。

  • 更容易针对同一问题运行不同的求解器。一些求解器有不同的调用语法。例如,surrogateopt 中非线性约束的语法与所有其他求解器中的语法不同。要使用基于求解器的方法中的 surrogateopt 和另一个求解器来运行问题,您必须创建目标函数的不同版本。相比之下,基于问题的方法负责翻译语法,因此您只需要更改求解器名称和可能的一些选项。

  • 自动获取合适的求解器。solve 函数会自动选择一个能够处理您的目标和约束的求解器。在基于求解器的方法中,您必须选择合适的求解器。

  • 自动加速解在相同耗时函数(通常是模拟)中计算目标和非线性约束的问题。通常,模拟或 ODE 求解器会在同一函数中计算目标和非线性约束。当您使用 fcn2optimexpr 将耗时函数转换为优化表达式时,您可以通过将 'ReuseEvaluation' 参量设置为 true 来节省解时间。此设置使得求解器在评估目标和非线性约束时避免重新计算耗时的函数。要通过基于求解器的方法节省时间可能需要额外的编程,如示例 同一函数中的目标和非线性约束 所示。

限制:

另请参阅

相关主题