在运行全局求解器之后,您可能想要更改一些全局或局部选项。要决定改变哪些选项,指导原则是:
若要影响本地求解器,请设置本地求解器选项。
若要影响起始点或解集,请更改问题
结构,或设置全局求解器对象属性。
例如,获取:
更多的局部最小集全局解算器对象属性。
更快的本地求解器迭代-设置本地求解器选项。
考虑相同局部解的不同公差(以获得更多或更少的局部解)-设置全局求解器对象属性。金宝搏官方网站
在命令行显示不同的信息-决定是否需要从本地求解器迭代显示(设置本地求解器选项)或全局信息(设置全局求解器对象属性)。
不同的界限,来检查不同的区域-在问题
结构。
要在仅满足不等式约束的点上启动局部求解器,请设置StartPointsToRun
属性中的“bounds-ineqs”
。这个设置可以加快你的求解速度,因为本地求解器不需要尝试寻找满足这些约束条件的点。然而,由于全局解算器可以拒绝许多起点,因此该设置可以导致更少的本地解算器运行。例如,请参见只使用可行的起点进行优化。
使用fmincon
内点
算法,设置局部求解器算法
选项“内点”
。有关如何做到这一点的示例,请参见更新问题选项的例子。
如果你的局部求解器有不同的边界,在问题
结构。通过设置边界来检查不同的区域。
要查看具有正本地退出标志的每个解决方案,请设置XTolerance
属性中的0
。有关如何做到这一点的示例,请参见变化的全球选项。
有几种方法可以改变本地选项中的值:
使用点符号和更新值optimoptions
。语法
问题.options = optimoptions (问题.options。”参数',价值,……);
你也可以完全替换本地选项:
问题.options = optimoptions (@solvername,'参数',价值,……);
在一个本地选项上使用点符号。语法
问题.options。参数=newvalue;
重建整个问题结构。有关详细信息,请参见创建问题结构。
创建一个问题结构:
问题= createOptimProblem('fmincon','x0',[-1 2],…“客观”,@rosenboth);
设置问题使用sqp
算法在fmincon
:
problem.options.Algorithm =“sqp”;
在目标函数中使用梯度更新问题,有一个FunctionTolerance
的价值1 e-8
和一个XTolerance
的价值1 e -
:
问题。选择= optimoptions(问题。选择,‘GradObj’,‘上’,……“FunctionTolerance”、1 e-8 XTolerance, 1 e);
有几种方法可以改变a的特性GlobalSearch
或MultiStart
对象:
使用点符号。例如,假设您有一个默认值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
的值相同的对象XTolerance
和FunctionTolerance
:
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