主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

psoptimset

(不推荐)创建模式搜索 options 结构体

不推荐使用 psoptimset。请改用 optimoptions。有关详细信息,请参阅版本历史记录

语法

psoptimset
options = psoptimset
options = psoptimset(@patternsearch)
options = psoptimset('param1',value1,'param2',value2,...)
options = psoptimset(oldopts,'param1',value1,...)
options = psoptimset(oldopts,newopts)

说明

没有输入或输出参量的 psoptimset 显示带有其有效值的完整参数列表。

options = psoptimset(没有输入参量)创建一个名为 options 的结构体,其中包含 patternsearch 的选项或参数,并将参数设置为 [],表示 patternsearch 使用默认值。

options = psoptimset(@patternsearch) 创建一个名为 options 的结构体,其中包含 patternsearch 的默认值。

options = psoptimset('param1',value1,'param2',value2,...) 创建结构体 options,并将 'param1' 的值设置为 value1、将 'param2' 的值设置为 value2,依此类推。任何未指定的参数都设置为其默认值。只需输入足够的前导字符来唯一地定义参数名称就足够了。参数名称忽略大小写。

options = psoptimset(oldopts,'param1',value1,...) 创建 oldopts 的副本,并使用指定的值修改指定的参数。

options = psoptimset(oldopts,newopts) 将现有的 options 结构体 oldopts 与新的 options 结构体 newopts 结合起来。newopts 中任何具有非空值的参数都会覆盖 oldopts 中相应的旧参数。

选项

下表列出了您可以使用 psoptimset 设置的选项。请参阅 模式搜索选项 以了解选项及其值的完整描述。{} 中的值表示默认值。您还可以通过在命令行中输入 psoptimset 来查看优化参数和默认值。

optimoptions 隐藏了斜体列出的选项,但 psoptimset 没有隐藏。请参阅 optimoptions 隐藏的选项

适用于 patternsearch 的选项

选项描述
Algorithm

patternsearch 使用的算法。Algorithm 设置会影响可用的选项。有关算法的详细信息,请参阅 模式搜索轮询的工作原理非均匀模式搜索 (NUPS) 算法

有关算法效果的示例,请参阅 探索 patternsearch 算法探索优化实时编辑器任务中的 patternsearch 算法

{"classic"} | "nups" | "nups-gps" | "nups-mads"
缓存

Cache 设置为 "on" 后,patternsearch 会保留其轮询的网格点的历史记录。在后续迭代中,patternsearch 不会轮询靠近已轮询的点。如果在计算目标函数时 patternsearch 运行缓慢,请使用此选项。如果目标函数是随机的,请不要使用此选项。

注意

当并行运行求解器时,Cache 不起作用。

"on" | {"off"}

CacheSize

历史记录的大小。

非负标量 | {1e4}

CacheTol

当前网格点到按顺序排列的历史记录中任意点的最大距离,以便 patternsearch 避免轮询当前点。如果 Cache 选项设置为 "on" 则使用。

非负标量 | {eps}

ConstraintTolerance

约束的容差。

对于 options 结构体,使用 TolCon

正标量 | {1e-6}

Display

显示级别,表示在解过程中,psoptimset 返回到命令行多少信息。

"off" | "iter" | "diagnose" | {"final"}
FunctionTolerance

函数上的容差。如果函数值的变化小于 FunctionTolerance 且网格大小小于 StepTolerance,则迭代停止。该选项不适用于 MADS (网格自适应直接搜索)轮询。

对于 options 结构体,使用 TolFun

非负标量 | {1e-6}

InitialMeshSize

算法的初始网格大小。请参阅 模式搜索轮询的工作原理

正标量 | {1.0}

InitialPenalty

惩罚参数的初始值。请参阅 用于模式搜索的非线性约束求解算法

正标量 | {10}

MaxFunctionEvaluations

目标函数评估的最大次数。

对于 options 结构体,使用 MaxFunEvals

非负整数 | {"2000*numberOfVariables"},其中 numberOfVariables 是问题变量的数量

MaxIterations

最大迭代次数。

对于 options 结构体,使用 MaxIter

非负整数 | {"100*numberOfVariables"},其中 numberOfVariables 是问题变量的数量

MaxMeshSize

轮询或搜索步骤中使用的最大网格大小。请参阅 模式搜索轮询的工作原理

非负标量 | {Inf}

MaxTime

允许优化的总时间(以秒为单位)。

对于 options 结构体,使用 TimeLimit

非负标量 | {Inf}

MeshContractionFactor

失败迭代的网格收缩因子。

此选项仅当 Algorithm"classic" 时适用。

对于 options 结构体,使用 MeshContraction

正标量 | {0.5}

MeshExpansionFactor

成功迭代的网格扩展因子。

此选项仅当 Algorithm"classic" 时适用。

对于 options 结构体,使用 MeshExpansion

正标量 | {2.0}

MeshRotate

在声明某个点为最优点之前,标记以旋转模式。请参阅 网格选项

此选项仅当 Algorithm"classic" 时适用。

"off" | {"on"}

MeshTolerance

网格大小的容差。

对于 options 结构体,使用 TolMesh

非负标量 | {1e-6}

OutputFcn

优化函数在每次迭代时调用的函数。指定为函数句柄或函数句柄元胞数组。

对于 options 结构体,使用 OutputFcns

函数句柄或函数句柄元胞数组 | {[]}

PenaltyFactor

惩罚更新参数。请参阅 用于模式搜索的非线性约束求解算法

正标量 | {100}

PlotFcn

模式搜索的输出图。指定为内置绘图函数的名称、函数句柄,或者内置绘图函数或函数句柄名称的元胞数组。

对于 options 结构体,使用 PlotFcns

{[]} | "psplotbestf" | "psplotfuncount" | "psplotmeshsize" | "psplotbestx" | "psplotmaxconstr" | 自定义绘图函数

PlotInterval

绘图的迭代次数。1 表示每次迭代绘图,2 表示每隔一次迭代绘图,依此类推。

正整数 | {1}

PollMethod

模式搜索中采用的轮询策略。

此选项仅当 Algorithm"classic" 时适用。

注意

当问题具有线性等式约束时,您不能使用 MADS 轮询。

{"GPSPositiveBasis2N"} | "GPSPositiveBasisNp1" | "GSSPositiveBasis2N" | "GSSPositiveBasisNp1" | "MADSPositiveBasis2N" | "MADSPositiveBasisNp1"

PollOrderAlgorithm

模式搜索中轮询方向的顺序。

此选项仅当 Algorithm"classic" 时适用。

对于 options 结构体,使用 PollingOrder

"Random" | "Success" | {"Consecutive"}

ScaleMesh

变量的自动缩放。

对于 options 结构体,使用 ScaleMesh = "on""off"

{true}| false

SearchFcn

模式搜索中使用的搜索类型。指定为名称或函数句柄。

对于 options 结构体,使用 SearchMethod

"GPSPositiveBasis2N" | "GPSPositiveBasisNp1" | "GSSPositiveBasis2N" | "GSSPositiveBasisNp1" | "MADSPositiveBasis2N" | "MADSPositiveBasisNp1" | "searchga" | "searchlhs" | "searchneldermead" | "rbfsurrogate" | {[]} | 自定义搜索函数

StepTolerance

对变量的容忍度。如果位置和网格大小的变化都小于 StepTolerance,则迭代停止。此选项不适用于 MADS 轮询。

对于 options 结构体,使用 TolX

非负标量 | {1e-6}

TolBind

绑定容差。请参阅 约束参数

非负标量 | {1e-3}

UseCompletePoll

标记以完成围绕当前点的轮询。请参阅 模式搜索轮询的工作原理

此选项仅当 Algorithm"classic" 时适用。

注意

对于 "classic" 算法,必须将 UseCompletePoll 设置为 true 以进行向量化或并行轮询。类似地,将 UseCompleteSearch 设置为 true 以进行向量化或并行搜索。

从 R2019a 开始,当您将 UseParallel 选项设置为 true 时,patternsearch 会在内部将 UseCompletePoll 设置覆盖为 true,以便该函数轮询。

对于 options 结构体,使用 CompletePoll = "on""off"

true | {false}

UseCompleteSearch

当搜索方法为轮询方法时,标记以完成围绕当前点的搜索。请参阅 搜索和轮询

此选项仅当 Algorithm"classic" 时适用。

注意

对于 "classic" 算法,必须将 UseCompleteSearch 设置为 true 以进行向量化或并行搜索。

对于 options 结构体,使用 CompleteSearch = "on""off"

true | {false}

UseParallel

标记以并行计算目标和非线性约束函数。请参阅向量化和并行选项如何在 Global Optimization Toolbox 中使用并行处理

注意

对于 "classic" 算法,必须将 UseCompletePoll 设置为 true 以进行向量化或并行轮询。类似地,将 UseCompleteSearch 设置为 true 以进行向量化或并行搜索。

从 R2019a 开始,当您将 UseParallel 选项设置为 true 时,patternsearch 会在内部将 UseCompletePoll 设置覆盖为 true,以便该函数轮询。

注意

当并行运行求解器时,Cache 不起作用。

true | {false}

UseVectorized

指定函数是否向量化。请参阅向量化和并行选项向量化目标和约束函数

注意

对于 "classic" 算法,必须将 UseCompletePoll 设置为 true 以进行向量化或并行轮询。类似地,将 UseCompleteSearch 设置为 true 以进行向量化或并行搜索。

对于 options 结构体,使用 Vectorized = "on""off"

true | {false}

版本历史记录

在 R2006a 之前推出

全部折叠