[Ipopt] Same initialization but different solutions (not the case with fmincon or KNitro)

Bailin Deng bailin.deng at epfl.ch
Tue May 27 18:08:05 EDT 2014


In the examples where you observed different results in different runs, did you code the gradient evaluation by yourself?

I am not familiar with the matlab interface. But one thing that might be worth checking is to see if your code uses uninitialized variables. The values of such variables might be different in different runs, which might cause the problem you observed. Since you mentioned approximate gradient gives you the same result every time, your function evaluation code is probably fine because the gradient is approximated using finite difference. So you might wanna check your gradient evaluation code.

Best,
Bailin 
________________________________________
From: ipopt-bounces at list.coin-or.org [ipopt-bounces at list.coin-or.org] on behalf of Arnaud Barré [arnaud.barre at gmail.com]
Sent: Tuesday, May 27, 2014 11:42 PM
To: ipopt at list.coin-or.org
Subject: Re: [Ipopt] Same initialization but different solutions (not the       case    with fmincon or KNitro)

I continue to dig the problem. I modified the Malab examples ‘examplehs038’ and ‘examplehs071’ furnished with Ipopt to use only approximation methods (i.e approximation of the gradient and the hessian). I have approximately  the same result than the original example (absolute max difference around 5e-7) and the results are the same when I run the functions several times.

So my problem seems not related to my configuration of Ipopt. On the other hand, as my Matlab code works fine with other solvers (fmincon and KNitro), I would say that this part is also good …

Is there anything else I could attempt to find my problem?

Thanks,

Arnaud

On May 22, 2014, at 4:46 PM, Arnaud Barré <arnaud.barre at gmail.com> wrote:

> Hi,
>
> I use Ipopt in Matlab and I have approximately the same results than fmincon (interior-point) or KNitro (direct).
>
> I did a test where I run multiple times the same problem (i.e same initial conditions, same configurations) with the three algorithms. I have exactly the same results each time for fmincon and KNitro but not for Ipopt.
>
> If I look in the output of Ipopt (print level 5), I can see a difference in the objective value after some iterations (see the end of this message for some examples). What could be the reason?
>
> My problem is bound constrained only (as summarized below) using a monotone mu strategy, a partial derivate gradient approximation, a hessian approximation (limited-bfgs, max history 10) and the linear solver ma57. The other algorithms (fmincon, KNitro) are configured exactly with the same optons.
>
> Thanks,
>
> Arnaud
>
> This is Ipopt version 3.11.0, running with linear solver ma57.
>
> 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……………………….: 9
> variables with only lower bounds: 0
> variables with lower and upper bounds: 9
> 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
>
> ------------------------------------------------------------------------------------
> First 10 iterations / run #1
> ------------------------------------------------------------------------------------
> iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
>   0  6.8420967e+03 0.00e+00 1.00e+02  -1.0 0.00e+00    -  0.00e+00 0.00e+00   0
>   1  4.9813866e+02 0.00e+00 3.67e+01  -1.0 4.35e+01    -  1.30e-02 2.21e-02f  1
>   2  2.9178274e+02 0.00e+00 3.13e+01  -1.0 4.12e-01    -  8.23e-01 7.58e-01f  1
>   3  1.5348471e+02 0.00e+00 1.85e+01  -1.0 8.93e-02    -  1.67e-01 1.00e+00f  1
>   4  1.4216085e+02 0.00e+00 4.43e+00  -1.0 4.92e-02    -  9.90e-01 1.00e+00f  1
>   5  1.3684436e+02 0.00e+00 1.89e+00  -1.0 2.75e-02    -  1.00e+00 1.00e+00f  1
>   6  1.3270432e+02 0.00e+00 1.64e+00  -1.0 2.79e-02    -  1.00e+00 1.00e+00f  1
>   7  9.0484123e+01 0.00e+00 4.07e+00  -1.0 2.08e-01    -  6.69e-01 1.00e+00f  1
>   8  3.5107864e+01 0.00e+00 5.58e+00  -1.0 3.94e-01    -  1.00e+00 7.24e-01f  1
>   9  4.3406913e+01 0.00e+00 8.46e+00  -1.0 5.44e-01    -  1.00e+00 2.50e-01f  3
>
> ------------------------------------------------------------------------------------
> First 10 iterations / run #2 (the difference starts at the iteration 7)
> ------------------------------------------------------------------------------------
>   0  6.8420967e+03 0.00e+00 1.00e+02  -1.0 0.00e+00    -  0.00e+00 0.00e+00   0
>   1  4.9813866e+02 0.00e+00 3.67e+01  -1.0 4.35e+01    -  1.30e-02 2.21e-02f  1
>   2  2.9178274e+02 0.00e+00 3.13e+01  -1.0 4.12e-01    -  8.23e-01 7.58e-01f  1
>   3  1.5348471e+02 0.00e+00 1.85e+01  -1.0 8.93e-02    -  1.67e-01 1.00e+00f  1
>   4  1.4216085e+02 0.00e+00 4.43e+00  -1.0 4.92e-02    -  9.90e-01 1.00e+00f  1
>   5  1.3684436e+02 0.00e+00 1.89e+00  -1.0 2.75e-02    -  1.00e+00 1.00e+00f  1
>   6  1.3270432e+02 0.00e+00 1.64e+00  -1.0 2.79e-02    -  1.00e+00 1.00e+00f  1
>   7  9.0484115e+01 0.00e+00 4.07e+00  -1.0 2.08e-01    -  6.69e-01 1.00e+00f  1
>   8  3.5107870e+01 0.00e+00 5.58e+00  -1.0 3.94e-01    -  1.00e+00 7.24e-01f  1
>   9  4.3406888e+01 0.00e+00 8.46e+00  -1.0 5.44e-01    -  1.00e+00 2.50e-01f  3
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt


_______________________________________________
Ipopt mailing list
Ipopt at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/ipopt



More information about the Ipopt mailing list