BobyQA改变起点并计算次优结果?

时间:2014-05-20 09:08:17

标签: java algorithm optimization nonlinear-optimization apache-commons-math

我正在尝试Apache Commons Math的BobyQA算法进行绑定非线性优化。

我知道最佳(使用matlab的信任范围反射算法找到它),我对以下内容感到困惑:

我将BobyQA的起点设置为最佳,并且它评估的第一个点不是我指定的起点,而是改变了次优的起点(它改变了第一个参数)。 而且,它没有找到最小值。

示例(最佳的最小二乘 - 起点):

  

lsq(最佳)= 5.526374615719567E9 [1.0141E-7,81.15,119.03,   32.0,0.365652,4.317,8.5167,17.3,16.470001,100.13,11.242,29.042,18.871,29.92,36.147,87.826,21.287]

然后我用该起点运行BobyQA,并在第一次迭代中修改第一个参数(从1.0141E-7到0.026117):

  

lsq(1)= 1.7374657025186486E19 for [0.02611793333333286,81.15,   119.03,32.0,0.36652,4.317,8.5167,17.3,16.496117933333334,100.13,11.223249066666666,29.042,18.871,29.92,36.147,87.826,21.287]

最后它达到了次优解决方案:

  

lsq(274)= 5.526621213826441E9 [1.0115737485704292E-7,   81.14883064785045,119.02964714​​352679,32.00103316109643,0.36615877961432247,4.317235538​​618653,8.516900515414736,17.293306813210172,16.496079045753113,100.12980568809833,11.22341107874299,29.042103684597272,18.870381140825014,29.919895452015545,36.14745517499619,87.82657624240575,21.288471755903668]

其中5.5266E9大于5.5263E9。

我做错了什么?

谢谢,

伊戈尔

0 个答案:

没有答案