在patternsearch
,一个搜索是在投票前运行的算法。搜索试图找到一个比现在更好的点。(较好是指目标函数值较低的。)如果搜索找到了一个更好的点,那么这个更好的点就是当前点,在该迭代中不进行轮询。如果找不到更好的点,patternsearch
执行一项民意调查。
默认情况下,patternsearch
不使用搜索。搜索,看如何使用搜索方法.
这个数字patternsearch With a Search Method包含直接搜索流程图,包括使用搜索方法。
patternsearch With a Search Method
迭代限制适用于除轮询方法外的所有内置搜索方法。如果为搜索方法选择迭代限制,则搜索将启用,直到达到迭代限制为止。之后,patternsearch
停止搜索,只进行投票。
使用搜索patternsearch
:
在优化Live Editor任务中,选择一个搜索功能指定求解器选项>算法设置>搜索功能.
在命令行上,使用搜索方法创建选项optimoptions
.例如,要使用拉丁超立方体搜索:
选择= optimoptions (“patternsearch”,“SearchFcn”, @searchlhs);
有关更多信息,包括所有内置搜索方法的列表,请参考patternsearch
函数参考页,和搜索选项选项参考部分。
您可以编写自己的搜索方法。使用中描述的语法搜索功能的结构.要在模式搜索中使用搜索方法,请将其函数句柄作为自定义
函数(SearchFcn
)选项。
问卷调查方法—您可以使用任何一种问卷调查方法作为搜索算法。patternsearch
作为搜索执行一个轮询步骤。要使这种搜索类型有效,您的搜索类型应该与您的投票类型不同。(patternsearch
如果选择的查询方式与问卷类型相同,则不进行查询。)因此,可以使用带有GSS或GPS轮询的MADS搜索,或者使用带有MADS轮询的GSS或GPS搜索。
fminsearch
,亦称Nelder-Mead -fminsearch
仅用于无约束问题。fminsearch
达到自然停止标准;这并不仅仅是一步之遥。因此,使用fminsearch
对于一个迭代。这是默认设置。要更改设置,请参见搜索选项.
遗传算法
- - - - - -遗传算法
达到自然停止标准;这并不仅仅是一步之遥。因此,使用遗传算法
对于一个迭代。这是默认设置。要更改设置,请参见搜索选项.
拉丁超立方体搜索-在搜索选项.缺省情况下,搜索次数为15n点,n为变量的数量,仅在第一次迭代时进行搜索。要更改设置,请参见搜索选项.
使用搜索方法有两个主要原因:
要加速优化(参见增加速度的搜索方法)
得到一个更好的局部解,或得到一个全球解决方案(见寻找更好的解决方案金宝搏官方网站)
通常,您事先并不知道搜索方法是否加快了优化。所以在以下情况下尝试搜索方法:
您正在对类似的问题或具有不同参数的相同问题执行重复优化。
您可以试验不同的搜索方法,以找到更低的求解时间。
搜索并不总是加速优化。举个例子搜索和调查.
由于搜索方法在投票方法之前运行,所以使用搜索就相当于为优化选择一个不同的起点。这一评论适用于内尔德米德,遗传算法
,以及拉丁超立方体搜索方法,所有这些方法都在优化开始时默认运行一次。遗传算法
而拉丁超立方体搜索是随机的,可以搜索多个盆地的吸引力.