ipopt转到比初始点次优的解决方案

问题描述

我正在尝试使用Ipopt解决带有一组线性相等约束的优化问题。仅供参考,这是最大熵最大化,其中自变量x[i]表示离散概率分布$ p_i $,目标函数是熵。我使用的是目标函数的精确粗麻布。

我知道最佳值应该是什么,将其称为x0。至此,我初始化了ipopt并获得了目标函数的以下值和约束的最大值:

Initial point :
    Objective function = -2.829786e+00
    |constraint| = 3.350044e-16

因此,初始点满足约束条件。 然后,我运行优化并获得

This is Ipopt version 3.12.8,running with linear solver ma27.

Number of nonzeros in equality constraint Jacobian...:       32
Number of nonzeros in inequality constraint Jacobian.:        0
Number of nonzeros in Lagrangian Hessian.............:       16

Total number of variables............................:       16
                     variables with only lower bounds:        0
                variables with lower and upper bounds:       16
                     variables with only upper bounds:        0
Total number of equality constraints.................:        8
Total number of inequality constraints...............:        0
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:        0

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0 -2.8297859e+00 3.35e-16 4.29e-02   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1 -2.8341846e+00 2.23e-02 9.56e-03  -1.5 3.02e-02    -  9.91e-01 1.00e+00f  1
   2 -2.8924369e+00 3.63e-01 6.29e-01  -7.3 5.38e-01    -  6.20e-01 1.00e+00h  1
   3 -2.8919445e+00 3.72e-01 6.60e-01  -2.1 6.59e-01    -  1.00e+00 1.07e-01h  3
   4 -2.8599819e+00 3.44e-01 4.68e-01  -2.1 9.04e-01    -  1.54e-01 2.57e-01H  1
   5 -2.8575519e+00 3.54e-01 4.39e-01  -2.1 9.82e-01    -  6.26e-02 6.26e-02s 18
   6r-2.8575519e+00 3.54e-01 9.99e+02  -0.5 0.00e+00    -  0.00e+00 0.00e+00R  1
   7r-2.8624795e+00 3.52e-01 9.99e+02   0.9 2.65e+02    -  6.46e-02 1.09e-03f  1
   8r-2.8509693e+00 2.34e-01 3.05e+03   1.2 1.66e+01    -  1.00e+00 4.09e-02f  1
   9 -2.8504125e+00 2.49e-01 1.62e+00  -2.5 7.31e-01    -  9.99e-01 5.01e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10 -2.8441218e+00 2.60e-01 5.04e+00  -2.6 8.94e-01    -  1.00e+00 7.37e-02h  1
  11 -2.8443456e+00 2.62e-01 3.91e+02  -1.6 1.41e+00    -  1.00e+00 1.35e-02h  1
  12 -2.8442921e+00 2.62e-01 1.17e+06  -0.9 1.31e+00    -  1.00e+00 3.35e-04h  1
  13 -2.8442781e+00 2.61e-01 3.11e+11   1.1 5.91e+01    -  1.00e+00 3.73e-06h  1
  14 -2.6069115e+00 1.01e+00 1.19e+18   3.2 8.50e+01    -  5.71e-09 2.20e-02f  1
  15 -2.8976745e+00 6.89e-01 1.17e+18   3.2 1.74e+02    -  5.37e-02 1.61e-02h  1
  16 -2.8413504e+00 2.24e-01 1.09e+18   2.9 1.40e+01    -  1.00e+00 6.95e-02h  1
  17 -2.8410322e+00 2.22e-01 1.09e+18   3.2 9.89e-01    -  1.00e+00 2.16e-03h  1
  18 -2.8410299e+00 2.22e-01 1.09e+18   2.5 4.74e-01    -  7.63e-01 2.17e-05h  1
  19 -2.8409402e+00 2.22e-01 3.49e+19   1.8 7.29e-01    -  8.46e-01 1.76e-04h  1
   ...
    iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
     330r-2.5375236e+00 1.53e-01 5.52e+02  -3.8 2.55e-01    -  3.57e-06 3.55e-02f  1
     331r-2.5247365e+00 1.42e-01 3.32e-02  -3.8 2.53e-01    -  1.00e+00 1.00e+00f  1
     332r-2.5169362e+00 1.30e-01 4.65e-02  -3.8 2.85e-01    -  1.00e+00 3.97e-01f  1
     333r-2.5022197e+00 1.04e-01 9.55e+00  -3.8 3.00e-01    -  1.00e+00 5.10e-01f  1
     334r-2.4616744e+00 2.09e-03 5.32e+00  -3.8 4.08e-01    -  1.00e+00 7.64e-01f  1
     335 -2.4616737e+00 2.09e-03 1.05e+04  -2.6 2.52e-03    -  9.90e-01 1.99e-04h  1
     336 -2.4616735e+00 2.09e-03 4.91e+08  -2.6 6.19e-03    -  1.00e+00 2.11e-05h  1
     337r-2.4616735e+00 2.09e-03 1.00e+03  -2.6 0.00e+00    -  0.00e+00 1.24e-07R  2
     338r-2.4616714e+00 2.08e-03 8.56e+02  -4.6 2.21e-04    -  1.00e+00 1.44e-01f  1
     339r-2.4616986e+00 2.06e-03 7.39e+00  -5.3 6.94e-05    -  1.00e+00 9.91e-01f  1
    iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
     340r-2.4616923e+00 2.03e-03 2.95e-02  -6.7 9.26e-05    -  1.00e+00 9.96e-01f  1
    Restoration phase converged to a feasible point that is
    unacceptable to the filter for the original problem.
    Restoration phase in the restoration phase Failed.
    
    Number of Iterations....: 340
    
                                       (scaled)                 (unscaled)
    Objective...............:  -2.4616853232883069e+00   -2.4616853232883069e+00
    Dual infeasibility......:   1.2232224605922748e+00    1.2232224605922748e+00
    Constraint violation....:   2.0108547908308516e-03    2.0108547908308516e-03
    Complementarity.........:   7.0955202413426520e-09    7.0955202413426520e-09
    Overall NLP error.......:   7.0924941588062596e-01    1.2232224605922748e+00
    
    
    Number of objective function evaluations             = 1356
    Number of objective gradient evaluations             = 110
    Number of equality constraint evaluations            = 1373
    Number of inequality constraint evaluations          = 0
    Number of equality constraint Jacobian evaluations   = 378
    Number of inequality constraint Jacobian evaluations = 0
    Number of Lagrangian Hessian evaluations             = 341
    Total cpu secs in IPOPT (w/o function evaluations)   =      0.179
    Total cpu secs in NLP function evaluations           =      0.002
    
    EXIT: Restoration Failed!
    
    
    ERROR OCCURRED DURING IPOPT OPTIMIZATION.

如您所见,Ipopt从起点出发,朝着违反约束并具有次优目标函数解决方案前进。

你知道为什么会这样吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)