主要内容

搜索和轮询

搜索的定义

patternsearch,一个搜索是在投票之前运行的算法。搜索试图找到一个比当前点更好的点。(较好的是指目标函数值较低。)如果搜索发现了更好的点,那么更好的点就成为当前点,并且在该迭代中不进行轮询。如果找不到更好的点,patternsearch执行问卷调查。

默认情况下,patternsearch不使用搜索。要搜索,请参见如何使用搜索方法

这个数字patternsearch与搜索方法包含直接搜索的流程图,包括使用搜索方法。

patternsearch与搜索方法

迭代限制适用于除轮询方法外的所有内置搜索方法。如果为搜索方法选择了迭代限制,则搜索将一直启用,直到达到迭代限制为止。之后,patternsearch停止搜索,只进行民意调查。

如何使用搜索方法

使用搜索patternsearch

  • 优化活编辑器任务,选择一个搜索功能指定求解选项>算法设置>搜索功能

  • 在命令行中,使用搜索方法创建选项optimoptions.例如,使用拉丁超立方搜索:

    Opts = optimoptions(“patternsearch”“SearchFcn”, @searchlhs);

    有关更多信息,包括所有内置搜索方法的列表,请参阅patternsearch函数参考页,以及搜索选项部分的选项引用。

您可以编写自己的搜索方法。使用中描述的语法搜索函数的结构.要在模式搜索中使用搜索方法,请将其函数句柄设置为自定义函数SearchFcn)选项。

内置搜索类型

  • 的搜索算法中,可以使用任何投票方法作为搜索算法“经典”算法。patternsearch将一个轮询步骤作为搜索。要使这种类型的搜索有益,您的搜索类型应该不同于您的投票类型。(patternsearch如果所选的搜索方法与调查类型相同,则不进行搜索。)因此,在GSS或GPS民意调查中使用MADS搜索,或者在MADS民意调查中使用GSS或GPS搜索。

    请注意

    时,才可以使用轮询方法作为搜索方法算法选择是“经典”

  • fminsearch,也叫Nelder-Mead -fminsearch只针对无约束的问题。fminsearch运行到其自然停止标准;这不是一蹴而就的。因此,使用fminsearch只是一次迭代。这是默认设置。若要更改设置,请参见搜索选项

  • 遗传算法- - - - - -遗传算法运行到其自然停止标准;这不是一蹴而就的。因此,使用遗传算法只是一次迭代。这是默认设置。若要更改设置,请参见搜索选项

  • 拉丁超立方搜索-在搜索选项.缺省情况下,搜索15n点,n是变量的数量,并且只在第一次迭代期间进行搜索。若要更改设置,请参见搜索选项

  • “rbfsurrogate”-如搜索选项,使用径向基函数代理进行搜索,类似于surrogateopt代理(见代理优化算法).这种搜索可以减少函数求值的次数,但相对耗时,因此最适合耗时的目标函数。

何时使用搜索

使用搜索方法有两个主要原因:

提高速度的搜索方法

一般来说,您事先并不知道搜索方法是否会加速优化。因此,在以下情况下尝试搜索方法:

  • 您正在对类似的问题执行重复优化,或者在具有不同参数的相同问题上执行重复优化。

  • 您可以尝试不同的搜索方法,以找到更短的求解时间。

搜索并不总是加速优化。举个例子,看搜索及投票

寻找更好的解决方案的方法金宝搏官方网站

由于搜索方法在轮询方法之前运行,因此使用搜索就相当于为优化选择了不同的起点。这个评论适用于Nelder-Mead,遗传算法,以及拉丁超立方搜索方法,在默认情况下,所有这些方法都在优化开始时运行一次。遗传算法和拉丁超立方搜索是随机的,可以搜索几个吸引盆地

相关的话题