[Ipopt] Testing IPOPT on a black block problem

Andreas Waechter andreasw at watson.ibm.com
Mon Apr 13 12:43:11 EDT 2009

Hi Michael,

Ipopt needs at least first derivatives, second derivatives can be 
approximated.  One could approximate first derivatives also by 
finite-differences, but this is usually a rather computationally expensive 
option.  However, the Ipopt code has a "hidden" option, called

jacobian_approximation finite-difference-values

that will make Ipopt do a very simple and inefficient approximation of the 
constraint derivatives (but the user still has to provide a sparsity 
structure).  No code like that has been written for a finite difference 
approximation of the objective function gradient.

But maybe what you are looking for is "derivative free" optimization. 
There are different options and codes, one is the "DFO" code on COIN:


Note that those algorithms cannot handle problems with many variables.

Hope this helps,


On Wed, 8 Apr 2009, Michael Stevens wrote:

> Dear IPOPT Users,
> I am currently looking at IPOPT as a solver for NLP I have. The problem is fairly simple and currently I am just trying to
> determine how best to represent the problem and how efficiently it can be solved.
> I order to go this I am trying to avoid (at least initially) determining analytical gradiants and Hessians. Effectively I would
> like to treat the problem function as a black box where gradiants and Hessians are not directly available.
> Wadding though the documents I am almost clear on how to define the NLP problem so a Quasi-Newton method will be used fur the
> Hessian. However looking at the documentation for how the NLP is defined (in my case in C++) I cannot see how the 'eval_grad_f'
> function should be defined in the case where the Quasi-Newton evaluation of the function to be optimised should be used.
> I guess there are two possibilities:
> a) IPOPT always needs an analytical gradient
> b) The eval_grad_f function is not called if IPOPT options are set for a Quasi-Newton solution.
> Any help would be greatly appreciated.
> Thanks,
> 	Michael Stevens
> -- 
> ___________________________________
> Michael Stevens Systems Engineering
> 34128 Kassel, Germany
> Phone/Fax: +49 561 5218038
> Mobile: +49 1577 7807325
> Navigation Systems, Estimation  and
>                 Bayesian Filtering
>    http://bayesclasses.sf.net
> ___________________________________

More information about the Ipopt mailing list