主要内容

运行多个开始解算器

描述

例子

X= run(GS.问题运行Globalsearch.找到一个或多个局部解金宝搏官方网站问题

例子

X= run(女士问题K.运行多层的K.开始点以查找解决方案或多个本地解决方案金宝搏官方网站问题

例子

X= run(女士问题startpts运行多层的问题从中描述的起始点startpts

例子

[Xfval.] = (___返回目标函数值X的最佳点,使用前面语法中的任何参数。为lsqcurvefit.lsqnonlin当地的解决者,fval.包含残差的平方范数。

例子

[Xfval.ExitFlag.输出] = (___还返回描述返回条件的退出标志和描述运行迭代的输出结构。

例子

[Xfval.ExitFlag.输出金宝搏官方网站] = (___也返回一个向量的解,其中包含在运行过程中找到的不同金宝搏官方网站的局部最小值。

例子

全部折叠

创建具有几个本地最小值的优化问题,并尝试使用全局最小值使用Globalsearch.。目标是六驼驼背问题(见运行求解器).

rng默认%的再现性gs = globalsearch;六分= @(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),......'客观的',六人,“磅”, 3, 3,乌兰巴托的, 3, 3);x = run(gs,问题)
GlobalSearch停止了,因为它分析了所有的试验点。所有8个本地求解器运行时都收敛到一个正的本地求解器退出标志。
X =1×2-0.0898 - 0.7127

你可以请求目标函数的值为X当你打电话通过使用以下语法:

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

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

fval = sixmin (x)
fval = -1.0316.

使用默认的多层的目标解决六峰驼背问题(见运行求解器).

rng默认%的再现性ms = multiStart;六分= @(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),......'客观的',六人,“磅”, 3, 3,乌兰巴托的, 3, 3);[x,fval,出口,暂停,解决方案] =运行金宝搏官方网站(ms,问题,30);
MultiStart完成了所有起点的运行。所有30个本地求解器运行融合,并使用正本地求解器出口标志。

检查最佳函数值和最佳功能值的位置。

fprintf('最好的函数值是%f.\n',fval)
最佳函数值为-1.031628。
fprintf('实现该值的位置是[%f,%f]。', x)
达到该值的位置是[-0.089842,0.712656]。

创建一组初始的二维点多层的在范围内[-3,3]对于每个组件。

v = 3:0.5:3;(X, Y) = meshgrid (v);ptmatrix = [X (:), Y (:));tpoints = CustomStartPointSet (ptmatrix);

找到最小化六驼驼背问题的点(见运行求解器)通过开始多层的在点tpoints

rng默认%的再现性ms = multiStart;六分= @(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),......'客观的',六人,“磅”, 3, 3,乌兰巴托的, 3, 3);x =运行(ms,问题,tpoints)
MultiStart完成了所有起点的运行。所有169个本地求解器的运行都以一个正的本地求解器退出标志收敛。
X =1×20.0898 - -0.7127

创建具有几个本地最小值的优化问题,并尝试使用全局最小值使用Globalsearch.。目标是六驼驼背问题(见运行求解器).

rng默认%的再现性gs = globalsearch;六分= @(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),......'客观的',六人,“磅”, 3, 3,乌兰巴托的, 3, 3);[x, fval exitflag、输出解决方案金宝搏官方网站]=运行(gs、问题);
GlobalSearch停止了,因为它分析了所有的试验点。所有8个本地求解器运行时都收敛到一个正的本地求解器退出标志。

要了解什么Globalsearch.为了解决这个问题,检验了吗输出结构和金宝搏官方网站目的。

DISP(输出)
funcCount: 2245 localSolverTotal: 8 localSolverSuccess: 8 localSolverIncomplete: 0 localSolverNoSolution: 0 message: 'GlobalSearch stopped because it analyzed all the trial points....'
  • Globalsearch.评估目标函数2261次。

  • Globalsearch.粉刺从八个不同的点开始。

  • 全部粉刺运行成功地收敛到一个局部解决方案。

DISP(金宝搏官方网站解决方案)
X Fval Exitflag输出X0
x.Output.funcCount arrayfun (@ (金宝搏官方网站x),解决方案)
ans =.1×431 34 40 3

八个本地求解器运行找到了四种解决方案。金宝搏官方网站这Funccount.输出显示粉刺没有超过40个功能评估来达到四个解决方案中的每一个。金宝搏官方网站输出没有显示有多少功能评估粉刺跑步了。大多数2261个功能评估似乎是为了Globalsearch.评估试验点,不适合粉刺从这些点开始运行。

输入参数

全部折叠

Globalsearch.求解器,指定为aGlobalsearch.目的。创建GS.使用Globalsearch.命令。

多层的求解器,指定为a多层的目的。创建女士使用多层的命令。

最优化问题,指定为问题结构。创建问题使用createOptimProblem。有关详细信息,请参阅创建问题结构

例子:问题= createOptimProblem(“fmincon”、“客观”,有趣,x0, x0,“磅”,磅)

数据类型:塑造

起始点的数目,指定为正整数。多层的生成K - 1使用与相同的算法开始点RandomStartPointSet目的。多层的还使用X0.从这一点开始问题结构体。

例子:50.

数据类型:

开始点多层的,指定为acustomstartpointset.对象,作为一个RandomStartPointSet对象,或作为此类对象的单元格数组。

例子:{commanys,Orchanpts}

输出参数

全部折叠

找到的最佳点,作为真实数组返回。最佳点是具有最低目标函数值的那个。

遇到的最小目标函数值,作为实标量返回。为lsqcurvefit.lsqnonlin,目标函数是平方和的总和,也称为残差的平方标准。

退出条件汇总,以整数形式返回。

2 至少找到一个局部最小值。局部求解器的一些运行是收敛的。
1 至少找到一个局部最小值。局部求解器的所有运行都是收敛的。
0. 没有发现当地的最低限度。至少一次呼叫的本地解算器,并且至少有一个本地求解器超出了最大MaxFunctionEvaluations.容忍。
-1 一个或多个本地求解器通过本地求解器输出或绘图功能停止。
-2 找不到可行的地方最低。
-5 MaxTime限制超过。
-8 没有找到解决方案。所有运行都有本地解算器退出标志-2或者更小,不是所有的都一样-2
-10 在用户提供的函数中遇到失败。

解决方案过程详细信息,作为具有以下字段的结构。

场地 意义
Funccount. 函数求值的次数。
localsolverincomplete. 本地解算器的数量运行0.出口标志。
localSolverNoSolution 本地解算器的数量与负口标志运行。
localsolversuccess. 本地解算器的数量运行正退出标志。
localSolverTotal 本地求解器的总数运行。
信息 退出消息。

独特的本地解决方案,作为向量返金宝搏官方网站回GlobalOptimsolution.对象。

介绍了R2010a