运行求解多启动

描述

X=运行(GS问题运行GlobalSearch找到一个解决方案或多个本地解决方案万博 尤文图斯问题

X=运行(多发性硬化症问题ķ运行多头ķ开始点找到一个解决方案或多个本地解决方案万博 尤文图斯问题

X=运行(多发性硬化症问题startpts运行多头问题从所描述的起始点startpts

[XFVAL] =运行(___返回在目标函数值X,最佳点发现,使用任何在前面的语法的参数。为了lsqcurvefitlsqnonlin当地求解器,FVAL含有残余的平方范。

[XFVALexitflag产量] =运行(___也返回描述返回条件的出口标志,以及输出结构描述该运行的迭代。

[XFVALexitflag产量万博 尤文图斯] =运行(___也返回包含运行过程中发现的不同的局部最小值的解决方万博 尤文图斯案的一个矢量。

例子

全部收缩

创建具有几个局部极小的优化问题,并尝试使用找到全球最低GlobalSearch。我们的目标是六驼峰的骆驼背的问题(见运行求解)。

RNG默认%用于重现GS = GlobalSearch;sixmin = @(X)(4 * X(1)^ 2  -  2.1 *×(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],'UB',[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

使用默认多头目的是解决六驼峰的骆驼背的问题(见运行求解)。

RNG默认%用于重现MS =多头;sixmin = @(X)(4 * X(1)^ 2  -  2.1 *×(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],'UB',[3,3]);[X,FVAL,exitflag,OUTPT,万博 尤文图斯溶液] =运行(MS,问题,30);
多头完成了从全部开始点运行。所有的30个地方求解器运行融合以积极的局部解算器出口标志。

检查的最佳函数值,并在那里达到最佳函数值的位置。

fprintf中(“最好函数值是%F。\ N”,FVAL)
最好的函数值是-1.031628。
fprintf中(“其中在达到该值的位置是[%F,%F]”。,X)
其中达到该值的位置是[-0.089842,0.712656]。

创建一组初始2- d点的多头范围中[-3,3]对于每个组件。

V = -3:0.5:3;[X,Y] = meshgrid(V);ptmatrix = [X(:),Y(:)];tpoints = CustomStartPointSet(ptmatrix);

找到点,最大限度地减少六驼峰的骆驼背的问题(见运行求解)通过启动多头在点tpoints

RNG默认%用于重现MS =多头;sixmin = @(X)(4 * X(1)^ 2  -  2.1 *×(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],'UB',[3,3]);X =运行(毫秒,问题,tpoints)
多头完成了从全部开始点运行。全部169个本地运行的求解器融合了局部正解算器出口标志。
X =1×20.0898 -0.7127

创建具有几个局部极小的优化问题,并尝试使用找到全球最低GlobalSearch。我们的目标是六驼峰的骆驼背的问题(见运行求解)。

RNG默认%用于重现GS = GlobalSearch;sixmin = @(X)(4 * X(1)^ 2  -  2.1 *×(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],'UB',[3,3]);[X,FVAL,exitflag,输出,溶液] 万博 尤文图斯=运行(GS,问题);
GlobalSearch停止,因为它分析了所有的试验点。所有8个当地求解器运行融合以积极的局部解算器出口标志。

要了解什么GlobalSearch没有解决这个问题,请检查产量结构和万博 尤文图斯宾语。

DISP(输出)
funcCount:2245 localSolverTotal:8 localSolverSuccess:8 localSolverIncomplete:0 localSolverNoSolution:0消息: 'GlobalSearch停止,因为它分析所有的试验点......'
  • GlobalSearch评估目标函数2261倍。

  • GlobalSearchfmincon从八个不同的点开始。

  • 全部fmincon运行成功融合到本地的解决方案。

DISP(万博 尤文图斯解决方案)
1×4 GlobalOptimSolution阵列具有属性:X FVAL Exitflag输出X0
arrayfun(@(x)的x.Output.funcCount万博 尤文图斯,解决方案)
ANS =1×431 34 40 3

八个当地求解器运行发现了四个解决方案。万博 尤文图斯该funcCount输出显示,fmincon花了不到40次功能评估,以达到四个解决方案。万博 尤文图斯输出没有显示有多少功能评估的四个fmincon运行了。大多数2261个功能评价似乎是GlobalSearch评价试验点,而不是fmincon运行从这些点开始。

输入参数

全部收缩

GlobalSearch解算器,指定为GlobalSearch宾语。创建GS使用GlobalSearch命令。

多头解算器,指定为多头宾语。创建多发性硬化症使用多头命令。

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

例:问题= createOptimProblem( 'fmincon', '目标',好玩的, 'X0',X0 'LB',磅)

数据类型:结构

开始点数,指定为正整数。多头生成期k - 1使用相同的算法作为一个起点RandomStartPointSet宾语。多头还使用X0从点问题结构体。

例:50

数据类型:

启动点多头,指定为CustomStartPointSet对象,作为一个RandomStartPointSet对象,或者作为这样的对象的单元阵列。

例:{custompts,randompts}

输出参数

全部收缩

最佳点发现,返回真正的数组。最好的一点是具有最低目标函数值。

遇到的最低目标函数值,返回作为一个真正的标量。对于lsqcurvefitlsqnonlin中,目标函数是平方和,也称为残差的平方范数。

退出条件汇总,返回一个整数。

2 在至少一个极小找到。当地求解器的一些运行收敛。
1 在至少一个极小找到。当地求解器的所有运行收敛。
0 没有当地最低发现。当地求解至少调用一次,和至少一个局部求解器超过了MaxIterations要么MaxFunctionEvaluations公差。
-1 一个或多个局部求解器停止运行由当地求解器输出或绘图功能。
-2 没有可行的当地最低发现。
-5 MAXTIME超出限制。
-8 没有找到解决方案。所有的运行出现局部求解器出口标志-2或更小,并不都是平等的-2
-10 用户提供的功能可能出现的故障。

解决方案过程中的细节,返回具有以下字段的结构。

领域 含义
funcCount 评价次数。
localSolverIncomplete 当地求解器运行数0出口标志。
localSolverNoSolution 当地求解器的数目与负出口标志运行。
localSolverSuccess 当地求解器的数量与肯定退出标志运行。
localSolverTotal 总数当地求解器运行的。
信息 退出的消息。

不同的地方解决方案,返回的向量万博 尤文图斯GlobalOptimSolution对象。

介绍了R2010a版本