[Ipopt] inf_du doesn't get smaller

Sean C McDuffee scmcduff at blueskystudios.com
Wed Dec 10 12:20:28 EST 2014


I have a problem that results in output like:

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du 
alpha_pr  ls
    0  3.7869112e-03 0.00e+00 3.20e-04   0.0 0.00e+00    - 0.00e+00 
0.00e+00   0
    1  3.7869106e-03 3.10e-35 3.24e-04 -11.0 3.32e-08    - 1.00e+00 
1.00e+00f  1
    2  3.7869101e-03 1.76e-37 2.26e-04 -11.0 1.92e-09    - 1.00e+00 
1.00e+00f  1
    3  3.7869104e-03 5.29e-37 2.59e-04 -11.0 7.08e-10    - 1.00e+00 
1.00e+00h  1
    4  3.7869100e-03 6.88e-36 2.57e-04 -11.0 8.14e-10    - 1.00e+00 
1.00e+00f  1
    5  3.7869104e-03 4.41e-37 2.59e-04 -11.0 8.08e-10    - 1.00e+00 
1.00e+00h  1
    6  3.7869100e-03 1.41e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00f  1
    7  3.7869104e-03 7.05e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00h  1
    8  3.7869100e-03 2.91e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00f  1
    9  3.7869104e-03 2.03e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du 
alpha_pr  ls
   10  3.7869100e-03 1.94e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00f  1
   11  3.7869104e-03 9.79e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00h  1
   12  3.7869100e-03 2.38e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00f  1
   13  3.7869104e-03 8.38e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00h  1
   14  3.7869100e-03 5.29e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00f  1
   15  3.7869104e-03 1.23e-35 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00h  1
   16  3.7869100e-03 8.82e-37 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00f  1
   17  3.7869104e-03 3.17e-36 2.59e-04 -11.0 8.13e-10    - 1.00e+00 
1.00e+00h  1

...

What could cause this and can I stop the solver effectively when the 
inf_du can't be lowered anymore?  I've tried using acceptable_tol and 
acceptable_dual_inf_tol but inf_du is still being considered for the 
acceptable_tol.  I'd like to accept an iteration here if ||d||, inf_pr, 
and change in obj are all small.





More information about the Ipopt mailing list