主要内容

搜索和轮询

定义的搜索

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为变量的数量,仅在第一次迭代时进行搜索。要更改设置,请参见搜索选项

何时使用搜索

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

增加速度的搜索方法

通常,您事先并不知道搜索方法是否加快了优化。所以在以下情况下尝试搜索方法:

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

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

搜索并不总是加速优化。举个例子搜索和调查

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

由于搜索方法在投票方法之前运行,所以使用搜索就相当于为优化选择一个不同的起点。这一评论适用于内尔德米德,遗传算法,以及拉丁超立方体搜索方法,所有这些方法都在优化开始时默认运行一次。遗传算法而拉丁超立方体搜索是随机的,可以搜索多个盆地的吸引力

相关的话题