# [Coin-ipopt] Maximum constraint violation

Tue Aug 30 12:00:10 EDT 2005

```Dear Andreas,

Warmly congratulations for a new version of Ipopt!

I met the following difficulty.  I ran one optimisation problem with two
tolerances 1e-4 and 1e-6.
With the first my problem converged [1](its solution is similar to
Lancelot´s) but the latter[2] does not.  Is there any numerical noise?
I tested DPRECFACT,DMOVEBOUND,IMERIT... But it is same.

My constraints has the following form:
C(x)=g1(x)+sqrt(g2(x))-const<=0 if x<>0  (its geometry is a cone with a
rounded cap)
C(x)=constant if x=0
Its gradients and derivatives are determined.

I know that Ipopt uses really smooth functions. It needs at a least twice
differentiable function.  In my case, could Ipopt solve my problem?

Does the following error mean that my constraints are not bounded at the
trial point?  Does my model have any mistake in constraint condition? Could
you recommend me how to overcome this difficulty?

Maximum constraint violation   7.07936555E-07 below tolerance.
filter: Error: resto_filter returns IERR =  18
solve_barrier: filter returns IERR =  18
mainloop: Error: solve_barrier ends with IERR =  18

Thank you so much in advance.

Danh.

[1]
******************************************************************************
This program contains IPOPT, a program for large-scale nonlinear
optimization.
IPOPT is released as open source under the Common Public License (CPL).
******************************************************************************

Going to allocate double precision work space of size            54007
integer work space of size            13715

Number of variables           :      161
of which are fixed         :        0
Number of constraints         :       82
Number of lower bounds        :        1
Number of upper bounds        :       64
Number of nonzeros in Jacobian:     1088
Number of nonzeros in Hessian :      433
get_scale: |g|_inf =   1.
get_scale: QFSCALE =   1.
get_scale: smallest CSCALE =   1.
get_scale: No scaling of constraints necessary

ITER     ERR       MU      ||C||   ||YPY||  ||PZ||     ||D||   ALFA(V)
ALFA(X)     NU   #LS       F      #cor   Regu    CPU(s)
0 .101E+03c .100E+00 .124E+03 .000E+00 .000E+00  .000E+00 .000E+00
.000E+00  .000E+00  0 -.10065946E+03  0 .000E+00 .270E-01
Constraints not dependent.
Hessian not dependent.
1 .572E+03d .100E+00 .630E+02 .000E+00 .000E+00  .156E+03 .627E-03d
.100E+01f .000E+00  1 -.80104232E+02  0 .000E+00 .350E-01
2 .176E+03d .100E+00 .614E+02 .000E+00 .000E+00  .582E+02 .281E-01p
.248E-01h .000E+00  1 -.79934027E+02  5 .100E+05 .450E-01
3 .172E+03d .100E+00 .614E+02 .000E+00 .000E+00  .570E+02 .649E-01p
.321E-03h .000E+00  1 -.79931485E+02  1 .333E+04 .510E-01
4 .363E+03d .100E+00 .610E+02 .000E+00 .000E+00  .595E+02 .128E+00p
.622E-02h .000E+00  1 -.79858141E+02  2 .889E+04 .580E-01
5 .326E+03d .100E+00 .598E+02 .000E+00 .000E+00  .595E+02 .657E-01p
.205E-01h .000E+00  1 -.79599898E+02  1 .296E+04 .650E-01
6 .359E+03d .100E+00 .586E+02 .000E+00 .000E+00  .585E+02 .180E+00p
.214E-01h .000E+00  1 -.79323396E+02  2 .790E+04 .730E-01
7 .219E+03d .100E+00 .173E+02 .000E+00 .000E+00  .580E+02 .131E+00d
.100E+01h .000E+00  1 -.66605659E+02  1 .263E+04 .790E-01
8 .425E+03d .100E+00 .301E+01 .000E+00 .000E+00  .822E+01 .532E+00d
.100E+01h .000E+00  1 -.62991091E+02  2 .702E+04 .870E-01
9 .626E+03d .100E+00 .711E+00 .000E+00 .000E+00  .150E+01 .209E-01d
.100E+01f .000E+00  1 -.62171617E+02  2 .187E+05 .950E-01

...
...

ITER     ERR       MU      ||C||   ||YPY||  ||PZ||     ||D||   ALFA(V)
ALFA(X)     NU   #LS       F      #cor   Regu    CPU(s)
1000 .353E-03p .100E-04 .965E-03 .000E+00 .000E+00  .307E-01 .100E+01
.250E+00h .000E+00  3 -.69106563E+02  0 .000E+00 .747E+01
filter: It is possible that filter blocks progress.
Wake up watchdog for next iteration.
1001 .259E-03p .100E-04 .698E-03 .000E+00 .000E+00  .241E-01 .100E+01
.250E+00h .000E+00  3 -.69106562E+02  0 .000E+00 .748E+01
1002 .113E-02p .100E-04 .396E-02 .000E+00 .000E+00  .191E-01 .100E+01
.100E+01w .000E+00  2 -.69106559E+02  0 .000E+00 .748E+01
1003 .243E-03p .100E-04 .646E-03 .000E+00 .000E+00  .191E-01 .100E+01
.250E+00J .000E+00  3 -.69106561E+02  0 .000E+00 .749E+01
1004 .179E-03p .100E-04 .470E-03 .000E+00 .000E+00  .150E-01 .100E+01
.250E+00h .000E+00  3 -.69106561E+02  0 .000E+00 .750E+01
1005 .169E-03p .100E-04 .440E-03 .000E+00 .000E+00  .120E-01 .100E+01
.250E+00h .000E+00  3 -.69106560E+02  0 .000E+00 .750E+01
1006 .126E-03p .100E-04 .325E-03 .000E+00 .000E+00  .936E-02 .100E+01
.250E+00h .000E+00  3 -.69106560E+02  0 .000E+00 .751E+01
1007 .119E-03p .100E-04 .306E-03 .000E+00 .000E+00  .746E-02 .100E+01
.250E+00h .000E+00  3 -.69106560E+02  0 .000E+00 .752E+01
filter: It is possible that filter blocks progress.
Wake up watchdog for next iteration.
1008 .892E-04p .100E-04 .231E-03 .000E+00 .000E+00  .584E-02 .100E+01
.250E+00h .000E+00  3 -.69106559E+02  0 .000E+00 .752E+01

Number of iterations taken .............                   1008
Final value of objective function is....-0.6910655927650168E+02

Errors at final point                      (scaled)       (unscaled)
Final maximal constraint violation is... 0.891716E-04    0.891716E-04
Final value for dual infeasibility is... 0.172521E-04    0.172511E-04
Final value of complementarity error is. 0.100002E-04    0.100008E-04

The objective function was evaluated   2390 times.
The constraints were evaluated         2390 times.

EXIT: OPTIMAL SOLUTION FOUND

CPU seconds spent in IPOPT and function evaluations =          7.5000

The solution was found after  1008 Iterations.

The final value of the objective function is  -69.1065593

[2]
******************************************************************************
This program contains IPOPT, a program for large-scale nonlinear
optimization.
IPOPT is released as open source under the Common Public License (CPL).
******************************************************************************

Going to allocate double precision work space of size            54007
integer work space of size            13715

Number of variables           :      161
of which are fixed         :        0
Number of constraints         :       82
Number of lower bounds        :        1
Number of upper bounds        :       64
Number of nonzeros in Jacobian:     1088
Number of nonzeros in Hessian :      433
get_scale: |g|_inf =   1.
get_scale: QFSCALE =   1.
get_scale: smallest CSCALE =   1.
get_scale: No scaling of constraints necessary

ITER     ERR       MU      ||C||   ||YPY||  ||PZ||     ||D||   ALFA(V)
ALFA(X)     NU   #LS       F      #cor   Regu    CPU(s)
0 .101E+03c .100E+00 .124E+03 .000E+00 .000E+00  .000E+00 .000E+00
.000E+00  .000E+00  0 -.10065946E+03  0 .000E+00 .280E-01
Constraints not dependent.
Hessian not dependent.
1 .572E+03d .100E+00 .630E+02 .000E+00 .000E+00  .156E+03 .627E-03d
.100E+01f .000E+00  1 -.80104232E+02  0 .000E+00 .360E-01
2 .176E+03d .100E+00 .614E+02 .000E+00 .000E+00  .582E+02 .281E-01p
.248E-01h .000E+00  1 -.79934027E+02  5 .100E+05 .470E-01
3 .172E+03d .100E+00 .614E+02 .000E+00 .000E+00  .570E+02 .649E-01p
.321E-03h .000E+00  1 -.79931485E+02  1 .333E+04 .530E-01
4 .363E+03d .100E+00 .610E+02 .000E+00 .000E+00  .595E+02 .128E+00p
.622E-02h .000E+00  1 -.79858141E+02  2 .889E+04 .600E-01
5 .326E+03d .100E+00 .598E+02 .000E+00 .000E+00  .595E+02 .657E-01p
.205E-01h .000E+00  1 -.79599898E+02  1 .296E+04 .680E-01
6 .359E+03d .100E+00 .586E+02 .000E+00 .000E+00  .585E+02 .180E+00p
.214E-01h .000E+00  1 -.79323396E+02  2 .790E+04 .750E-01
7 .219E+03d .100E+00 .173E+02 .000E+00 .000E+00  .580E+02 .131E+00d
.100E+01h .000E+00  1 -.66605659E+02  1 .263E+04 .820E-01
8 .425E+03d .100E+00 .301E+01 .000E+00 .000E+00  .822E+01 .532E+00d
.100E+01h .000E+00  1 -.62991091E+02  2 .702E+04 .900E-01
9 .626E+03d .100E+00 .711E+00 .000E+00 .000E+00  .150E+01 .209E-01d
.100E+01f .000E+00  1 -.62171617E+02  2 .187E+05 .970E-01
...
...
ITER     ERR       MU      ||C||   ||YPY||  ||PZ||     ||D||   ALFA(V)
ALFA(X)     NU   #LS       F      #cor   Regu    CPU(s)
6280 .100E+01d .100E-06 .134E-03 .000E+00 .000E+00  .730E-03 .100E+01r
.100E+01h .000E+00  1 -.67851161E+02  0 .000E+00 .598E+02
6281 .100E+01d .100E-06 .612E-04 .000E+00 .000E+00  .344E-03 .100E+01r
.100E+01h .000E+00  1 -.67851146E+02  0 .000E+00 .598E+02
6282 .100E+01d .100E-06 .286E-04 .000E+00 .000E+00  .158E-03 .100E+01r
.100E+01h .000E+00  1 -.67851154E+02  0 .000E+00 .598E+02
6283 .100E+01d .100E-06 .132E-04 .000E+00 .000E+00  .738E-04 .100E+01r
.100E+01h .000E+00  1 -.67851151E+02  0 .000E+00 .599E+02
6284 .100E+01d .100E-06 .614E-05 .000E+00 .000E+00  .341E-04 .100E+01r
.100E+01h .000E+00  1 -.67851152E+02  0 .000E+00 .599E+02
Restoration phase problem converged.
Maximum constraint violation   7.07936555E-07 below tolerance.
filter: Error: resto_filter returns IERR =  18
solve_barrier: filter returns IERR =  18
mainloop: Error: solve_barrier ends with IERR =  18

Number of iterations taken .............                   6284
Final value of objective function is....-0.6785115169842510E+02

Errors at final point                      (scaled)       (unscaled)
Final maximal constraint violation is... 0.707937E-06    0.707937E-06
Final value for dual infeasibility is... 0.100000E+01    0.100000E+01
Final value of complementarity error is. 0.100000E-06    0.100000E-06

The objective function was evaluated  75765 times.
The constraints were evaluated        75765 times.

EXIT: Restoration phase cannot further improve feasibility

CPU seconds spent in IPOPT and function evaluations =         59.8490

An error occoured after  6284 Iterations.
The error code is  18

_________________________________________________________________