主要内容

多种解决方案金宝搏官方网站

对多个解决方案金宝搏官方网站

通过调用金宝搏官方网站与语法

[x,fval,eflag,output,manymins]=run(…);

manymins是解决方案对象的向量;请参见全局最优解.的manymins向量按目标函数值的顺序排列,从最低(最佳)到最高(最差)。每个解决方案对象包含以下属性(字段):

  • X-局部最小值

  • Fval-目标函数在X

  • 出口滞后-本地解算器的退出标志(在“本地解算器函数参考”页面中描述:铁铬镍铁合金出口滞后,fminunc出口滞后,最小二乘拟合出口滞后解非线性最小二乘问题出口滞后

  • 输出-本地解算器的输出结构(在“本地解算器函数参考”页中描述:铁铬镍铁合金输出,fminunc输出,最小二乘拟合输出解非线性最小二乘问题输出

  • X0-指向解决方案点的起点单元格数组X

有几种方法可以检查解决方案对象的向量:

  • 在MATLAB中®工作区浏览器。双击解决方案对象,然后双击变量编辑器中的结果显示。

  • 使用点表示法。全局最优解属性是大写。使用适当的大写来访问属性。

    例如,要查找函数值的向量,请输入:

    fcnvals=[manymins.Fval]fcnvals=-1.0316-0.2155 0

    获取导致函数值最低的所有起始点(函数的第一个元素)的单元格数组manymins),输入:

    smallX0=manymins(1).X0
  • 绘制一些字段值。例如,查看结果的范围Fval,输入:

    直方图([manymins.Fval],10)

    这将产生一个计算函数值的直方图。(图中显示的是来自不同例子的直方图,与之前的几张图不同。)

改变不同解的定义金宝搏官方网站

在获得多个局部解之后,您可能会发现您的公差不合适。您可以有比您想要的更多的局部解,这些局部解之间的间距金宝搏官方网站太近。或者您可以有比您想要的更少的解,但全球研究多部分聚集了太多的解决方案。金宝搏官方网站

若要处理此情况,请使用不同的公差再次运行解算器容忍度功能公差公差确定解算器如何将其输出分组到全局最优解向量。这些公差是全球研究多部分对象。

例如,假设您想使用活动集算法铁铬镍铁合金解决问题使用MultiStart运行的示例。进一步假设您希望公差为0.01两者皆有容忍度功能公差.的方法对目标函数值在金宝搏官方网站功能公差彼此之间,孰轻孰重,孰轻孰重容忍度相互分离。要获得解决方案:

%%设置随机流以获得完全相同的输出%rng(14,'twister')ms=multistat('FunctionTolerance',0.01,'xtolence',0.01);opts=optimoptions(@fmincon,'Algorithm','active-Set');sixmin=@(x)(4*x(1)^2-2.1*x(1)^6/3…+x(1)*x(2)-4*x(2+4*x(2)^4);problem=createproblem('fmincon',',…'objective',sixmin,'lb',[-3,-3],'ub',[3,3],…'options',opts);[xminm,fminm,flagm,outptm,someminsm]=run(ms,problem,50);MultiStart从所有起点完成运行。所有50个局部解算器运行都收敛于一个正的局部解算器出口标志。someminsm someminsm=1x5全局解算器属性:X Fval Exitflag Output X0

在这种情况下,,多部分生成五个不同的解。这里的“不同”表示解在目标函数金宝搏官方网站值或位置上的间隔大于0.01。

相关的话题