模式搜索选项
模式搜索选项
设置选项patternsearch
通过使用optimoptions
.
选择= optimoptions (“patternsearch”,...Option1 = value1, Option2 = value2);
中列出了一些选项
斜体
.这些选项没有出现在清单中optimoptions
的回报。要知道为什么optimoptions
隐藏这些选项值,参见optimoptions隐藏的选项.确保将选项传递给求解器。否则,
patternsearch
使用默认选项值。[x, fval] = patternsearch (Aeq有趣,x0, A, b,说真的,磅,乌兰巴托,nonlcon,选项)
算法的选择
算法
指定使用的算法patternsearch
解决一个问题。
“经典”
—使用原算法模式搜索轮询如何工作.“国家联盟”
-使用非均匀模式搜索算法描述非均匀模式搜索(NUPS)算法.“nups-gps”
-使用仅限于GPS(广义模式搜索)轮询算法的非均匀模式搜索算法(不使用OrthoMADS(正交网格自适应直接搜索)轮询)。“nups-mads”
—使用OrthoMADS轮询算法限制的非均匀模式搜索算法(不支持GPS轮询)。
绘图选项
PlotFcn
指定在每次迭代时调用的一个或多个plot函数patternsearch
或paretosearch
.设置PlotFcn
选项为内置的plot函数名称或plot函数的句柄。,您可以随时停止算法停止图窗口上的按钮。例如,要显示最佳函数值,请设置选项
如下:
选择= optimoptions (“patternsearch”PlotFcn =“psplotbestf”);
要显示多个图形,使用内置图形函数名的单元格数组或函数句柄的单元格数组:
选择= optimoptions (“patternsearch”,...PlotFcn = {@plotfun1 @plotfun2,...});
在哪里@plotfun1
,@plotfun2
,等等都是绘图函数的函数句柄。如果指定多个plot函数,则所有plot将作为子plot显示在同一窗口中。右键单击任意子图,可在单独的图形窗口中获得较大的版本。
可用的绘图功能patternsearch
或paretosearch
只有一个目标函数:
“psplotbestf”
-绘制最佳目标函数值。“psplotfuncount”
-绘制函数求值的次数。“psplotmeshsize”
-绘制网格尺寸。“psplotbestx”
-绘制当前最佳点。“psplotmaxconstr”
-绘制最大非线性约束违例。您还可以创建和使用您自己的plot函数。情节功能的结构描述自定义plot函数的结构。将任何自定义函数作为函数句柄传递。
为paretosearch
对于多个目标函数,您可以选择作为函数句柄传递的自定义函数,或以下函数中的任何一个。
“psplotfuncount”
-绘制函数求值的次数。“psplotmaxconstr”
-绘制最大非线性约束违例。“psplotdistance”
-绘制距离度量。看到paretosearch算法.“psplotparetof”
-绘制目标函数值。适用于三个或更少的目标。“psplotparetox”
-在参数空间中绘制当前点。适用于三个或更少的维度。“psplotspread”
-绘制传播度量。看到paretosearch算法.“psplotvolume”
-绘制体积度量。看到paretosearch算法.
为patternsearch
,PlotInterval
选项指定对plot函数的连续调用之间的迭代次数。
情节功能的结构
图函数的第一行有形式
函数停止= plotfun(optimvalues, flag)
函数的输入参数是
optimvalues
包含求解器当前状态信息的结构。的结构包含以下字段patternsearch
:x
——当前点迭代
——迭代数fval
-目标函数值meshsize
-当前网目尺寸funccount
-函数求值次数方法
-上次迭代使用的方法TolFun
-上次迭代函数值的公差TolX
——宽容x
上次迭代中的值nonlinineq
-非线性不等式约束,仅在指定非线性约束函数时显示nonlineq
-非线性等式约束,仅当指定非线性约束函数时显示
的结构包含以下字段
paretosearch
:x
——当前点fval
-目标函数值迭代
——迭代数funccount
-函数求值次数nonlinineq
-非线性不等式约束,仅在指定非线性约束函数时显示nonlineq
-非线性等式约束,总是空的[]
体积
-体积测量(见paretosearch算法的定义)averagedistance
-距离测量(见paretosearch算法的定义)传播
-扩散措施(见paretosearch算法的定义)
国旗
-调用plot函数的当前状态。的可能值国旗
是“init”
——初始化状态“通路”
——迭代状态“中断”
——中间阶段“完成”
——最终状态
的细节
国旗
,请参阅输出函数的结构.
传递额外的参数解释如何向函数提供附加参数。
输出参数停止
提供在当前迭代时停止算法的方法。停止
可以有以下值:
假
-算法继续到下一次迭代。真正的
—算法在当前迭代时终止。
调查选项
轮询选项控制模式搜索在每次迭代中轮询网格点的方式。
PollMethod
指定算法用于创建网格的模式。每一类直接搜索算法都有两种模式:广义模式搜索(GPS)算法、生成集搜索(GSS)算法和网格自适应直接搜索(MADS)算法。这些模式是积极的基础2N积极的基础N+ 1:
的默认模式
patternsearch
,“GPSPositiveBasis2N”
,由以下2个组成N向量,N为目标函数的自变量个数。(1 0 0…0] [0 1 0...0] ...[0 0 0...1] [–1 0 0...0] [0 –1 0...0] [0 0 0...–1].
例如,如果优化问题有三个自变量,则该模式由以下六个向量组成。
[1 0 0][0 1 0][0 0 1][1 0 0][0 1 0](0 0 1)。
的默认模式
paretosearch
,“GPSPositiveBasis2Np2”
,等于“GPSPositiveBasis2N”
还有两个点,都是1,都是- 1。[1 1 1…1] [–1 –1 –1...–1]
例如,如果优化问题有三个自变量,则该模式由以下8个向量组成。
[1 0 0][0 1 0][0 0 1][1 0 0][0 1 0][0 0 1][1 1 1](1 1 1)。
的
“GSSPositiveBasis2N”
模式类似于“GPSPositiveBasis2N”
,但调整基向量,以考虑线性约束。“GSSPositiveBasis2N”
效率比“GPSPositiveBasis2N”
当电流点靠近线性约束边界时。paretosearch
也有“GSSPositiveBasis2Np2”
类似的模式“GPSPositiveBasis2Np2”
.的
“MADSPositiveBasis2N”
模式由两个部分组成N随机生成的向量,其中N为目标函数的自变量个数。这是通过随机生成来实现的N构成线性无关集合的向量,用第一个集合和这个集合的负数得到2N向量。如上所示,“GPSPositiveBasis2N”
模式是用线性无关恒等式的正和负组成的,然而,用“MADSPositiveBasis2N”
的随机排列生成模式N——- - - - - -N线性无关的下三角矩阵,在每次迭代中重新生成。请注意
当问题具有线性等式约束时,不能使用MADS轮询。
的
“GPSPositiveBasisNp1”
模式由以下内容组成N+ 1的向量。(1 0 0…0] [0 1 0...0] ...[0 0 0...1] [–1 –1 –1...–1].
例如,如果目标函数有三个自变量,则模式由以下四个向量组成。
[1 0 0][0 1 0][0 0 1][1 -1 -1]。
的
“GSSPositiveBasisNp1”
模式类似于“GPSPositiveBasisNp1”
,但调整基向量,以考虑线性约束。“GSSPositiveBasisNp1”
效率比“GPSPositiveBasisNp1”
当电流点靠近线性约束边界时。的
“MADSPositiveBasisNp1”
模式由N个随机生成的向量构成正基,其中N为目标函数的自变量个数。然后,再生成一个随机向量,给出N+1个随机生成的向量。时,每次迭代生成一个新模式“MADSPositiveBasisNp1”
被选中。请注意
当问题具有线性等式约束时,不能使用MADS轮询。
的
“OrthoMADSPositiveBasis2N”
模式与“GPSPositiveBasis2N”
模式,然后在N维上随机旋转。的
“OrthoMADSPositiveBasisNp1”
模式与“GPSPositiveBasisNp1”
模式,然后在N维上随机旋转。
UseCompletePoll
指定是否必须在每次迭代时轮询当前网格中的所有点。UseCompletePoll
可以有价值真正的
或假
.UseCompletePoll
只适用于当算法
是“经典”
.
如果你设置
UseCompletePoll
来真正的
,算法在每次迭代时轮询网格中的所有点,并选择目标函数值最小的点作为下一次迭代的当前点。如果你设置
UseCompletePoll
来假
,当算法发现一个点的目标函数值小于当前点的目标函数值时,算法立即停止轮询。然后,算法将该点设置为下次迭代的当前点。为
paretosearch
只有,MinPollFraction
Option指定在轮询期间调查的轮询方向的百分比,而不是的二进制值UseCompletePoll
.要指定一个完整的轮询,请设置MinPollFraction
来1
.若要指定轮询在找到改善所有目标函数的点时立即停止,请设置MinPollFraction
来0
.
PollOrderAlgorithm
指定算法在当前网格中搜索点的顺序。PollOrderAlgorithm
只适用于当算法
是“经典”
.选项是
“连续”
(默认)-算法轮询网格点连续中所描述的模式向量的顺序调查方法.“随机”
—轮询顺序是随机的。“成功”
-每次迭代的第一个搜索方向是算法在前一次迭代中找到最佳点的方向。在第一个点之后,算法以相同的顺序轮询网格点“连续”
.
多目标的选择
的paretosearch
解算器主要使用patternsearch
选项。几个可用的内置plot函数是不同的;看到绘图选项.以下选项仅适用于paretosearch
.
在表中,N
表示决策变量的个数。
多目标模式搜索选项
选项 | 定义 | 允许,{ 默认的} 值 |
---|---|---|
ParetoSetSize |
帕累托集合中的点数。 | 正整数|{max(60,目标数量)} |
ParetoSetChangeTolerance |
溶液体积或扩散的变化公差。当这些指标的相对变化小于ParetoSetChangeTolerance ,迭代结束。有关详细信息,请参见停止条件. |
积极的标量|{1}的军医 |
MinPollFraction |
要轮询的模式的最小分数。 | 标量从0到1 |{0} |
InitialPoints |
初始点
中有缺失的条目 |
矩阵 |
搜索选项
的SearchFcn
Option指定算法可以在轮询之前的每次迭代中执行的可选搜索。如果搜索返回一个改进目标函数的点,算法在下一次迭代中使用该点,并省略轮询。如果您选择相同的SearchFcn
而且PollMethod
时,只使用Poll方法,尽管在选择的选项不同时使用这两种方法。
只能选择轮询方法作为搜索方法“经典”
算法。
的值SearchFcn
下面列出。
[]
为默认值,不指定搜索步骤。任何内置投票算法:
“GPSPositiveBasis2N”
,“GPSPositiveBasisNp1”
,“GSSPositiveBasis2N”
,“GSSPositiveBasisNp1”
,“MADSPositiveBasis2N”
,“MADSPositiveBasisNp1”
,“OrthoMADSPositiveBasis2N”
,或“OrthoMADSPositiveBasisNp1”
.“searchga”
指定使用遗传算法的搜索。您可以使用两个附加参数修改遗传算法搜索:选择= optimoptions (“patternsearch”SearchFcn =...{@searchga, iterlim, optionsGA})
iterlim
-正整数,指定执行遗传算法搜索的模式搜索的迭代次数。的默认值iterlim
是1。建议不要更改此值,因为多次执行这些耗时的搜索不太可能改善结果。optionsGA
—遗传算法选项,您可以使用optimoptions
.如果不指定任何searchga
选项,然后searchga
使用相同的UseParallel
而且UseVectorized
选项设置patternsearch
.
“searchlhs”
指定拉丁超立方搜索。patternsearch
为搜索生成每个点,如下所示。对于每个分量,取向量的随机排列(1、2、…,k)
-兰特(k)
,除以k
.(k
是点数。)这个收益率k
点,每个分量接近均匀间隔。然后将得到的点按比例缩放以适应任何边界。拉丁超立方
的默认边界-1
而且1
.的设置决定执行搜索的方式
UseCompleteSearch
选择。如果你设置
UseCompleteSearch
来真正的
,算法轮询每一次迭代中由拉丁超立方搜索随机生成的所有点,选择目标函数值最小的点。如果你设置
UseCompleteSearch
来假
(默认值),算法一旦发现随机生成的其中一个点的目标函数值小于当前点的目标函数值,就会停止轮询,并选择该点进行下一次迭代。
您可以使用两个附加参数修改拉丁超立方搜索:
选择= optimoptions (“patternsearch”SearchFcn =...{@searchlhs iterlim,水平})
iterlim
-正整数,指定执行拉丁超立方搜索的模式搜索的迭代次数。的默认值iterlim
是1。水平
- - -水平
点数是多少patternsearch
搜索,一个正整数。的默认值水平
是维数的15倍。
“searchneldermead”
指定使用fminsearch
,该算法使用了Nelder-Mead算法。您可以使用两个附加参数修改Nelder-Mead搜索:选择= optimoptions (“patternsearch”SearchFcn =...{@searchneldermead, iterlim, optionsNM})
iterlim
-正整数,指定执行Nelder-Mead搜索的模式搜索的迭代次数。的默认值iterlim
是1。optionsNM
——选项fminsearch
,可以使用optimset
函数。
“rbfsurrogate”
指定使用径向基函数代理的搜索,类似于surrogateopt
代理(见代理优化算法).代理是由最近的代理形成的N
+1个或多个评价点,其中N
变量的数量(大小x0
).算法计算10*后N
点,代理被重置(擦除),新代理的点来自重置后的点。径向基函数要求至少N
+1点,所以在重置之后,搜索不会运行,直到算法计算至少N
+ 1额外的点。代理需要所有变量的上下界。如果你不提供一个边界,算法从最近的点列表构造一个。因此,当您不为某些变量提供一个边界时,算法会执行更多的计算,运行速度会略慢。在任何情况下,该搜索函数都是相对耗时的,因此最适合与耗时的目标函数一起使用。自定义
使您能够编写自己的搜索函数。选择= optimoptions (“patternsearch”SearchFcn = @myfun);
若要查看可用于编写自己的搜索函数的模板,请输入
编辑searchfcntemplate
下一节描述搜索函数的结构。
搜索功能的结构
搜索函数必须具有以下调用语法。
函数[successSearch, xb, fb, funccount] =...searchfcntemplate(有趣,x, A、b Aeq,说真的,磅,乌兰巴托,...optimValues选项)
搜索函数有以下输入参数:
有趣的
——目标函数x
——当前点A、b
-线性不等式约束Aeq,说真的
-线性等式约束磅,乌兰巴托
—下限和上限约束optimValues
—可以设置搜索选项的结构。该结构包含以下字段:x
——当前点fval
-目标函数值在x
迭代
-当前迭代次数funccount
-用户功能评估计数器规模
-缩放因子用于缩放设计点problemtype
-传递给搜索例程的标志,指示问题是否存在无约束的
,“boundconstraints”
,或“linearconstraints”
.该字段是非线性约束问题的子问题类型。meshsize
-搜索步骤中使用的当前网格尺寸方法
-上次迭代使用的方法
选项
-模式搜索选项
该函数有以下输出参数:
successSearch
-一个布尔标识符,表示搜索是否成功xb, fb
-用搜索法找到最佳点和最佳函数值funccount
-搜索方法中用户功能评估的个数
看到搜索和调查了一个例子。
完成搜索
的UseCompleteSearch
选项在设置时应用SearchFcn
来“GPSPositiveBasis2N”
,“GPSPositiveBasisNp1”
,“GSSPositiveBasis2N”
,“GSSPositiveBasisNp1”
,“MADSPositiveBasis2N”
,“MADSPositiveBasisNp1”
,或“searchlhs”
.UseCompleteSearch
可以有价值真正的
或假
.
对于poll算法的搜索函数,UseCompleteSearch
和投票选项的意思相同吗UseCompletePoll
.的意义UseCompleteSearch
有关拉丁超立方搜索,请参阅“searchlhs”
进入搜索选项.
网格选项
网格选项控制模式搜索使用的网格。可以使用以下选项。
InitialMeshSize
指定初始网格的大小,它是从初始点到网格点的最短向量的长度。InitialMeshSize
必须是正标量。默认值是1.0
.MaxMeshSize
指定网格的最大大小。当达到最大尺寸时,网格尺寸在成功迭代后不会增加。MaxMeshSize
必须是一个正标量,并且仅在选择GPS或GSS算法作为Poll或Search方法时使用。默认值为正
.MADS使用的最大大小为1
.AccelerateMesh
指定当网格尺寸很小时,是否MeshContractionFactor
乘以0.5
在每次不成功的迭代之后。AccelerateMesh
可以有价值真正的
(用加速器)假
(不使用加速器),默认。AccelerateMesh
仅适用于GPS和GSS轮询算法和“经典”
算法. .MeshRotate
仅适用于PollMethod
是“GPSPositiveBasisNp1”
或“GSSPositiveBasisNp1”
.MeshRotate
=“上”
指定当网格大小小于的1/100时,网格向量乘以-1MeshTolerance
不成功轮询后的选项。换句话说,第一次轮询失败后用小网格尺寸,而不是轮询方向e我(单位正向方向)和-Σe我,算法沿-方向轮询e我和Σe我.MeshRotate
可以有价值“关闭”
或“上”
(默认)。MeshRotate
对于不连续函数特别有用。当问题有等式约束时,
MeshRotate
是禁用的。
ScaleMesh
指定算法是否通过仔细地将模式向量乘以与当前点(或对于无约束问题,初始点)的分量绝对值的对数成正比的常数来缩放网格点。ScaleMesh
可以有价值假
或真正的
(默认)。当问题有等式约束时“经典”
算法,ScaleMesh
是禁用的。MeshExpansionFactor
指定在成功轮询后增加网格大小的因子。默认值为2.0
,这意味着网格的大小乘以2.0
成功投票后。MeshExpansionFactor
必须是一个正标量,并且仅在选择GPS或GSS方法作为Poll或Search方法和算法
选择是“经典”
.麦斯使用一个MeshExpansionFactor
的4.0
.看到网格的膨胀和收缩为更多的信息。MeshContractionFactor
指定轮询失败后网格尺寸减小的因子。默认值为0.5
,这意味着网格的大小乘以0.5
在投票失败后。MeshContractionFactor
必须是一个正标量,并且仅在选择GPS或GSS方法作为Poll或Search方法和算法
选择是“经典”
.麦斯使用一个MeshContractionFactor
的0.25
.看到网格的膨胀和收缩为更多的信息。
约束参数
有关惩罚参数含义的信息,请参见非线性约束求解算法.
InitialPenalty
—指定非线性约束算法使用的惩罚参数的初始值。InitialPenalty
必须大于或等于1
,默认为10
.PenaltyFactor
-当问题没有解决到要求的精度和约束条件不满足时,增加惩罚参数。PenaltyFactor
必须大于1
,默认为One hundred.
.
TolBind
指定从当前点到可行域边界相对于线性约束的距离的公差。这意味着TolBind
指定线性约束何时处于活动状态。TolBind
不是停止的标准。主动线性约束改变点的模式patternsearch
用于轮询或搜索。的默认值。TolBind
是1 e - 3
.
缓存选项
模式搜索算法可以保留它已经轮询过的点的记录,因此它不必对同一个点进行多次轮询。如果目标函数需要相对较长的计算时间,缓存选项可以加快算法的速度。为记录这些点而分配的内存称为缓存。这个选项应该只用于确定性目标函数,而不是随机目标函数。
缓存
指定是否使用缓存。选项是“上”
而且“关闭”
,默认的。当您设置缓存
来“上”
,算法不计算目标函数在内的任何网格点上的值CacheTol
缓存中的一个点。
CacheTol
指定网格点与缓存中的某个点的距离必须有多近,算法才能忽略轮询它。CacheTol
必须是正标量。默认值为每股收益
.
CacheSize
指定缓存的大小。CacheSize
必须是正标量。默认值为1 e4
.
请注意
缓存
当并行运行求解器时不能工作。
看到使用缓存为更多的信息。
停止条件
停止标准决定了是什么原因导致模式搜索算法停止。模式搜索使用以下标准:
MeshTolerance
指定网格尺寸的最小公差。如果网格尺寸小于则GPS和GSS算法停止MeshTolerance
.当网格尺寸小于时,MADS 2N停止MeshTolerance ^ 2
.当网格尺寸小于时,MADS Np1停止(MeshTolerance /据nVar) ^ 2
,在那里据nVar
元素的个数是x0
.的默认值。MeshTolerance
是1 e-6
.
MaxIterations
指定算法执行的最大迭代次数。当迭代次数达到时,算法停止MaxIterations
.默认值为自变量个数的100倍。
MaxFunctionEvaluations
指定目标函数的最大求值次数。当函数求值的次数达到时,算法停止MaxFunctionEvaluations
.默认值为2000乘以自变量个数。
MaxTime
指定模式搜索算法在停止之前运行的最长时间(以秒为单位)。这还包括模式搜索算法的任何指定暂停时间。
StepTolerance
指定两个连续迭代时当前点之间的最小距离。不适用于MADS轮询。在轮询失败后,如果两个连续点之间的距离小于,算法将停止StepTolerance
而且网目尺寸小于StepTolerance
.默认值为1 e-6
.
FunctionTolerance
指定目标函数的最小公差。不适用于MADS轮询。在轮询失败后,如果上一个最佳点的函数值与当前最佳点的函数值之差小于则算法停止FunctionTolerance
,如果网格尺寸也小于StepTolerance
.默认值为1 e-6
.
看到设置解决公差了一个例子。
ConstraintTolerance
不用作停止判据。它被用来确定关于非线性约束的可行性。默认值为1 e-6
.
输出函数的选择
OutputFcn
指定模式搜索算法在每次迭代时调用的函数。用于输出函数文件myfun.m
,设置
选择= optimoptions (“patternsearch”OutputFcn = @myfun);
对于多个输出函数,输入函数句柄的单元格数组:
选择= optimoptions (patternsearch”,……OutputFcn = {@myfun1 @myfun2,...});
若要查看可用于编写自己的输出函数的模板,请输入
编辑psoutputfcntemplate
在MATLAB®命令提示符。
若要在输出函数中传递额外的参数,请使用匿名函数.
输出函数的结构
你的输出函数必须有以下调用语法:
(停止、选择optchanged) = myfun (optimvalues、期权、旗)
MATLAB传递optimvalues
,选项
,国旗
数据到输出函数,输出函数返回停止
,选项
,optchanged
数据。
输出函数有以下输入参数。
optimvalues
包含求解器当前状态信息的结构。该结构包含以下字段:x
——当前点迭代
——迭代数fval
-目标函数值在x
meshsize
-当前网目尺寸funccount
-函数求值次数方法
—上次迭代使用的方法,如“更新乘数”
或增加惩罚的
对于非线性约束问题,或“成功的调查”
,细化网格的
,或“成功的搜索”
,可能会有一个“\旋转”
后缀,表示没有非线性约束的问题TolFun
-上次迭代函数值变化的绝对值TolX
-变化的常态x
在最后一次迭代nonlinineq
-非线性不等式约束函数值为x
,仅在指定非线性约束函数时显示nonlineq
-非线性等式约束函数值为x
,仅在指定非线性约束函数时显示
选项
——选项国旗
—当前调用输出函数的状态。的可能值国旗
是“init”
——初始化状态“通路”
——迭代状态“中断”
-非线性约束问题子问题的迭代当
国旗
是“中断”
的值。optimvalues
字段应用于子问题迭代。当
国旗
是“中断”
,patternsearch
不接受变更选项
,忽略了optchanged
.
“完成”
——最终状态
传递额外的参数解释如何向输出函数提供附加参数。
输出函数返回以下参数patternsearch
:
停止
-提供了一种在当前迭代时停止算法的方法。停止
可以具有以下值。假
-算法继续到下一次迭代。真正的
—算法在当前迭代时终止。
选项
- - - - - -patternsearch
选项。optchanged
-布尔标志,指示更改为选项
.改变选项
对于后续的迭代,设置optchanged
来真正的
.
显示到命令窗口选项
显示
指定运行模式搜索时在命令行上显示的信息的数量。可用的选项有
“最终”
(默认)-显示停止的原因。“关闭”
或同等“没有”
—无显示信息。“通路”
—显示每次迭代的信息。“诊断”
—显示每次迭代的信息。此外,诊断程序还列出了一些问题信息和从默认值更改的选项。
这两个“通路”
而且“诊断”
显示以下信息:
Iter
——迭代数FunEval
-累计函数求值次数MeshSize
-当前网目尺寸FunVal
-当前点的目标函数值方法
-当前投票结果(不指定非线性约束函数)。对于非线性约束函数,方法
显示子问题解决后使用的更新方法。马克斯约束
最大非线性约束违例(仅当指定了非线性约束函数时显示)
矢量化和并行选项
您可以选择以串行、并行或向量化的方式计算目标函数和约束函数。设置UseVectorized
或UseParallel
选项真正的
使用矢量化或并行计算
请注意
的向量化或并行轮询“经典”
算法,你必须设置UseCompletePoll
来真正的
.同样的“经典”
算法,设置UseCompleteSearch
来真正的
用于向量化或并行搜索。
从R2019a开始,当您设置UseParallel
选项真正的
,patternsearch
内部覆盖UseCompletePoll
设置为真正的
所以函数是并行轮询的。
当
UseVectorized
是假
,patternsearch
每次在一个点上调用目标函数,因为它在网格点中循环。(这个假设UseParallel
的默认值为假
.)UseVectorized
是真正的
,patternsearch
同时在网格中的所有点上调用目标函数,也就是说,在对目标函数的单一调用中。如果存在非线性约束,则目标函数和非线性约束都需要向量化,以便算法以向量化的方式计算。
有关详细信息和示例,请参见向量化目标函数和约束函数.
当
UseParallel
是真正的
,patternsearch
使用您建立的并行环境(参见如何在全局优化工具箱中使用并行处理).在命令行,设置“UseParallel”
来假
计算连续。
请注意
不能同时使用向量化和并行计算。如果你设置UseParallel
来真正的
而且UseVectorized
来真正的
,patternsearch
以向量化的方式计算目标函数和约束函数,而不是并行计算。
如何评估目标函数和约束函数
假设UseCompletePoll =真正的 |
UseVectorized =假 |
UseVectorized =真正的 |
---|---|---|
UseParallel =假 |
串行 | 矢量化 |
UseParallel =真正的 |
平行 | 矢量化 |
模式搜索算法选项表
所有算法的选项可用性表
选项 | 描述 | 算法的可用性 |
---|---|---|
AccelerateMesh |
加速网目尺寸收缩。 |
GPS和GSS, |
缓存 |
与 请注意
|
所有 |
CacheSize |
缓存的大小,以点数表示。 |
所有 |
CacheTol |
指定当前网格点与缓存中的某个点必须有多近的正标量,以便 |
所有 |
ConstraintTolerance |
非线性约束的公差。 |
所有 |
显示 |
命令窗口的显示级别。 |
所有 |
FunctionTolerance |
函数值公差。 |
所有 |
InitialMeshSize |
模式搜索算法中使用的初始网格大小。 |
所有 |
InitialPenalty |
惩罚参数的初始值。 |
所有 |
MaxFunctionEvaluations |
目标函数评价的最大次数。 |
所有 |
MaxIterations |
最大迭代次数。 |
所有 |
MaxMeshSize |
轮询/搜索步骤中使用的最大网格大小。 |
GPS和GSS |
MaxTime |
允许优化的总时间(以秒为单位)。还包括模式搜索算法的任何指定暂停时间。 |
所有 |
MeshContractionFactor |
网格收缩因子,用于迭代失败时。 |
GPS和GSS, |
MeshExpansionFactor |
网格扩展因子,迭代成功时扩展网格。 |
GPS和GSS, |
MeshRotate |
在声明一个点为最优点之前,旋转模式。 |
GPS Np1和GSS Np1 |
MeshTolerance |
网目尺寸公差。 |
所有 |
OutputFcn |
模式搜索在每次迭代时调用的用户指定函数。 |
所有 |
PenaltyFactor |
点球更新参数。 |
所有 |
PlotFcn |
指定要在运行时绘图的函数。 |
所有 |
PlotInterval |
指定每隔一段时间调用plot函数。 |
所有 |
PollOrderAlgorithm |
轮询搜索方向的顺序。 |
GPS和GSS, |
PollMethod |
模式搜索中使用的轮询策略。 |
|
ScaleMesh |
自动缩放变量。 |
所有 |
SearchFcn |
指定模式搜索中使用的搜索方法。 |
所有 |
StepTolerance |
自变量公差。 |
所有 |
TolBind |
用于确定线性约束是否有效的绑定公差。 |
所有 |
UseCompletePoll |
完成当前迭代的轮询。在轮询步骤中计算所有点。 |
|
UseCompleteSearch |
当搜索方法是轮询方法时,围绕当前迭代完成搜索。计算搜索步骤中的所有点。 |
|
UseParallel |
当 |
所有 |
UseVectorized |
指定目标函数和约束函数是否向量化。 |
所有 |