创建求解器对象
什么是求解器对象?
求解器对象包含您对优化全局部分的偏好。
您不需要设置任何偏好。创建一个名为 gs
的 GlobalSearch
对象,其默认设置如下:
gs = GlobalSearch;
类似地,创建一个名为 ms
的 MultiStart
对象,其默认设置如下:
ms = MultiStart;
求解器对象的属性(全局选项)
全局选项是 GlobalSearch
或 MultiStart
对象的属性。
GlobalSearch 和 MultiStart 的属性
属性名称 | 含义 |
---|---|
Display | 迭代显示的细节级别。设置为 'off' 表示不显示,设置为 'final' (默认)表示在运行结束时显示报告,设置为 'iter' 表示在求解器进展过程中显示报告。有关更多信息和示例,请参阅 迭代输出。 |
FunctionTolerance | 求解器认为 FunctionTolerance 内的目标函数值是相同的(而不是不同的)。默认值:1e-6 。当解同时满足 FunctionTolerance 和 XTolerance 容差时,求解器会将解决解分组。 |
XTolerance | 求解器认为彼此 XTolerance 距离内的解是相同的(而不是不同的)。默认值:1e-6 。当解同时满足 FunctionTolerance 和 XTolerance 容差时,求解器会将解决解分组。 |
MaxTime | 如果运行时间超过 MaxTime 秒(以时钟(而不是处理器秒)来衡量),解算器就会停止。默认值:Inf |
StartPointsToRun | 选择是否运行 'all' (默认) 起点、仅运行满足 'bounds' 的点,或者仅可行符合 'bounds-ineqs' 边界和不等式约束的点。有关示例,请参阅 仅使用可行的起点进行优化。 |
OutputFcn | 每次局部求解器运行后运行的函数。请参阅 GlobalSearch 和 MultiStart 的输出函数。默认值:[] |
PlotFcn | 绘制每次局部求解器运行后要运行的函数。请参阅 GlobalSearch 和 MultiStart 的绘图函数。默认值:[] |
GlobalSearch 的属性
属性名称 | 含义 |
---|---|
NumTrialPoints | 要检查的试验点的数量。默认值:1000 |
BasinRadiusFactor | 有关这些属性的详细描述,请参阅 |
DistanceThresholdFactor | |
MaxWaitCycle | |
NumStageOnePoints | |
PenaltyThresholdFactor |
MultiStart 的属性
属性名称 | 含义 |
---|---|
UseParallel | 当 true 时,MultiStart 会尝试将起点分发给局部求解器的多个处理器。通过设置为 false (默认)来禁用。有关详细信息,请参阅如何在 Global Optimization Toolbox 中使用并行处理。有关示例,请参阅 并行 MultiStart。 |
创建非默认 GlobalSearch 对象
假设您想解决一个问题并且:
如果局部解彼此相差 0.01 以内并且函数值在默认的
FunctionTolerance
容差范围内,则认为局部解相同。计算时间不超过 2000 秒。
为了解决这个问题,创建一个 GlobalSearch
对象 gs
,如下所示:
gs = GlobalSearch('XTolerance',0.01,'MaxTime',2000);
创建非默认 MultiStart 对象
假设您想解决这样一个问题:
如果局部解彼此相差 0.01 以内,且函数值在默认的
FunctionTolerance
容差范围内,则认为局部解相同。您花在计算上的时间不超过 2000 秒。
为了解决这个问题,创建一个 MultiStart
对象 ms
,如下所示:
ms = MultiStart('XTolerance',0.01,'MaxTime',2000);