[Ipopt] Less Optimum solution for successive runs

Udit Gupta gupta117 at umn.edu
Thu Apr 10 02:08:00 EDT 2014


Hi,

I am using IpOpt to optimize a problem with 5 decision variables in
successive runs. My first run involves using all 5 variables (relaxing all
variables simultaneously). IpOpt terminates successfully and gives an
optimum solution. Next I relax only one variable (4th) of the 5 (keeping
other 4 variables constant from the earlier run). I find that IpOpt
provides a relatively "bad" optimum solution with higher objective value (i
am minimising my obj fn). NLP functions are being evaluated using a DAE
solver.

*First Run:*

Total number of variables............................:        5
                     variables with only lower bounds:        0
                variables with lower and upper bounds:        5
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
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 3.4059520e-001 0.00e+000 1.26e-001   0.0 0.00e+000    -  0.00e+000
0.00e+000   0
   1 3.3227739e-001 0.00e+000 5.39e-002  -5.0 6.09e-002    -  9.86e-001
1.00e+000f  1
   2 2.8068876e-001 0.00e+000 2.95e-002  -2.5 5.58e-001    -  9.75e-001
8.79e-001f  1
   3 2.7651747e-001 0.00e+000 7.72e-003  -2.6 1.62e-001    -  9.93e-001
1.00e+000f  1
   4 2.6969369e-001 0.00e+000 9.19e-003  -4.1 2.00e-001    -  9.98e-001
9.85e-001f  1
   5 2.6371187e-001 0.00e+000 1.16e-002  -4.0 7.34e-001    -  1.00e+000
5.35e-001f  1
   6 2.5342676e-001 0.00e+000 2.66e-002  -4.9 3.35e+000    -  1.00e+000
3.31e-001f  1
   7 2.3664505e-001 0.00e+000 5.43e-002  -4.2 5.52e+000    -  8.07e-001
1.00e+000f  1
   8 2.3213622e-001 0.00e+000 1.01e-002  -5.1 1.97e+000    -  1.00e+000
1.00e+000f  1
   9 2.3155882e-001 0.00e+000 6.38e-003  -3.9 5.49e-001    -  1.00e+000
1.00e+000f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du
alpha_pr  ls
  10 2.3030322e-001 0.00e+000 6.01e-003  -4.6 1.16e+000    -  9.98e-001
1.00e+000f  1
  11 2.3008095e-001 0.00e+000 4.60e-002  -2.6 3.02e+001    -  5.36e-001
2.27e-001f  2
  12 2.2783106e-001 0.00e+000 1.06e-001  -2.4 2.06e+001    -  1.00e+000
2.02e-001f  2
  13 2.1571297e-001 0.00e+000 5.67e-002  -2.3 8.77e+000    -  1.00e+000
2.21e-001f  3
  14 1.8078192e-001 0.00e+000 5.68e-002  -2.9 7.69e+000    -  9.97e-001
3.62e-001f  2
  15 1.4540550e-001 0.00e+000 8.58e-002  -3.8 6.54e+000    -  1.00e+000
3.26e-001f  1
  16 1.5533380e-001 0.00e+000 1.25e-001  -2.4 5.58e+000    -  9.45e-001
5.00e-001f  2
  17 1.4003026e-001 0.00e+000 4.40e-002  -2.6 1.05e+000    -  1.00e+000
2.93e-001f  2
  18 1.1513233e-001 0.00e+000 3.28e-002  -3.5 1.65e+000    -  1.00e+000
1.00e+000f  1
  19 1.1058175e-001 0.00e+000 5.58e-002  -3.5 7.25e-001    -  1.00e+000
1.83e-001f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du
alpha_pr  ls
  20 1.0840715e-001 0.00e+000 2.40e-002  -4.6 5.04e-001    -  1.00e+000
5.00e-001f  2
  21 1.0730184e-001 0.00e+000 2.59e-003  -4.7 8.46e-002    -  1.00e+000
4.43e-001f  1
  22 1.0693632e-001 0.00e+000 1.15e-003  -6.2 1.83e-002    -  1.00e+000
1.00e+000f  1
  23 1.0692761e-001 0.00e+000 3.95e-005  -8.0 1.93e-003    -  1.00e+000
9.85e-001f  1
  24 1.0692755e-001 0.00e+000 1.11e-004 -11.0 1.05e-003    -  1.00e+000
1.00e+000f  1
  25 1.0692753e-001 0.00e+000 1.09e-006 -11.0 6.86e-004    -  1.00e+000
1.00e+000f  1

Number of Iterations....: 25

                                   (scaled)                 (unscaled)
Objective...............:  *1.0692753478330776e-001 *
1.0692753478330776e-001
Dual infeasibility......:  1.0936467431047899e-006   1.0936467431047899e-006
Constraint violation....:  0.0000000000000000e+000   0.0000000000000000e+000
Complementarity.........:  1.0027270245806282e-011   1.0027270245806282e-011
Overall NLP error.......:  1.0936467431047899e-006   1.0936467431047899e-006


Number of objective function evaluations             = 62
Number of objective gradient evaluations             = 26
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 0
Total CPU secs in IPOPT (w/o function evaluations)   =     25.657
Total CPU secs in NLP function evaluations           =   1809.632

Optimal Solution : 5.24069, 1.21765, 5.77537e-10, *3.33815e-10*, 3.99296e-10

*Second Run: (The bold variable is changed in this run)*
Total number of variables............................:        1
                     variables with only lower bounds:        0
                variables with lower and upper bounds:        1
                     variables with only upper bounds:        0
Total number of equality constraints.................:        0
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 1.0692753e-001 0.00e+000 2.99e-002   0.0 0.00e+000    -  0.00e+000
0.00e+000   0
   1 1.0998169e-001 0.00e+000 6.45e-002  -1.1 8.05e-002    -  9.98e-001
1.00e+000f  1
   2 1.6595396e-001 0.00e+000 2.03e-002  -1.1 5.84e-001    -  1.00e+000
1.00e+000f  1
   3 1.3200249e-001 0.00e+000 4.12e-003  -1.8 2.83e-001    -  1.00e+000
1.00e+000f  1
   4 1.1346410e-001 0.00e+000 5.79e-003  -2.7 2.35e-001    -  1.00e+000
1.00e+000f  1
   5 1.0877403e-001 0.00e+000 1.68e-003  -4.0 9.49e-002    -  1.00e+000
1.00e+000f  1
   6 1.0735574e-001 0.00e+000 3.01e-004  -4.0 3.88e-002    -  1.00e+000
1.00e+000f  1
   7 1.0696293e-001 0.00e+000 3.89e-005  -6.0 1.25e-002    -  1.00e+000
1.00e+000f  1
   8 1.0692884e-001 0.00e+000 9.98e-007  -6.0 1.14e-003    -  1.00e+000
1.00e+000f  1

Number of Iterations....: 8

                                   (scaled)                 (unscaled)
Objective...............:  *1.0692884325163618e-001*
1.0692884325163618e-001
Dual infeasibility......:  9.9778841742863659e-007   9.9778841742863659e-007
Constraint violation....:  0.0000000000000000e+000   0.0000000000000000e+000
Complementarity.........:  1.3088189011168833e-006   1.3088189011168833e-006
Overall NLP error.......:  1.3088189011168833e-006   1.3088189011168833e-006


Number of objective function evaluations             = 9
Number of objective gradient evaluations             = 9
Number of equality constraint evaluations            = 0
Number of inequality constraint evaluations          = 0
Number of equality constraint Jacobian evaluations   = 0
Number of inequality constraint Jacobian evaluations = 0
Number of Lagrangian Hessian evaluations             = 0
Total CPU secs in IPOPT (w/o function evaluations)   =     20.861
Total CPU secs in NLP function evaluations           =    228.325

EXIT: Optimal Solution Found.


Objective fn value changed from *1.0692753478330776e-001 ---> *
*1.0692884325163618e-001*
Variable value changed from *3.33815e-10 ---> 4.36996e-5*

I presume that for the second run, the optimal dual is calculated in the 8
iterations but my solution degrades from the starting point.

My options:
app->Options()->SetNumericValue("tol", 1e-5);
app->Options()->SetNumericValue("constr_viol_tol", 1e-10);
app->Options()->SetNumericValue("bound_frac", 1e-15);
app->Options()->SetNumericValue("bound_push", 1e-15);
app->Options()->SetNumericValue("tiny_step_tol", 1e-10);
app->Options()->SetNumericValue("tiny_step_y_tol", 1e-10);
app->Options()->SetNumericValue("bound_relax_factor", 0);
app->Options()->SetStringValue("mu_strategy", "adaptive");
app->Options()->SetStringValue("hessian_approximation", "limited-memory");


Is there a way to avoid calculating new iterations or considering the
initial solution as the final solution?

Thank You

Regards
Udit Gupta
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20140410/b078784d/attachment.html>


More information about the Ipopt mailing list