主要内容

GlobalSearch和MultiStart属性(选项)

如何设置属性

创建一个GlobalSearchMultiStart对象具有非默认属性时,使用名称-值对。例如,创建一个GlobalSearch对象具有迭代显示,且仅从关于边界和不等式的可行点开始运行

gs = GlobalSearch (“显示”“通路”...“StartPointsToRun”“bounds-ineqs”);

对象的属性GlobalSearchMultiStart对象,使用点表示法。例如,如果女士是一个MultiStart对象,然后设置显示财产“通路”,输入

ms.Display =“通路”

若要同时设置现有对象的多个属性,请使用构造函数(GlobalSearchMultiStart)使用名称-值参数。例如,设置显示财产“通路”MaxTime财产One hundred.,输入

= MultiStart女士(ms,显示=“通路”MaxTime = 100);

有关设置属性的更多信息,请参见变化的全球选项

两个对象的属性

您可以创建MultiStart对象从一个GlobalSearch对象,反之亦然。

从现有对象创建新对象的语法是:

= MultiStart女士(gs);或gs = GlobalSearch(ms);

新对象包含应用于旧对象的属性。本节将描述这些共享属性:

显示

的值显示属性是:

  • “最终”(默认)-在最后一次求解器运行后将结果汇总到命令行。

  • “关闭”—命令行无输出。

  • “通路”-每次本地求解器运行后,将结果汇总到命令行。

FunctionTolerance

FunctionTolerance属性描述两个目标函数值必须有多接近,求解者才会认为它们相同,从而创建局部解的向量。集FunctionTolerance0以获取每次本地求解器运行的结果。集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.funccountGlobalSearch是否可以大于上次函数调用中的值“通路”,因为GlobalSearch算法可能执行了一些不属于局部求解器的函数求值。有关更多信息,请参见GlobalSearch算法

有关使用输出函数的示例,请参见GlobalSearch输出函数

请注意

时不运行输出和plot函数MultiStartUseParallel选项设置为真正的这里有一个空缺parpool

optimValues结构。optimValues结构包含以下字段:

  • bestx-目前最好的一点

  • bestfval-目标函数值在bestx

  • funccount-函数评估总数

  • localrunindex-本地求解器运行的索引

  • localsolution包含局部求解器调用的部分输出的结构:XFval而且Exitflag

PlotFcn

PlotFcn属性指示全局求解器在每次局部求解器运行完成后运行一个或多个plot函数。包含以适当语法编写的plot函数的句柄,或包含此类句柄的单元格数组。默认是一个空条目([]).

绘图函数的语法与输出函数的语法相同。有关详细信息,请参见OutputFcn

全局求解器有两个预定义的plot函数:

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

  • @gsplotfunccount绘制函数求值的次数。

有关使用plot函数的示例,请参见MultiStart情节功能

如果指定多个plot函数,则所有plot将作为子plot显示在同一窗口中。右键单击任意子图,可在单独的图形窗口中获得较大的版本。

请注意

时不运行输出和plot函数MultiStartUseParallel选项设置为真正的这里有一个空缺parpool

StartPointsToRun

StartPointsToRun属性指示求解器在运行时排除某些起始点:

  • 所有-接受所有的起点。

  • 界限-拒绝不满足边界的起始点。

  • bounds-ineqs-拒绝不满足边界或不等式约束的起点。

XTolerance

XTolerance属性描述两个点必须有多接近,求解者才会认为它们相同,以创建局部解的向量。集XTolerance0以获取每次本地求解器运行的结果。集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.有关详细信息,请参见如何在全局优化工具箱中使用并行处理

Baidu
map