有两种方法来指定模式搜索选项,这取决于您是否使用了优化的应用程序或调用函数patternsearch
在命令行:
如果您使用的是优化的应用程序,您可以通过选择从下拉列表中选择或输入在文本字段的选项的值指定的选项。
如果您呼叫patternsearch
在命令行中,指定通过创建一个选项选项
对象使用功能optimoptions
, 如下:
选择= optimoptions (‘patternsearch’,‘Param1 value1, Param2, value2,…);
看到设置选项为例子。
在本节中,每个选项列在两个方面:
通过它的标签,因为它出现在优化应用
的字段名选项
对象
例如:
投票方法是指在优化应用程序的选项的标签。
PollMethod
指的是相应的场选项
宾语。
绘图选项,您可以在运行时从模式搜索绘图数据。当您选择情节的功能和运行模式搜索,情节窗口显示在不同的轴上的曲线。您可以通过点击在任何时间停止算法停止在绘图窗口按钮。
对于patternsearch
,情节间隔(PlotInterval
)指定连续调用的绘图功能之间的迭代次数。
方法中选择以下任何一个情节绘图功能面板的patternsearch
要么paretosearch
只有一个目标函数。
最佳函数值('psplotbestf'
)绘制最佳目标函数值。
函数计算('psplotfuncount'
)绘制函数计算的次数。
网格尺寸(“psplotmeshsize”
)绘制网格大小。
最佳点('psplotbestx'
)绘制当前的最佳点。
最大约束('psplotmaxconstr'
)绘制的最大非线性约束冲突。
自定义使您可以使用自己的绘图功能。要使用优化的应用程序指定的绘图功能,
选择自定义功能。
输入@myfun
在文本框中,其中myfun
是函数的名称。
绘图函数的构造描述了绘图功能的结构。
对于paretosearch
具有多目标功能,您可以选择'psplotfuncount'
选项,或者你通过一个手柄功能的自定义函数,或任何的以下功能。
“psplotdistance”
- 画出距离度量。看到paretosearch算法。
'psplotmaxconstr'
-绘制最大非线性约束违反。
'psplotparetof'
-绘制目标函数值。适用于三个或更少的目标。
'psplotparetox'
-绘制参数空间中的当前点。适用于三个或更小的维度。
'psplotspread'
- 绘制蔓延度量。看到paretosearch算法。
'psplotvolume'
- 画出量的度量。看到paretosearch算法。
要拨打电话时显示一个阴谋patternsearch
要么paretosearch
在命令行,设置PlotFcn
选项是一个内置的绘图功能名称或句柄绘图功能。例如,为了显示最佳函数值,设定选项
如下:
选择= optimoptions (‘patternsearch’,‘PlotFcn’,‘psplotbestf’);
要显示多条曲线,使用的单元阵列内建绘图功能名称或功能手柄的电池阵列:
options = optimoptions('patternsearch','PlotFcn', {@plotfun1, @plotfun2,…});
哪里@plotfun1
,@plotfun2
等是功能句柄积函数(上述列表中列在括号中)。
如果指定了一个以上的绘图功能,所有的情节出现在同一个窗口次要情节。右键单击任何次要情节,以获得在一个单独的窗口图形的放大版本。
曲线函数的第一行的形式
功能停止= plotfun(optimvalues,标志)
输入函数的自变量是
optimvalues
-结构,包含有关求解程序当前状态的信息。该结构包含以下字段patternsearch
:
x
- 当前点
迭代
- 迭代次数
FVAL
-目标函数值
网格尺寸
- 当前的网目尺寸
funccount
-函数计算次数
方法
- 在最后一次迭代使用方法
TolFun
-上次迭代中函数值的公差
TolX
- 公差x
在最后一次迭代值
nonlinineq
- 非线性不等式约束,指定非线性约束功能时,才显示
nonlineq
-非线性等式约束,仅在指定非线性约束函数时显示
该结构包含以下字段paretosearch
:
x
- 当前点
FVAL
-目标函数值
迭代
- 迭代次数
funccount
-函数计算次数
nonlinineq
- 非线性不等式约束,指定非线性约束功能时,才显示
nonlineq
- 非线性等式约束,总是空[]
体积
- 音量措施(见定义为paretosearch算法)
averagedistance
-距离测量(见定义为paretosearch算法)
传播
-蔓延措施(见定义为paretosearch算法)
国旗
- 其中绘图功能被称为当前状态。对于可能的值国旗
是
'在里面'
- 初始化状态
“通路”
- 迭代状态
'打断'
——中间阶段
“完成”
——最终状态
有关详细信息国旗
,请参阅输出函数的结构。
传递额外的参数(优化工具箱)解释了如何提供额外的参数的功能。
输出参数停止
提供了一种在当前迭代停止算法。停止
可以有以下值:
假
- 该算法继续到下一个迭代。
真正
- 在当前迭代算法终止。
轮询选项控制模式搜索在每次迭代中轮询网格点的方式。
投票方法(PollMethod
)指定算法使用来创建网格图案。有两种模式对于每个类的直接搜索算法的:广义模式搜索(GPS)算法,生成一组搜索(GSS)的算法,和网状自适应直接搜索(MADS)算法。这些模式是正基2N正基底N+ 1:
默认模式patternsearch
,GPS正基2N
('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]。
的GSS正基2N
模式('GSSPositiveBasis2N'
) 类似于GPS正基2N
,但调整基向量以考虑线性约束。GSS正基2N
比更有效GPS正基2N
当当前点是线性约束边界附近。
的MADS正基2N
模式(“MADSPositiveBasis2N”
)由2N随机生成的载体,其中N为目标函数的自变量个数。这是通过随机地生成完成N向量构成一个线性无关的集合,然后用这个集合和这个集合的负数得到2N向量。如上图所示,该GPS正基2N
使用线性独立身份的正和负形成图案,但是,与MADS正基2N
,模式是使用an的随机排列生成的N-通过-N在每次迭代中重新生成的线性无关的下三角矩阵。
的GPS正基
模式(“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]。
的GSS正基NP1
模式(“GSSPositiveBasisNp1”
) 类似于GPS正基NP1
,但调整基向量以考虑线性约束。GSS正基NP1
比更有效GPS正基NP1
当当前点是线性约束边界附近。
的MADS正基Np1
模式('MADSPositiveBasisNp1'
)由N随机生成的矢量,以形成正的基础上,在那里N为目标函数的自变量个数。然后,又生成一个随机向量N+1个随机生成的向量。方法时,每个迭代生成一个新模式MADS正基N+1
被选中。
对于paretosearch
只是,默认'GSSPositiveBasis2Np2'
图案采用GSS2 n
模式,并且还使用了[1 1 ... 1]
和(1 1…1]
图案。
完成调查(UseCompletePoll)
指定是否在当前网格所有的点都必须在每次迭代进行查询。完成投票可以有值上
要么离
。
如果设置完成调查来上(真正
),算法在每次迭代时轮询网格中的所有点,并在下一次迭代时选择目标函数值最小的点作为当前点。
如果设置完成调查来离(假
)、默认值,一旦找到目标函数值小于当前值的点,算法就会停止轮询。然后算法在下一次迭代中将该点设置为当前点。
对于paretosearch
只有MinPollFraction
选项指定在轮询期间调查的轮询方向的分数,而不是的二进制值UseCompletePoll
。若要指定完整的轮询,请设置MinPollFraction
来1
。要指定投票停止一旦它发现提高所有目标函数的一个点,集MinPollFraction
来0
。
轮询命令(PollOrderAlgorithm
)指定在其中算法在当前网孔搜索点的顺序。选项有
'随机'
-轮询顺序是随机的。
'成功'
-每次迭代的第一个搜索方向是算法在前一次迭代中找到最佳点的方向。在第一个点之后,算法以相同的顺序轮询网格点连续。
“连续”
- 该算法轮询网格点连续顺序,即,如在所描述的模式矢量的顺序投票方法。
的paretosearch
解算器主要使用patternsearch
选项。几个可用的内置情节功能不同;看到图解选项。以下选项仅适用于paretosearch
。
在表中,N
表示决策变量的数目。
多目标模式搜索选项
选项 | 定义 | 允许,{ 默认} 值 |
---|---|---|
ParetoSetSize |
在帕累托集点数。 | 正整数|{MAX(60,目标数)} |
ParetoSetChangeTolerance |
公差在体积或解决方案的蔓延变化。金宝搏官方网站当任一这些措施相对小于改变ParetoSetChangeTolerance ,迭代结束。有关详细信息,请参阅停止条件。 |
正标|{1E-4} |
MinPollFraction |
图案到轮询的最低分数。 | 从0到1的标量{0} |
InitialPoints |
初始点
中是否有丢失的项 |
矩阵 |
搜索选项指定一个可选的搜索,该算法可以在每次迭代之前的投票进行。如果搜索返回改善目标函数的一个点,该算法采用的是点下一个迭代,并省略了投票。请注意,如果您已经选择了相同搜索方法和投票方法,只有在Poll方法中选择的选项将被使用,但当所选的选项不同时,将同时使用这两个选项。
完成搜索(UseCompleteSearch
)当您所设搜索方法来GPS正基NP1
,GPS正基2N
,GSS正基NP1
,GSS正基2N
,MADS正基Np1
,MADS正基2N
,或拉丁方
。完成搜索可以有值上(真正
) 要么离(假
)。
对于GPS正基NP1
,MADS正基NP1,GPS正基2N
,或MADS正基2N
,完成搜索与poll选项的含义相同吗完成调查。
搜索方法(SearchFcn
)指定可选的搜索步骤。选项有
没有
([]
)(默认)指定没有搜索的一步。
GPS正基2N
('GPSPositiveBasis2N'
)
GPS正基NP1
(“GPSPositiveBasisNp1”
)
GSS正基2N
('GSSPositiveBasis2N'
)
GSS正基NP1
(“GSSPositiveBasisNp1”
)
MADS正基2N
(“MADSPositiveBasis2N”
)
MADS正基Np1
('MADSPositiveBasisNp1'
)
遗传算法
('searchga'
)指定使用遗传算法的搜索。如果您选择遗传算法
,另外两个选项出现:
迭代限制- 正整数,指定针对其执行遗传算法的搜索模式搜索的迭代次数。默认为迭代限制1。
选项-遗传算法的选项,你可以设置使用optimoptions
。
要更改默认值迭代限制和选项在命令行,使用语法
选项= optimoptions( 'patternsearch', 'SearchFcn',... {@ searchga,iterlim,optionsGA})
哪里iterlim
的值迭代限制和optionsGA
是遗传算法的选项对象。如果您不指定任何searchga
选项,然后searchga
使用相同的UseParallel
和UseVectorized
选项设置patternsearch
。
如果设置搜索方法来遗传算法
要么Nelder-Mead
,我们建议你离开迭代限制设置为默认值1
,因为执行这些搜索不止一次是不太可能改善的结果。
拉丁方
('searchlhs'
)指定拉丁超多维数据集搜索。patternsearch
为搜索生成每个点,如下所示。对于每个分量,取向量的随机排列并[1,2,...,k]的
-兰特(1,k)的
,除以k
。(k
是点数。)这个收益率k
分,与每个组件接近均匀地隔开。然后将所得的点被缩放以适合任何边界。拉丁方
使用默认的界限-1
和1
。
执行搜索的方式取决于设置的完成搜索:
如果设置完成搜索来上(真正
),该算法轮询拉丁超立方体搜索在每次迭代中随机生成的所有点,并选择目标函数值最小的点。
如果设置完成搜索来离(假
)(默认值),则该算法就停止轮询作为其认为有随机产生的点,其目标函数值是小于当前点中的一个,并选择该点为下一次迭代。
如果您选择拉丁方
,另外两个选项出现:
迭代限制- 正整数,指定针对其执行所述拉丁超立方搜索模式搜索的迭代次数。默认为迭代限制1。
设计水平- - -设计水平是点数patternsearch
搜索,一个正整数。默认为设计水平是维数的15倍。
要更改默认值迭代限制和设计水平在命令行,使用语法
options = optimoptions('patternsearch','SearchFcn', {@searchlhs,iterlim,level})
哪里iterlim
的值迭代限制和水平
的值设计水平。
Nelder-Mead
('searchneldermead'
)指定使用搜索fminsearch
,它使用内尔德-米德算法。如果您选择Nelder-Mead
,另外两个选项出现:
迭代限制- 正整数,指定针对其执行所述内尔德-米德搜索模式搜索的迭代次数。默认为迭代限制1。
选项-功能的选项fminsearch
,您可以创建一个使用功能optimset
。
要更改默认值迭代限制和选项在命令行,使用语法
选项= optimoptions( 'patternsearch', 'SearchFcn',... {@ searchneldermead,iterlim,optionsNM})
哪里iterlim
的值迭代限制和optionsNM
是搜索功能的选项。
自定义
使您能够编写自己的搜索功能。要使用优化应用指定搜索功能,
组搜索功能来自定义
。
组功能名称来@myfun
,其中myfun
是函数的名称。
如果你使用patternsearch
在命令行,set
选项= optimoptions( 'patternsearch', 'SearchFcn',@ myfun);
要查看可用于编写自己的搜索函数的模板,请输入
编辑searchfcntemplate
下一节描述搜索函数的结构。
你的搜索功能必须具备以下调用语法。
函数[successSearch,xBest,fBest,funccount] = searchfcntemplate(乐趣,X,A,B,AEQ,BEQ,LB,UB,... optimValues,选项)
搜索功能具有以下输入参数:
开玩笑
——目标函数
x
- 当前点
A,B
- 线性不等式约束
AEQ,BEQ
-线性等式约束
LB,UB
-下界和上界约束
optimValues
- 结构,使您可以设置搜索选项。该结构包含以下字段:
x
- 当前点
FVAL
-目标函数值atx
迭代
-当前迭代次数
funccount
- 计数器用户功能评测
规模
- 比例系数用来缩放设计要点
problemtype
- 旗传递给搜索程序,指出问题是否是“无约束”
,'boundconstraints'
,或“linearconstraints”
。这个域是非线性约束问题的子问题类型。
网格尺寸
- 在搜索步骤中所用电流目尺寸
方法
- 在最后一次迭代使用方法
选项
-模式搜索选项
该功能具有以下输出参数:
successSearch
- 标识符指示一个布尔是否搜索成功与否
xBest,fBest
-通过搜索方法找到最佳点和最佳函数值
funccount
- 用户功能评价的检索方法号码
看到使用搜索方法的一个例子。
网格选项控制网格的模式搜索用途。下列选项可供选择。
初始大小(InitialMeshSize
)指定初始网格,这是从初始点到的网孔点的最短矢量的长度的尺寸。初始大小应该是一个积极的标量。默认值是1.0
。
最大尺寸(MaxMeshSize
)指定网格的最大大小。当达到最大尺寸时,网格尺寸在一次成功迭代后不会增加。最大尺寸必须为正的标量,并且仅在选择GPS或GSS算法作为轮询或搜索方法时使用。默认值为正
。MADS使用的最大尺寸1
。
加速器(AccelerateMesh
)指定当网格大小较小时收缩系数乘以0.5
之后的每个不成功的迭代。加速器可以有值上
要么离
(默认)。加速器适用于GPS和GSS算法。
旋转(MeshRotate
)只适用于投票方法被设置为GPS正基NP1
要么GSS正基NP1
。它指定由-1网格向量是否被相乘当网孔尺寸小于网孔公差的1/100(最小网目尺寸MeshTolerance
)不成功的调查之后。在方向换句话说,具有小筛目尺寸的第一不成功轮询之后,代替轮询e我(单元正方向)和-Σe我,算法在方向轮询-e我和Σe我。旋转可以有值离
要么上
(默认值)。当问题具有平等的限制,旋转被禁用。
旋转为不连续的功能特别有用。
更改旋转有在投票时没有任何影响投票方法被设置为GPS正基2N
,GSS正基2N
,MADS正基2N
,或MADS正基Np1
。
规模(ScaleMesh)
指定由常数相乘仔细模式矢量算法是否缩放网格点与电流成比例点(或者,对于无约束问题的初始点的)的分量的绝对值的对数。规模可以有值离
要么上
(默认值)。当问题具有平等的限制,规模被禁用。
膨胀系数(MeshExpansionFactor)
指定通过该筛目大小在成功轮询之后增加的因素。默认值为2.0
的,这意味着网状的尺寸是乘以2.0
后一个成功的调查。膨胀系数必须是正标量,并且当GPS或GSS方法被选择为轮询或检索方法仅使用。MADS使用的因素4.0
。
收缩系数(MeshContractionFactor)
指定在一次不成功的轮询后网格大小减小的因子。默认值为0.5
的,这意味着网状的尺寸是乘以0.5
后不成功的调查。收缩系数必须是正标量,并且当GPS或GSS方法被选择为轮询或检索方法仅使用。MADS使用的因素0.25
。
看到网扩张与收缩为更多的信息。
有关的惩罚参数的含义的信息,请参阅非线性约束求解算法。
最初的处罚(InitialPenalty
) -指定非线性约束算法使用的惩罚参数的初始值。最初的处罚必须大于或等于1
,并有一个默认10
。
惩罚因子(PenaltyFactor
) -增加惩罚参数,当问题没有解决到所需的精度和约束不满足。惩罚因子必须大于1
,并有一个默认100
。
绑定宽容(TolBind
)指定为从当前点到边界的可行区域相对于线性约束的距离公差。这表示绑定宽容
指定何时激活线性约束。绑定宽容
不是一条停止准则。有源线性约束改变点的图案patternsearch
用途轮询或搜索。默认值绑定宽容
是1 e - 3
。
模式搜索算法可以记录它已经轮询过的点,这样它就不必轮询同一点多次。如果目标函数需要较长的计算时间,缓存选项可以加快算法的速度。为记录这些点而分配的内存称为缓存。这个选项只能用于确定的目标函数,而不能用于随机函数。
高速缓存(高速缓存
)指定是否使用缓存。选项有上
和离
(默认)。当您设置高速缓存来上
,该算法不计算目标函数在任何网格点内的值公差高速缓存中的一个点。
公差(CacheTol
)指定网点必须为算法忽略轮询它在高速缓存中的一个点的距离。公差必须是正标量。默认值为EPS
。
尺寸(的CacheSize
)指定缓存的大小。尺寸必须是正标量。默认值为1E4
。
看到使用缓存为更多的信息。
停止条件决定模式搜索算法停止的原因。模式搜索使用以下条件:
网宽容(MeshTolerance
)指定为网孔尺寸最小公差。该GPS和GSS算法停止,如果网眼尺寸变得小于网宽容。当网格大小小于时,MADS 2N停止MeshTolerance ^ 2
。MADS NP1停止时的筛目大小变得小于(MeshTolerance /据nVar) ^ 2
,其中据nVar
是的元件的数量x0
。默认值MeshTolerance
是1 e-6
。
马克斯迭代(MaxIterations
)指定算法执行的最大迭代次数。当迭代次数达到时,算法停止马克斯迭代。您可以选择
100个* numberOfVariables- 最大迭代次数是独立变量(默认值)的100倍的数量。
指定-最大迭代次数的正整数
Max函数评价(MaxFunctionEvaluations
)指定目标函数评估的最大数目。该算法停止,如果功能评价河段数Max函数评价。您可以选择
2000 * numberOfVariables-函数计算的最大次数是自变量数的2000倍。
指定- 用于评价函数的最大数量的正整数
时间限制(MaxTime
)指定在停止之前的模式搜索算法运行以秒计的最大时间。这也包括任何指定的暂停时间模式搜索算法。
X宽容(StepTolerance
)指定在两个连续的迭代中的当前点之间的最小距离。不适用于MADS投票。不成功的投票后,算法停止,如果连续两次点之间的距离小于X宽容并且网格大小小于X宽容。默认值为1 e-6
。
功能公差(FunctionTolerance
)指定目标函数的最小公差。不适用于MADS投票。不成功的调查后,算法停止在上次最佳点和函数值,在当前最优点的函数值之间的差值小于功能公差,如果网格大小也小于X宽容。默认值为1 e-6
。
看到设置求解公差的一个例子。
约束宽容(ConstraintTolerance
)-约束宽容不作为停止准则。它被用来确定相对于非线性约束的可行性。
输出功能函数模式搜索每一代算法调用。要使用优化的应用程序指定输出功能,
在命令行中,集
选项= optimoptions( 'patternsearch', 'OutputFcn', 'myfun');
对于多个输出函数,输入一个函数句柄单元数组:
选项= optimoptions( 'patternsearch', 'OutputFcn',{@ myfun1,@ myfun2,...});
要查看可用于编写自己的输出函数的模板,请输入
编辑psoutputfcntemplate
在MATLAB®命令提示符。
你的输出函数必须有以下调用语法:
(停止、选择optchanged) = myfun (optimvalues、期权、旗)
MATLAB传递optimvalues
,州
和国旗
数据到您的输出功能,输出函数返回停止
,选项
和optchanged
数据。
输出功能具有以下输入参数:
optimvalues
-结构,包含有关求解程序当前状态的信息。该结构包含以下字段:
x
- 当前点
迭代
- 迭代次数
FVAL
-目标函数值atx
网格尺寸
- 当前的网目尺寸
funccount
-函数计算次数
方法
-在最后一次迭代中使用的方法,例如“更新乘数”
要么“增加处罚”
对于非线性约束问题,或“成功的投票”
,细化网格的
,或“成功的搜索”
,可能与“\旋转”
后缀,对于没有非线性约束的问题
TolFun
- 在函数值在最后一次迭代变化的绝对值
TolX
-规范的变化x
在最后一次迭代
nonlinineq
- 在非线性不等式约束函数值x
,只在指定非线性约束函数时显示
nonlineq
- 在非线性等式约束函数值x
,只在指定非线性约束函数时显示
选项
——选项
国旗
-调用输出函数的当前状态。对于可能的值国旗
是
'在里面'
- 初始化状态
“通路”
- 迭代状态
'打断'
- 一个非线性约束问题的一个子问题的迭代
当国旗
是'打断'
,值optimvalues
字段应用于子问题迭代。
当国旗
是'打断'
,patternsearch
不接受更改吗选项
和忽略optchanged
。
“完成”
——最终状态
传递额外的参数(Optimization Toolbox)说明如何向输出函数提供附加参数。
输出函数将以下参数返回给patternsearch
:
停止
- 提供一个方法在当前迭代停止算法。停止
可以有以下值。
假
- 该算法继续到下一个迭代。
真正
- 在当前迭代算法终止。
选项
- - - - - -patternsearch
选项。
optchanged
-布尔标志,指示更改到选项
。改变选项
对于后续迭代,设置optchanged
来真正
。
显示器的水平(“显示”
)指定在模式搜索运行时在命令行显示多少信息。可用的选项有
离
(“关闭”
) -不显示输出。
迭代
(“通路”
) - 信息显示每个迭代。
诊断
('诊断'
) - 信息显示每个迭代。此外,诊断列出了一些问题的信息和从默认更改的选项。
最后
(“最后一次”
) - 原因是显示停止。
这两个迭代
和诊断
显示以下信息:
Iter
- 迭代次数
FunEval
- 功能评估的累计数
MeshSize
- 当前的网目尺寸
FunVal
- 当前点的目标函数值
方法
- 当前投票的结果(没有非线性约束功能指定)。随着非线性约束功能,方法
显示子问题解决后使用的更新方法。
马克斯约束
-最大非线性约束违反(仅在指定非线性约束函数时显示)
默认值显示器的水平是
离
在优化应用
“最后一次”
在使用以下方法创建的选项中optimoptions
您可以选择在串行,并行计算你的目标和约束功能,或者在向量化的方式。这些选项的可用用户功能评测的部分选项优化应用程序的窗格,或通过设置“UseVectorized”
和'UseParallel'
与选项optimoptions
。
您必须设置'UseCompletePoll'
来真正
对于patternsearch
使用向量化或并行轮询。类似地,组“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 |
指定在情节的功能将在每个时间间隔被调用。 |
所有 |
PollingOrder |
顺序搜索方向调查。 |
GPS和GSS |
PollMethod |
模式搜索中使用的轮询策略。 |
所有 |
ScaleMesh |
变量的自动缩放。 |
所有 |
SearchFcn |
指定在搜索模式搜索的方法。 |
所有 |
StepTolerance |
自变量的公差。 |
所有 |
TolBind |
结合耐受用来确定是否线性约束是有效的。 |
所有 |
UseCompletePoll |
完成当前迭代的轮询。在一个轮询步骤中评估所有的点。 |
所有 |
UseCompleteSearch |
当搜索方法为轮询方法时,完成围绕当前迭代的搜索。计算搜索步骤中的所有点。 |
所有 |
UseParallel |
当 |
所有 |
UseVectorized |
指定是否客观和约束功能量化。 |
所有 |