# [Ipopt] Bound-constrained solution worst than initial guess

Rafael de Pelegrini Soares rafael at vrtech.com.br
Wed Jun 4 16:20:31 EDT 2008

```Dear all,

I'm trying to solve a small bound-constrained problem with Ipopt. I'm
giving the analytic first-order derivatives and no hessian information.

The problem is, I have a very good initial estimation of the optimum.
With my initial estimative, the objective function evaluates to
-2.6903480e+01. My initial estimate is feasible with respect to the
bounds and there is no additional constraints. My doubt is: how can
Ipopt find a solution which is worst ﻿(-2.6826471985692432e+01) than my
initial guess, if the initial guess is a feasible solution? Is that
something related with the tolerances or options?

By the way, the derivative checker cannot find any errors on my
derivatives.

It follows the output for the problem:

******************************************************************************
This program contains Ipopt, a library for large-scale nonlinear
optimization.
Ipopt is released as open source code under the Common Public License
(CPL).
******************************************************************************

NOTE: You are using Ipopt by default with the MUMPS linear solver.
Other linear solvers might be more efficient (see Ipopt
documentation).

This is Ipopt version 3.4trunk, running with linear solver mumps.

Number of nonzeros in equality constraint Jacobian...:        0
Number of nonzeros in inequality constraint Jacobian.:        0
Number of nonzeros in Lagrangian Hessian.............:        0

Total number of variables............................:        6
variables with only lower bounds:        0
variables with lower and upper bounds:        6
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 -2.6903480e+01 0.00e+00 1.23e+00   0.0 0.00e+00    -  0.00e+00
0.00e+00   0
1 -2.6773883e+01 0.00e+00 1.25e+00  -0.8 1.58e-01    -  9.66e-01
1.00e+00f  1
2 -2.6762138e+01 0.00e+00 5.53e-01  -0.8 4.36e-01    -  1.00e+00
1.00e+00f  1
3 -2.6765537e+01 0.00e+00 2.97e-02  -1.5 2.85e-02    -  1.00e+00
1.00e+00f  1
4 -2.6782839e+01 0.00e+00 1.26e-01  -2.3 5.76e-02    -  1.00e+00
1.00e+00f  1
5 -2.6813428e+01 0.00e+00 9.97e-02  -2.3 1.12e-01    -  1.00e+00
1.00e+00f  1
6 -2.6818494e+01 0.00e+00 8.18e-02  -2.3 6.85e-02    -  1.00e+00
1.00e+00f  1
7 -2.6823893e+01 0.00e+00 3.77e-02  -2.3 5.74e-02    -  1.00e+00
1.00e+00f  1
8 -2.6826132e+01 0.00e+00 3.05e-02  -3.4 9.18e-02    -  9.46e-01
1.00e+00f  1
9 -2.6826319e+01 0.00e+00 1.36e-02  -3.4 2.51e-02    -  1.00e+00
1.00e+00f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du
alpha_pr  ls
10 -2.6826439e+01 0.00e+00 2.99e-02  -3.4 1.12e-02    -  1.00e+00
1.00e+00f  1
11 -2.6826454e+01 0.00e+00 8.72e-03  -3.4 9.73e-03    -  1.00e+00
5.00e-01f  2
12 -2.6826465e+01 0.00e+00 6.14e-04  -3.4 2.86e-03    -  1.00e+00
1.00e+00f  1
13 -2.6826472e+01 0.00e+00 3.36e-04  -5.2 2.59e-03    -  1.00e+00
1.00e+00f  1
14 -2.6826472e+01 0.00e+00 2.78e-04  -5.2 3.43e-04    -  1.00e+00
1.00e+00f  1
15 -2.6826472e+01 0.00e+00 3.52e-04  -5.2 3.10e-04    -  1.00e+00
1.00e+00f  1
16 -2.6826472e+01 0.00e+00 9.92e-06  -5.2 1.90e-04    -  1.00e+00
1.00e+00f  1
17 -2.6826472e+01 0.00e+00 2.95e-06  -7.0 6.05e-05    -  1.00e+00
1.00e+00f  1
18 -2.6826472e+01 0.00e+00 4.87e-06  -7.0 5.56e-06    -  1.00e+00
1.00e+00f  1
19 -2.6826472e+01 0.00e+00 4.47e-06  -7.0 3.50e-06    -  1.00e+00
1.00e+00f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du
alpha_pr  ls
20 -2.6826472e+01 0.00e+00 1.98e-06  -7.0 2.45e-06    -  1.00e+00
2.50e-01f  3
21 -2.6826472e+01 0.00e+00 7.27e-08  -7.0 6.95e-07    -  1.00e+00
1.00e+00f  1

Number of Iterations....: 21

(scaled)                 (unscaled)
Objective...............:  -2.6826471985692432e+01
-2.6826471985692432e+01
Dual infeasibility......:   7.2654462898683632e-08
7.2654462898683632e-08
Constraint violation....:   0.0000000000000000e+00
0.0000000000000000e+00
Complementarity.........:   9.0909090910064460e-08
9.0909090910064460e-08
Overall NLP error.......:   9.0909090910064460e-08
9.0909090910064460e-08

Number of objective function evaluations             = 33
Number of objective gradient evaluations             = 22
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)   =      0.676
Total CPU secs in NLP function evaluations           =      0.000

EXIT: Optimal Solution Found.
Final g:-26.826471985692432

```