[Ipopt] Some suggestions to speed up code sought
Stefan Vigerske
stefan at math.hu-berlin.de
Mon Nov 9 05:57:34 EST 2015
Hi,
if the structure of the Jacobian and Hessian do not change, have you
considered using ReOptimizeTNLP() instead of OptimizeTNLP()?
I haven't checked, but likely that will avoid calls that get the problem
structure (n, m, sparsity pattern).
There are also option to tell Ipopt that the Jacobian and the Hessian
are constant (jac_c_constant, jac_d_constant, hessian_constant):
http://www.coin-or.org/Ipopt/documentation/node43.html#SECTION000114070000000000000
The TNLP is mostly implemented by you, while Ipopt only defines the
interface. From the Ipopt point-of-view, it should be save to reuse the
TNLP object.
MA97 error -7 means that the matrix passed to MA97 is singular. See
http://www.hsl.rl.ac.uk/specs/hsl_ma97.pdf for a full documentation of MA97.
Stefan
On 11/09/2015 03:35 AM, jmogali at andrew.cmu.edu wrote:
> Hi,
> I would like to have some suggestions to speed up my code. I run my
> code in a loop where at each iteration I call the function
> OptimizeTNLP(); however I create a single TNLP object that calls
> OptimizeTNLP at each iteration. After every iteration, I change the
> objective function I am optimizing by a little.
>
> 1. The structure of the hessian is constant across iterations, is there a
> way to make IPOPT avoid calling eval_h with values=null be passed to my
> program at every iteration ?
> On a similar note, my Jacobian is a constant
> for all iterations, is there a way to make IPOPT avoid calling eval_jac_g
> , get_bounds_info for every iteration ?
>
> Please note that in the above question, by iterations I am NOT referring
> to those when IPOPT executes OptimizeTNLP().
>
> 2. Is it safe to reuse the TNLP object between iterations?
>
> 3. I sometimes get the message "Error return from ma97_factor. Error flag
> = -7" , does this mean the KKT matrix is singular ?
>
> Thanks,
> Jayanth
>
> _______________________________________________
> Ipopt mailing list
> Ipopt at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/ipopt
>
--
http://www.gams.com/~stefan
More information about the Ipopt
mailing list