多头

查找多个局部极小

说明

一个多头对象包含影响重复运行本地解算器,以生成GlobalOptimSolution反对。当运行时,解算器试图从不同的点开始寻找问题的多个局部解决方案。万博 尤文图斯

创建

说明

ms=多段创建质谱,一个多头属性设置为默认值的解算器。

MS =多头(名称,值)使用名称-值对设置属性。

MS =多头(oldMS,名称,值)创建oldMS多头使用名称 - 值对解算器,并且设置属性。

ms=多段(gs)创建质谱,一个多头解算器,具有来自GSGlobalSearch求解。

属性

全部展开

命令窗口的显示级别,指定为以下字符向量或字符串之一:

  • '最终'- 报告汇总后的结果完成。

  • 'ITER'- 初始后报告结果fmincon运行时,第1阶段后,每200点启动后,经过的每一次运行fmincon,除了最后的总结。

  • '关闭'–无显示。

例子:'ITER'

数据类型:烧焦|

函数值的考虑的解决方案宽容平等,指定为非标。万博 尤文图斯求解考虑两种解决方案相同的,如果他们是内万博 尤文图斯XTolerance彼此的相对距离,并具有内的目标函数值FunctionTolerance彼此的相对差。如果这两个条件都不满足,求解报告解决方案不同。万博 尤文图斯组FunctionTolerance0获得每个地方求解器运行的结果。组FunctionTolerance值越大,结果越少。为了GlobalSearch详细信息,请参见更新解决方案集在里面当fmincon运行时. 为了多头详细信息,请参见创建全局优化解决方案对象

例子:1E-4

数据类型:双重的

多端口运行的最长时间(秒),指定为正标量。当最大时间从跑步开始到现在已经过了几秒抽搐总有机碳

最大时间在运行期间不中断本地解算器,因此总时间可能超过最大时间

例子:180停止求解第180秒后,本地电话求解器完成。

数据类型:双重的

解算器进度或停止求解报告,指定为功能手柄或函数处理的单元阵列。输出功能,每个本地电话求解后运行。当全球求解器开始和结束他们还运行。使用语法写入输出功能描述在输出FCN. 见GlobalSearch输出功能

数据类型:细胞|function_handle

积解算器的进展,指定为功能句柄或功能手柄单元阵列。绘图功能,每个本地电话求解后运行。当全球求解器开始和结束他们还运行。使用语法写剧情的功能描述输出FCN

有两个内置的情节功能:

  • @gsplotbestf绘制最好的目标函数值。

  • @gsplotfunccount绘制函数评估的次数。

看到多段绘图函数

例子:@gsplotbestf

数据类型:细胞|function_handle

要运行的起点,指定为:

  • “全部”-运行所有起点。

  • '边界'- 运行才开始满足边界点。

  • “越界ineqs”- 运行才开始满足边界和不等式约束点。

例子:'边界'只运行满足所有边界点。

数据类型:烧焦|

将本地解算器调用分发到多个处理器,指定为真的

  • - 不要并行运行。

  • 真的-将本地解算器调用分发到多个处理器。

例子:真的

数据类型:合乎逻辑

考虑解相等时的距离公差,指定为非负标量。如果两个解在万博 尤文图斯XTolerance彼此的相对距离,并具有内的目标函数值FunctionTolerance彼此的相对差。如果这两个条件都不满足,求解报告解决方案不同。万博 尤文图斯组XTolerance0获得每个地方求解器运行的结果。组XTolerance值越大,结果越少。为了GlobalSearch详细信息,请参见更新解决方案集在里面当fmincon运行时. 为了多头详细信息,请参见创建全局优化解决方案对象

例子:2e-4号

数据类型:双重的

对象函数

运行多个启动解算器

实例

全部折叠

考虑一个具有几个局部极小的函数。

有趣= @(X)的x ^ 2 + 4 * SIN(5 * X)。fplot(乐趣,[ -  5,5])

要搜索全局最小值,请运行多头使用fmincon'sqp'算法。

rng公司默认%再现性OPTS = optimoptions(@fmincon,'算法''sqp');问题=createOptimProblem('fmincon'“目标”...乐趣,'x0',3岁,“磅”,-5,'ub',5岁,'选项',选择采用);MS =多头;[X,F] =运行(毫秒,问题,20)
多头完成了从全部开始点运行。所有的20个地方求解器运行融合以积极的局部解算器出口标志。
x=-0.3080个
F = -3.9032

创建一个多头具有默认属性的对象。

ms=多段
ms=MultiStart,属性为:usepallel:0 Display:“final”FunctionTolerance:1.0000e-06 MaxTime:Inf OutputFcn:[]PlotFcn:[]StartPointsToRun:“all”XTolerance:1.0000e-06

创建一个多头失败者的公差比默认的,所以解算器返回更少的解决方案,是彼此接近的对象。万博 尤文图斯也有多头仅运行在边界和不等式约束下可行的初始点。

ms=多段('功能公差',第2e-4页,“极限”,5e-3,...'StartPointsToRun'“越界ineqs”
MS =多头与属性:UseParallel:0显示: '最终' FunctionTolerance:2.0000E-04 MAXTIME:Inf文件OutputFcn:[] PlotFcn:[] StartPointsToRun: '越界ineqs' XTolerance:0.0050

创建非默认GlobalSearch反对。

GS = GlobalSearch('功能公差',第2e-4页,'纽姆特里亚点',2000年)
gs=GlobalSearch,属性为:NumTrialPoints:2000 BasinRadiusFactor:0.2000 DistanceThresholdFactor:0.7500 MaxWaitCycle:20 NumStageOnePoints:200 PenaltyThresholdFactor:0.2000 Display:“final”FunctionTolerance:2.0000e-04 MaxTime:Inf OutputFcn:[]PlotFcn:[]StartPointsToRun:“all”XTolerance:1.0000e-06

创建一个多头从使用可用的属性对象GS

ms=多段(gs)
ms=MultiStart,属性为:usepallel:0 Display:“final”FunctionTolerance:2.0000e-04 MaxTime:Inf OutputFcn:[]PlotFcn:[]StartPointsToRun:“all”XTolerance:1.0000e-06

质谱具有相同的非默认值FunctionToleranceGS. 但是质谱不使用NumTrialPoints属性。

创建一个多头对象与FunctionTolerance属于1E-4

ms=多段('功能公差',1E-4)
MS =多头与属性:UseParallel:0显示: '最终' FunctionTolerance:1.0000e-04 MAXTIME:Inf文件OutputFcn:[] PlotFcn:[] StartPointsToRun: '全部' XTolerance:1.0000e-06

更新XTolerance属性1E-3StartPointsToRun属性'边界'

ms=多段(ms,“极限”,1E-3,'StartPointsToRun''边界'
ms=MultiStart,属性为:usepallel:0 Display:“final”FunctionTolerance:1.0000e-04 MaxTime:Inf OutputFcn:[]PlotFcn:[]StartPointsToRun:“bounds”XTolerance:1.0000e-03

您还可以通过使用点符号更新属性一次一个。

最大时间ms=1800
MS =多头与属性:UseParallel:0显示: '最终' FunctionTolerance:1.0000e-04 MAXTIME:1800 OutputFcn:[] PlotFcn:[] StartPointsToRun: '边界' XTolerance:1.0000e-03

算法

有关算法的详细说明,请参见多段算法

扩展功能

在R2010a中引入