主要内容

运行

运行多个开始解算器

描述

例子

x= (gs问题运行GlobalSearch找到一个或多个局部解金宝搏官方网站问题

例子

x= (女士问题k运行MultiStartk开始点找到一个解或多个局部解金宝搏官方网站问题

例子

x= (女士问题startpts运行MultiStart问题从中描述的起始点startpts

例子

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

例子

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

例子

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

例子

全部折叠

建立一个有多个局部最小值的优化问题,并尝试用它来找到全局最小值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

使用默认的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]。

创建一组初始的二维点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、问题);
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次评价。

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

  • 所有的fmincon运行成功地收敛到一个局部解决方案。

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

8个本地解算器运行发现4个解。金宝搏官方网站的funcCount输出显示fmincon通过不超过40次的功能评估来达到四个解决方案。金宝搏官方网站输出没有显示有多少函数的计算fmincon跑了。大多数的2261函数计算似乎是GlobalSearch是为了评估试验点,不是为了fmincon从这些点开始。

输入参数

全部折叠

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

MultiStart解算器,指定为MultiStart对象。创建女士使用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 一个或多个本地求解器被本地求解器输出或plot函数停止运行。
-2 没有找到可行的局部最小值。
-5 MaxTime限制超过。
-8 没有找到解决方案。所有运行都有本地解算器退出标志-2或者更小,不是所有的都一样-2
-10 在用户提供的函数中遇到失败。

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

意义
funcCount 函数求值的次数。
localSolverIncomplete 运行的本地求解器的数量0出口标志。
localSolverNoSolution 运行带有负退出标志的本地求解器的数量。
localSolverSuccess 运行带有正退出标志的本地求解器的数量。
localSolverTotal 本地求解器运行的总数。
消息 退出消息。

不同的局部解,返回为的向量金宝搏官方网站GlobalOptimSolution对象。

介绍了R2010a