运行

运行多个开始解算器

描述

例子

x= (gs,问题)运行GlobalSearch查找一个解决方案或多个本地解决方案万博 尤文图斯问题

例子

x= (女士,问题,k)运行MultiStartk找到一个或多个本地解决方案的起始点万博 尤文图斯问题

例子

x= (女士,问题,startpts)运行MultiStart问题从开始点描述startpts

例子

(x,fval]= (___)返回目标函数值atx使用以前语法中的任何参数都可以找到最佳点。为lsqcurvefitlsqnonlin当地的解决者,fval包含残差的平方范数。

例子

(x,fval,exitflag,输出]= (___)还返回描述返回条件的退出标志和描述运行迭代的输出结构。

例子

(x,fval,exitflag,输出,万博 尤文图斯]= (___)还返回一个包含运行期间找到的不同的局部极小值的解向万博 尤文图斯量。

例子

全部折叠

创建一个具有多个局部最小值的优化问题,并尝试使用全局最小值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、问题)
全球搜索停止了,因为它分析了所有的试验点。所有8个本地求解器运行时都收敛于一个正的本地求解器退出标志。
x =1×2-0.0898 - 0.7127

您可以请求目标函数值atx当你打电话运行通过使用以下语法:

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

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

fval = sixmin (x)
fval = -1.0316

使用默认的MultiStart目的解决六驼峰驼背问题(参见运行解算器)。

rng默认的%的再现性女士= MultiStart;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, fval exitflag, outp万博 尤文图斯t,解决方案]= (30 ms、问题);
MultiStart完成了所有起点的运行。所有30个本地求解器运行时都收敛于一个正的本地求解器退出标志。

检查最佳功能值和获得最佳功能值的位置。

流('最好的函数值是%f.\n'fval)
最好的函数值是-1.031628。
流(获得这个值的位置是[%f,%f]。,x)
获得该值的位置为[-0.089842,0.712656]。

创建一组初始2d点MultiStart范围内(3、3)为每个组件。

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

找到使六峰驼峰问题最小化的点(参见运行解算器)开始MultiStarttpoints

rng默认的%的再现性女士= MultiStart;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 =运行(ms,问题,tpoints)
MultiStart完成了所有起点的运行。所有169个本地求解器运行时都收敛于一个正的本地求解器出口标志。
x =1×20.0898 - -0.7127

创建一个具有多个局部最小值的优化问题,并尝试使用全局最小值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, fval exitflag、输出解决方案万博 尤文图斯]=运行(gs、问题);
全球搜索停止了,因为它分析了所有的试验点。所有8个本地求解器运行时都收敛于一个正的本地求解器退出标志。

了解GlobalSearch为了解决这个问题,考了吗输出结构和万博 尤文图斯对象。

disp(输出)
localSolverNoSolution: 0消息:“GlobalSearch停止,因为它分析了所有的试用点……”
  • GlobalSearch对目标函数求值2261次。

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

  • 所有的fmincon运行成功地聚合到本地解决方案。

disp(万博 尤文图斯解决方案)
带有属性的GlobalOptimSolution数组:X Fval Exitflag Output X0
x.Output.funcCount arrayfun (@ (万博 尤文图斯x),解决方案)
ans =1×431 34 40 3

8次本地求解运行找到了4个解决方案。万博 尤文图斯的funcCount输出显示fmincon不超过40个函数的评估,以达到每一个解决方案的四个。万博 尤文图斯输出没有显示有多少个函数的计算值fmincon跑了。2261项功能评估中的大部分似乎都是为了GlobalSearch评估试验点,不是为了fmincon从这些点开始跑。

输入参数

全部折叠

GlobalSearch求解器,指定为aGlobalSearch对象。创建gs使用GlobalSearch命令。

MultiStart求解器,指定为aMultiStart对象。创建女士使用MultiStart命令。

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

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

数据类型:结构体

起始点的个数,指定为正整数。MultiStart生成k - 1起始点使用与a相同的算法RandomStartPointSet对象。MultiStart还使用x0点的问题结构。

例子:50

数据类型:

开始点MultiStart,指定为CustomStartPointSet对象,作为一个RandomStartPointSet对象,或作为此类对象的单元格数组。

例子:{custompts, randompts}

输出参数

全部折叠

找到最佳点,作为一个实际数组返回。最佳点是目标函数值最低的点。

遇到的最低目标函数值,作为实标量返回。为lsqcurvefitlsqnonlin,目标函数是平方和,也称为残差的平方范数。

退出条件摘要,作为整数返回。

2 至少找到一个局部最小值。一些运行的本地解算程序收敛了。
1 至少找到一个局部最小值。本地求解程序的所有运行都聚合在一起。
0 没有找到局部最小值。局部求解器至少调用一次,并且至少有一个局部求解器超过MaxIterationsMaxFunctionEvaluations公差。
1 一个或多个本地求解器运行时被本地求解器输出或绘图函数停止。
-2 没有找到可行的局部最小值。
5 MaxTime限制超过。
8 没有找到解决方案。所有运行都有本地解算器退出标志-2或者更小,不完全相等-2
-10年 在用户提供的函数中遇到的故障。

解决方案流程详细信息,以结构形式返回,包含以下字段。

意义
funcCount 函数计算的次数。
localSolverIncomplete 运行的本地求解程序的数目0出口标志。
localSolverNoSolution 使用负退出标志运行的本地求解程序的数目。
localSolverSuccess 带有正出口标志的本地求解程序运行的次数。
localSolverTotal 本地求解程序运行的总数。
消息 退出消息。

不同的局部解,作为向量返回万博 尤文图斯GlobalOptimSolution对象。

介绍了R2010a