主要内容

GlobalSearch

发现全球最低

描述

一个GlobalSearch对象包含影响如何处理的属性(选项)运行重复运行一个本地求解器来生成GlobalOptimSolution对象。当运行时,求解器试图找到具有最低目标函数值的解。

创建

描述

例子

gs = GlobalSearch创建gs,一个GlobalSearch属性设置为默认值的求解器。

例子

gs = GlobalSearch(名称、值)使用名称-值对设置属性。

例子

gs = GlobalSearch (oldGS、名称、值)的副本oldGSGlobalSearch并使用名称-值对设置属性。

例子

gs = GlobalSearch(女士)创建gs,一个GlobalSearch的公共属性值女士MultiStart解算器。

属性

全部展开

盆地半径减小因子,指定为标量0通过1.之后盆地半径减小MaxWaitCycle连续的起点在盆地内。盆地半径减少了1 -倍BasinRadiusFactor

BasinRadiusFactor0禁用更新盆地半径。

例子:0.5

数据类型:

命令窗口显示的级别,指定为以下字符向量或字符串之一:

  • “最后一次”-事后报告总结结果运行完成。

  • “通路”—上报结果后初始化fmincon在阶段1之后,在每200个起点之后,在每次运行fmincon,除了最后的总结。

  • “关闭”——没有显示。

例子:“通路”

数据类型:字符|字符串

用于确定试验点是否在现有吸引域内的乘数,指定为非负标量。有关详细信息,请参见检查第二阶段试验点,看看fmincon是否运行

例子:0.5

数据类型:

考虑解相等时函数值的公差,指定为非负标量。金宝搏官方网站求解者认为两个解是相同的,如果它们在内部金宝搏官方网站XTolerance相互之间的相对距离和目标函数的取值范围内FunctionTolerance彼此之间的相对差异。如果这两个条件都没有满足,求解者报告的解决方案是不同的。金宝搏官方网站集FunctionTolerance0获取每次本地求解器运行的结果。集FunctionTolerance值越大,结果越少。为GlobalSearch详细信息,请参阅更新解集fmincon运行时.为MultiStart详细信息,请参阅创建GlobalOptimSolution对象

例子:1的军医

数据类型:

GlobalSearch运行的最大时间(以秒为单位),指定为正标量。GlobalSearch和它的本地解决方案停止时MaxTime从跑步开始到现在已经过去几秒钟了抽搐toc

MaxTime在运行期间不中断本地求解器,所以总时间可以超过MaxTime

例子:180本地求解器调用在180秒后第一次结束时停止求解器。

数据类型:

算法控制参数,指定为正整数。

  • 若观测到的罚函数为MaxWaitCycle连续试炼点至少是惩罚阈值,然后提高惩罚阈值PenaltyThresholdFactor).

  • 如果MaxWaitCycle连续的试点在一个盆地,然后更新该盆地的半径(见BasinRadiusFactor).

例子:40

数据类型:

阶段1的点数,指定为正整数。有关详细信息,请参见获得阶段1起点,运行

例子:1000

数据类型:

可能的起始点的数目,指定为正整数。

例子:3 e4

数据类型:

报告作为函数句柄或函数句柄单元格数组指定的求解器进度或暂停求解器。输出函数在每次本地求解器调用后运行。它们也在全局求解器开始和结束时运行。使用中描述的语法编写输出函数OutputFcn.看到GlobalSearch输出函数

数据类型:细胞|function_handle

增加惩罚阈值,指定为一个正标量。有关详细信息,请参见对较大的计数器值做出反应

例子:0.4

数据类型:

绘制求解器进度,指定为函数句柄或函数句柄的单元数组。Plot函数在每次本地求解器调用后运行。它们也在全局求解器开始和结束时运行。使用中描述的语法编写情节函数OutputFcn

有两个内置的情节函数:

  • @gsplotbestf绘制最佳目标函数值。

  • @gsplotfunccount绘制函数求值的数目。

看到MultiStart情节功能

例子:@gsplotbestf

数据类型:细胞|function_handle

运行的起始点,指定为:

  • “所有”-运行所有的起点。

  • “界限”-只运行满足边界的起始点。

  • “bounds-ineqs”-只运行满足边界和不等式约束的起始点。

GlobalSearch检查StartPointsToRun属性的第2阶段GlobalSearch算法(主循环)。有关更多信息,请参见GlobalSearch算法

例子:“界限”只运行满足所有边界的点。

数据类型:字符|字符串

考虑解相等时的距离公差,指定为非负标量。金宝搏官方网站求解者认为两个解是相同的,如果它们在内部金宝搏官方网站XTolerance相互之间的相对距离和目标函数的取值范围内FunctionTolerance彼此之间的相对差异。如果这两个条件都没有满足,求解者报告的解决方案是不同的。金宝搏官方网站集XTolerance0获取每次本地求解器运行的结果。集XTolerance值越大,结果越少。为GlobalSearch详细信息,请参阅更新解集fmincon运行时.为MultiStart详细信息,请参阅创建GlobalOptimSolution对象

例子:2的军医

数据类型:

对象的功能

运行 运行多个开始解算器

例子

全部折叠

建立一个有多个局部最小值的优化问题,并尝试用它来找到全局最小值GlobalSearch.目标是六峰驼背问题(见运行解算器).

rng默认的%的再现性gs = GlobalSearch;Sixmin = @(x)(4*x(1)^2 - 2.1*x(1)^4 + x(1)^6/3...x(1)*x(2) - 4*x(2)^2 + 4*x(2)^4;问题= createOptimProblem (“fmincon”“x0”(1、2),...“目标”sixmin,“磅”, 3, 3,乌兰巴托的, 3, 3);x =运行(gs、问题)
GlobalSearch停止了,因为它分析了所有的试验点。所有8个本地求解器运行时都收敛到一个正的本地求解器退出标志。
x =1×2-0.0898 - 0.7127

你可以请求目标函数的值为x当你打电话运行使用以下语法:

[x, fval] =运行(gs、问题)

但是,如果你忽略了请求fval,仍然可以计算的目标函数值x

fval = sixmin (x)
fval = -1.0316

考虑一个具有几个局部极小值的函数。

= @(x) x.^2 + 4*sin(5*x);fplot(有趣,[5,5])

图中包含一个坐标轴。坐标轴包含一个functionline类型的对象。

要搜索全局最小值,运行GlobalSearch使用fmincon“sqp”算法。

rng默认的%的再现性选择= optimoptions (@fmincon,“算法”“sqp”);问题= createOptimProblem (“fmincon”“目标”...有趣,“x0”3,“磅”5,乌兰巴托的5,“选项”、选择);gs = GlobalSearch;[x, f] =运行(gs、问题)
GlobalSearch停止了,因为它分析了所有的试验点。所有的23个本地求解器运行都以一个正的本地求解器退出标志收敛。
x = -0.3080
f = -3.9032

创建一个默认的MultiStart对象。

= MultiStart(女士“FunctionTolerance”2的军医,“UseParallel”,真正的)
ms = MultiStart with properties: UseParallel: 1 Display: 'final' FunctionTolerance: 2.0000e-04 MaxTime: Inf OutputFcn: [] PlotFcn: [] StartPointsToRun: 'all' XTolerance: 1.0000e-06 .使用实例

创建一个GlobalSearch对象的可用属性女士

gs = GlobalSearch(女士)
gs = GlobalSearch with properties: NumTrialPoints: 1000 BasinRadiusFactor: 0.2000 DistanceThresholdFactor: 0.7500 MaxWaitCycle: 20 NumStageOnePoints: 200 PenaltyThresholdFactor: 0.2000 Display: 'final' FunctionTolerance: 2.0000e-04 MaxTime: Inf OutputFcn: [] PlotFcn: [] StartPointsToRun: 'all' XTolerance: 1.0000e-06

gs具有相同的非默认值FunctionTolerance作为女士.但gs不使用UseParallel财产。

创建一个GlobalSearch对象与一个FunctionTolerance1的军医

gs = GlobalSearch (“FunctionTolerance”1)的军医
gs = GlobalSearch with properties: NumTrialPoints: 1000 BasinRadiusFactor: 0.2000 DistanceThresholdFactor: 0.7500 MaxWaitCycle: 20 NumStageOnePoints: 200 PenaltyThresholdFactor: 0.2000 Display: 'final' FunctionTolerance: 1.0000e-04 MaxTime: Inf OutputFcn: [] PlotFcn: [] StartPointsToRun: 'all' XTolerance: 1.0000e-06

更新XTolerance财产1 e - 3StartPointsToRun财产“界限”

gs = GlobalSearch (gs,“XTolerance”1 e - 3,“StartPointsToRun”“界限”
gs = GlobalSearch with properties: NumTrialPoints: 1000 BasinRadiusFactor: 0.2000 DistanceThresholdFactor: 0.7500 MaxWaitCycle: 20 NumStageOnePoints: 200 PenaltyThresholdFactor: 0.2000 Display: 'final' FunctionTolerance: 1.0000e-04 MaxTime: Inf OutputFcn: [] PlotFcn: [] StartPointsToRun: 'bounds' XTolerance: 1.0000e-03

您还可以使用点符号一次更新一个属性。

gs。MaxTime = 1800
gs = GlobalSearch with properties: NumTrialPoints: 1000 BasinRadiusFactor: 0.2000 DistanceThresholdFactor: 0.7500 MaxWaitCycle: 20 NumStageOnePoints: 200 PenaltyThresholdFactor: 0.2000 Display: 'final' FunctionTolerance: 1.0000e-04 MaxTime: 1800 OutputFcn: [] PlotFcn: [] StartPointsToRun: 'bounds' XTolerance: 1.0000e-03

算法

算法的详细描述请参见GlobalSearch算法.Ugray et al。[1]描述算法和生成试验点的散点搜索方法。

参考文献

Ugray, Zsolt, Leon Lasdon, John Plummer, Fred Glover, James Kelly, and Rafael Martí。分散搜索和局部NLP求解:全局优化的多启动框架.INFORMS Journal of Computing, Vol. 19, No. 3, 2007, pp. 328-340。

介绍了R2010a