[Coin-ipopt] Inequality constraints problem.

H Jansen h.jansen at fel.tno.nl
Mon Jul 19 10:46:25 EDT 2004

I'm trying to extend the standard Fortran example (included with the
Ipopt) with a single inequality constraint, namely:

                 x1 + x2 <= 5

where the optimal values for original problem gives x1 + x2 = 5.743. I
have applied the following modifications to the example code so as to
incorporate the above modifications (modified example code is attached):


C Extra slack variable and constraint equation needed
C      parameter  (N = 5, M = 2)
      parameter  (N = 6, M = 3)


C Lower bound on slack variable
C      parameter  (NLB = 5, NUB = 4)
      parameter  (NLB = 6, NUB = 4)


C Slightly modified starting values 
C   - to have a feasible start (x1+x2=5)
C   - for slack variable         (x6>0)
C      data X      / 1d0, 5d0, 5d0, 1d0, -24d0 /
      data X      / 1d0, 4d0, 5d0, 1d0, -24d0, 0.1d0 /
C      data ILB    /   1,   2,   3,   4,     5     /
C      data BNDS_L / 1d0, 1d0, 1d0, 1d0,   0d0 /
C Lower bound for slack variable
      data ILB    /   1,   2,   3,   4,     5,     6 /
      data BNDS_L / 1d0, 1d0, 1d0, 1d0,   0d0,   0d0 /

      subroutine EV_C(N, X, M, C, DAT, IDAT)
      implicit none
      integer N, M
      double precision C(M), X(N)
      double precision DAT(*)
      integer IDAT(*)
      C(1) = X(1)*X(2)*X(3)*X(4) - X(5) - DAT(1)
      C(2) = X(1)**2 + X(2)**2 + X(3)**2 + X(4)**2 - DAT(2)
C Extra constraint equation:
C With X(6)>=0, this enforces that X(1)+X(2)-5 <= 0, so that 
C X(1)+X(2) <= 5  as required.
      C(3) = X(1)+X(2)-5.d0+X(6)

C end of example.f

I obtain the following IPOPT output:

ITER     ERR       MU      ||C||    ||D||   ALFA(X) #LS        F        
  550 .141E+02d .184E-05 .359E-02 .675E-01 .100E+01h  1 0.17944288E+02
  551 .141E+02d .184E-05 .224E-03 .171E-01 .100E+01h  1 0.17924547E+02
  552 .141E+02d .251E-08 .263E-05 .183E-02 .100E+01h  1 0.17922717E+02
  553 .141E+02d .251E-08 .263E-04 .489E-02 .100E+01h  1 0.17915952E+02
  554 .142E+02d .251E-08 .245E-02 .372E-01 .100E+01h  1 0.17863396E+02
  555 .142E+02d .251E-08 .308E-03 .160E-01 .100E+01h  1 0.17845212E+02
  556 .142E+02d .251E-08 .205E-04 .502E-02 .100E+01h  1 0.17840290E+02
  557 .142E+02d .251E-08 .733E-06 .967E-03 .100E+01h  1 0.17839397E+02
 Restoration phase problem converged.
 Maximum constraint violation   1.11479479E-09 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 .............                    557
Final value of objective function is.... 0.1783935780275719E+02
Errors at final point                      (scaled)       (unscaled)
Final maximal constraint violation is... 0.111479E-08    0.111479E-08
Final value for dual infeasibility is... 0.142122E+02    0.142122E+02
Final value of complementarity error is. 0.250594E-08    0.250594E-08
The objective function was evaluated   3196 times.
The constraints were evaluated         3196 times.
EXIT: Restoration phase cannot further improve feasibility
CPU seconds spent in IPOPT and function evaluations =          0.2700
 An error occoured after  557 Iterations.
 The error code is  18


Apparently there is a feasiblity problem but I can't figure this from
the model (the complete Fortran code of which is attached).

Has anyone some idea what's wrong?
Help is much appreciated.


Henk Jansen <h.jansen at fel.tno.nl>
TNO Physics and Electronics Laboratory

The disclaimer that applies to e-mail from
TNO Physics and Electronics Laboratory
can be found on: http://www.tno.nl/disclaimer/email.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: example.f
Type: text/x-fortran
Size: 11183 bytes
Desc: not available
Url : http://list.coin-or.org/pipermail/ipopt/attachments/20040719/b2f93f4a/attachment.bin 

More information about the Coin-ipopt mailing list