主要内容

改变选项

如何决定要改变哪些选项

在运行全局求解器之后,您可能想要更改一些全局或局部选项。要决定改变哪些选项,指导原则是:

  • 若要影响本地求解器,请设置本地求解器选项。

  • 若要影响起始点或解集,请更改问题结构,或设置全局求解器对象属性。

例如,获取:

  • 更多的局部最小集全局解算器对象属性。

  • 更快的本地求解器迭代-设置本地求解器选项。

  • 考虑相同局部解的不同公差(以获得更多或更少的局部解)-设置全局求解器对象属性。金宝搏官方网站

  • 在命令行显示不同的信息-决定是否需要从本地求解器迭代显示(设置本地求解器选项)或全局信息(设置全局求解器对象属性)。

  • 不同的界限,来检查不同的区域-在问题结构。

选择问题选项的例子

  • 要在仅满足不等式约束的点上启动局部求解器,请设置StartPointsToRun属性中的“bounds-ineqs”。这个设置可以加快你的求解速度,因为本地求解器不需要尝试寻找满足这些约束条件的点。然而,由于全局解算器可以拒绝许多起点,因此该设置可以导致更少的本地解算器运行。例如,请参见只使用可行的起点进行优化

  • 使用fmincon内点算法,设置局部求解器算法选项“内点”。有关如何做到这一点的示例,请参见更新问题选项的例子

  • 如果你的局部求解器有不同的边界,在问题结构。通过设置边界来检查不同的区域。

  • 要查看具有正本地退出标志的每个解决方案,请设置XTolerance属性中的0。有关如何做到这一点的示例,请参见变化的全球选项

改变本地解算器选项

有几种方法可以改变本地选项中的值:

  • 使用点符号和更新值optimoptions。语法

    问题.options = optimoptions (问题.options。”参数',价值,……);

    你也可以完全替换本地选项:

    问题.options = optimoptions (@solvername,'参数',价值,……);
  • 在一个本地选项上使用点符号。语法

    问题.options。参数newvalue
  • 重建整个问题结构。有关详细信息,请参见创建问题结构

更新问题选项的例子

  1. 创建一个问题结构:

    问题= createOptimProblem('fmincon','x0',[-1 2],…“客观”,@rosenboth);
  2. 设置问题使用sqp算法在fmincon

    problem.options.Algorithm =“sqp”;
  3. 在目标函数中使用梯度更新问题,有一个FunctionTolerance的价值1 e-8和一个XTolerance的价值1 e -

    问题。选择= optimoptions(问题。选择,‘GradObj’,‘上’,……“FunctionTolerance”、1 e-8 XTolerance, 1 e);

变化的全球选项

有几种方法可以改变a的特性GlobalSearchMultiStart对象:

  • 使用点符号。例如,假设您有一个默认值MultiStart对象:

    ms = MultiStart ms = MultiStart with properties: UseParallel: 0 Display: 'final' FunctionTolerance: 1.0000e-06 MaxTime: Inf OutputFcn: [] PlotFcn: [] StartPointsToRun: 'all' XTolerance: 1.0000e-06 .使用实例

    改变女士XTolerance值等于1 e - 3,更新XTolerance字段:

    ms.XTolerance = 1e- 3ms = MultiStart with properties: UseParallel: 0 Display: 'final' FunctionTolerance: 1.0000e-06 MaxTime: Inf OutputFcn: [] PlotFcn: [] StartPointsToRun: 'all' XTolerance: 1.0000e-03
  • 从当前设置开始重建对象。例如,要设置FunctionTolerance女士1 e - 3,保留非默认值XTolerance

    ms = MultiStart(ms,'FunctionTolerance',1e-3) ms = MultiStart with properties: UseParallel: 0 Display: 'final' FunctionTolerance: 1.0000e-03 MaxTime: Inf OutputFcn: [] PlotFcn: [] StartPointsToRun: 'all' XTolerance: 1.0000e-03
  • 把一个GlobalSearch对象一个MultiStart对象,反之亦然。例如,与女士对象,创建GlobalSearch的值相同的对象XToleranceFunctionTolerance

    gs = GlobalSearch(女士)g = GlobalSearch属性:NumTrialPoints: 1000 BasinRadiusFactor: 0.2000 DistanceThresholdFactor: 0.7500 MaxWaitCycle: 20 NumStageOnePoints: 200 PenaltyThresholdFactor: 0.2000显示:“最终”FunctionTolerance: 1.0000 e 03 MaxTime:正OutputFcn: [] PlotFcn: [] StartPointsToRun:“所有”XTolerance: 1.0000 e 03

相关的话题