[Coin-ipopt] "Restoration phase is called at point that is almost feasible"

Sebastian Nowozin nowozin at gmail.com
Mon Jan 14 13:00:26 EST 2008


Hello,

I am using IpOpt 3.3.4 together with the Matlab interface.  As linear
solver I use MUMPS.  I use IpOpt to solve a convex optimization
problem with strictly convex objective and linear equality and
inequality constraints.

The options used are:
jac_c_constant=yes
mu_strategy=adaptive
tol=1e-7

Everything worked fine but now I can reproduce a solver failure where
the problem is not particularly ill-scaled.  A very similar problem
(slightly perturbed) works, but this one problem does not.  In the
mailing list archive there was a similar error output, however there
was never a reply to the original mail.

The output upon failure is as follows.

Number of nonzeros in equality constraint Jacobian...:     1680
Number of nonzeros in inequality constraint Jacobian.:       80
Number of nonzeros in Lagrangian Hessian.............:       40

Total number of variables............................:       81
                     variables with only lower bounds:       80
                variables with lower and upper bounds:        0
                     variables with only upper bounds:        0
Total number of equality constraints.................:       41
Total number of inequality constraints...............:       40
        inequality constraints with only lower bounds:        0
   inequality constraints with lower and upper bounds:        0
        inequality constraints with only upper bounds:       40

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  2.3025851e+00 1.00e-01 9.76e-01   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  6.9077652e+00 1.00e-03 2.45e+01  -7.1 1.00e-01    -  9.90e-01 9.90e-01h  1
   2  1.1513926e+01 9.99e-06 2.45e+03  -2.2 5.87e-01    -  9.90e-01 9.90e-01h  1
   3  1.6223433e+01 9.00e-08 2.73e+05  -0.9 1.16e+03    -  1.00e+00 9.91e-01f  1
   4  2.5111654e+01 2.27e-13 2.42e+09  -7.4 3.37e-02    -  9.90e-01 1.00e+00h  1
   5  2.4418639e+01 1.86e-11 1.21e+09  -3.5 2.90e+04    -  2.20e-01 1.00e+00f  1
   6  2.4588951e+01 1.23e-11 8.41e+08  -3.5 2.43e+04    -  4.04e-01 3.42e-01h  1
   7  2.4724478e+01 7.44e-12 5.45e+08  -3.5 2.90e+04    -  5.74e-01 3.93e-01h  1
   8  2.4443038e+01 2.11e-11 1.32e+08  -3.5 3.39e+04    -  1.00e+00 1.00e+00f  1
   9  2.5038225e+01 1.46e-11 5.00e+08  -3.5 1.62e+04    -  4.90e-01 1.00e+00h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  2.5032575e+01 1.46e-11 4.86e+08  -3.5 1.67e+00    -  1.00e+00 2.82e-02f  4
  11  2.4853064e+01 1.16e-11 8.95e+07  -3.5 2.37e-01    -  1.00e+00 1.00e+00f  1
  12  2.4814884e+01 1.43e-11 4.34e+06  -3.5 9.12e-02    -  1.00e+00 1.00e+00f  1
  13  2.4813334e+01 1.41e-11 1.12e+04  -3.5 1.18e-02    -  1.00e+00 1.00e+00f  1
  14  2.4813346e+01 1.77e-11 3.44e-01  -3.9 2.26e-01    -  1.00e+00 1.00e+00s 22
  15  2.4813348e+01 1.84e-11 5.74e-03  -4.0 4.61e-02    -  1.00e+00 1.00e+00s 22
Restoration phase is called at point that is almost feasible,
  with constraint violation 4.695219e-10. Abort.

What options can I use to allow a constraint violation of 1e-8 or
smaller or disable restoration in this case?  It seems the options
listed in the documentation only refer to constraint violation as
convergence check condition.

I would not like to switch the linear solver because they do not come
under a CPL-compatible license.

Thanks in advance,
Sebastian



More information about the Coin-ipopt mailing list