GlobalSearch和MultiStart属性(选项)
如何设置属性
创建一个GlobalSearch
或MultiStart
对象具有非默认属性时,使用名称-值对。例如,创建一个GlobalSearch
对象具有迭代显示,且仅从关于边界和不等式的可行点开始运行
gs = GlobalSearch (“显示”,“通路”,...“StartPointsToRun”,“bounds-ineqs”);
对象的属性GlobalSearch
或MultiStart
对象,使用点表示法。例如,如果女士
是一个MultiStart
对象,然后设置显示
财产“通路”
,输入
ms.Display =“通路”;
若要同时设置现有对象的多个属性,请使用构造函数(GlobalSearch
或MultiStart
)使用名称-值参数。例如,设置显示
财产“通路”
和MaxTime
财产One hundred.
,输入
= MultiStart女士(ms,显示=“通路”MaxTime = 100);
有关设置属性的更多信息,请参见变化的全球选项.
两个对象的属性
您可以创建MultiStart
对象从一个GlobalSearch
对象,反之亦然。
从现有对象创建新对象的语法是:
= MultiStart女士(gs);或gs = GlobalSearch(ms);
新对象包含应用于旧对象的属性。本节将描述这些共享属性:
显示
的值显示
属性是:
“最终”
(默认)-在最后一次求解器运行后将结果汇总到命令行。“关闭”
—命令行无输出。“通路”
-每次本地求解器运行后,将结果汇总到命令行。
FunctionTolerance
的FunctionTolerance
属性描述两个目标函数值必须有多接近,求解者才会认为它们相同,从而创建局部解的向量。集FunctionTolerance
来0
以获取每次本地求解器运行的结果。集FunctionTolerance
以获得更少的结果。
求解者认为两个解是相同的,如果它们在XTolerance
并在其中有目标函数值FunctionTolerance
彼此的。如果两个条件都不满足,求解者报告的解是不同的。公差是相对的,不是绝对的。有关详细信息,请参见fmincon运行时为GlobalSearch
,创建GlobalOptimSolution对象为MultiStart
.
MaxTime
的MaxTime
属性描述自求解程序开始运行以来的秒数公差。解算者在看到时停下来MaxTime
从开始运行到现在已经过去了几秒钟。时间就是挂钟与处理器周期相反。默认值是正
.
OutputFcn
的OutputFcn
属性指示全局求解器在每次局部求解器运行完成后运行一个或多个输出函数。输出函数也在全局求解器开始和结束时运行。包含以适当语法编写的输出函数的句柄,或包含此类句柄的单元格数组。默认是一个空条目([]
).
输出函数的语法是:
停止= outFcn (optimValues状态)
停止
是一个布尔值。当真正的
,算法停止。当假
,算法继续。请注意
局部求解器可以有一个输出函数。当局部求解器输出函数导致局部求解器停止运行时,全局求解器不一定会停止。如果您希望全局求解器在这种情况下停止,请让全局求解器输出函数在什么时候停止
optimValues.localsolution.exitflag = 1
.optimValues
中描述的结构是optimValues结构.状态
全局算法的当前状态:“init”
全局求解器没有调用本地求解器。的字段optimValues
结构都是空的,除了localrunindex
,这是0
,funccount
,其中包含目标函数和约束函数的计算次数。“通路”
-全局求解器在每次本地求解器运行后调用输出函数。“完成”
全局求解器结束调用本地求解器。中的字段optimValues
通常与最终输出函数调用的值相同状态
=“通路”
.然而,价值optimValues.funccount
为GlobalSearch
是否可以大于上次函数调用中的值“通路”
,因为GlobalSearch
算法可能执行了一些不属于局部求解器的函数求值。有关更多信息,请参见GlobalSearch算法.
有关使用输出函数的示例,请参见GlobalSearch输出函数.
请注意
时不运行输出和plot函数MultiStart
有UseParallel
选项设置为真正的
这里有一个空缺parpool
.
optimValues结构。的optimValues
结构包含以下字段:
bestx
-目前最好的一点bestfval
-目标函数值在bestx
funccount
-函数评估总数localrunindex
-本地求解器运行的索引localsolution
包含局部求解器调用的部分输出的结构:X
,Fval
而且Exitflag
PlotFcn
的PlotFcn
属性指示全局求解器在每次局部求解器运行完成后运行一个或多个plot函数。包含以适当语法编写的plot函数的句柄,或包含此类句柄的单元格数组。默认是一个空条目([]
).
绘图函数的语法与输出函数的语法相同。有关详细信息,请参见OutputFcn.
全局求解器有两个预定义的plot函数:
@gsplotbestf
绘制最佳目标函数值。@gsplotfunccount
绘制函数求值的次数。
有关使用plot函数的示例,请参见MultiStart情节功能.
如果指定多个plot函数,则所有plot将作为子plot显示在同一窗口中。右键单击任意子图,可在单独的图形窗口中获得较大的版本。
请注意
时不运行输出和plot函数MultiStart
有UseParallel
选项设置为真正的
这里有一个空缺parpool
.
StartPointsToRun
的StartPointsToRun
属性指示求解器在运行时排除某些起始点:
所有
-接受所有的起点。界限
-拒绝不满足边界的起始点。bounds-ineqs
-拒绝不满足边界或不等式约束的起点。
XTolerance
的XTolerance
属性描述两个点必须有多接近,求解者才会认为它们相同,以创建局部解的向量。集XTolerance
来0
以获取每次本地求解器运行的结果。集XTolerance
以获得更少的结果。求解器计算两点之间的距离规范
即欧氏距离。
求解者认为两个解是相同的,如果它们在XTolerance
并在其中有目标函数值FunctionTolerance
彼此的。如果两个条件都不满足,求解者报告的解是不同的。公差是相对的,不是绝对的。有关详细信息,请参见fmincon运行时为GlobalSearch
,创建GlobalOptimSolution对象为MultiStart
.
GlobalSearch属性
NumTrialPoints
需要检查的潜在起始点的数量x0
从问题
结构。GlobalSearch
只运行那些通过多个测试的潜在起始点。有关更多信息,请参见GlobalSearch算法.
默认值:1000
NumStageOnePoints
阶段1起始点的数量。有关详细信息,请参见获得第一阶段起点,运行.
默认值:200
MaxWaitCycle
算法中几个点上出现的正整数公差。
如果观察到的惩罚函数
MaxWaitCycle
连续试验得分至少为罚分阈值,然后提高罚分阈值(见PenaltyThresholdFactor).如果
MaxWaitCycle
连续的试验点在一个盆地,然后更新该盆地的半径(见BasinRadiusFactor).
默认值:20.
BasinRadiusFactor
之后,盆地半径减小MaxWaitCycle
连续的起始点都在盆地内。盆地半径减小了1 -倍BasinRadiusFactor
.
默认值:0.2
DistanceThresholdFactor
一种乘数,用于确定一个试点是否在一个现有的吸引盆地内。有关详细信息,请参见检查第2阶段试验点,看fmincon是否运行.默认值:0.75
PenaltyThresholdFactor
决定惩罚阈值的增加。有关详细信息,请参见对较大的计数器值做出反应.
默认值:0.2
MultiStart属性
UseParallel
的UseParallel
属性确定求解器是否将起始点分布到多个处理器:
假
(默认)-不要并行运行。真正的
-并行运行。
要使解算器并行运行,必须设置一个并行环境parpool
.有关详细信息,请参见如何在全局优化工具箱中使用并行处理.