[Ipopt] Best and free way of interacting with IPOPT on Linux

Paul Smith phhs80 at gmail.com
Sun Apr 13 13:40:29 EDT 2008

On Sun, Apr 13, 2008 at 12:42 PM, Sebastian Nowozin <nowozin at gmail.com> wrote:
>  >  As far as I know, there are several interfaces available:
>  >  - C, C++, Fortran
>  >  - Java
>  >  - Matlab
>  >  - AMPL, GAMS
>  > [...]
> >  Also the Java and Matlab interfaces I have never tried, but they also
>  >  require you to implement derivative evaluation methods. It might also be
>  >  that the communication between the Java or Matlab world on the one side
>  >  and the C++ world on the Ipopt side has an impact on the efficiency.
>  >  With the AMPL and GAMS interfaces specification of the model is more
>  >  convenient, but they might not fit into the "free" category. Even though
>  >  the interfaces are for free, the compiler for the algebraic model to an
>  >  instance that the interface can understand is not free for larger
>  >  models. Note that Ipopt is also included the GAMS distribution.
>  The Matlab interface is great and works like a charm (thanks to
>  Peter), I have used it often in the last few months.  However, usually
>  it is not the most efficient because all the different computations
>  are split up across functions (computeObjective, computeGradient,
>  computeJacobian, computeHessian).  For most problems I have worked
>  with you could do this calculation more efficiently if you could
>  calculate them together.  As Matlab's function interface is strictly
>  functional (i.e. no side effects), this is not possible with the
>  current interface, except by using hacks such as global variables and
>  checking if recomputation is necessary.

Notwithstanding, Matlab is not free... :-)

Thanks, Stefan and Sebastian, for your replies. Could somebody please
write for me an example showing how interact with Ipopt through C++?
For instance, could you please code for me the following optimization

max x1 + x2 + x3+ ... + x10

s.t. x1^2 + x2^2 + x3^2 + ... + x10^2 <= 1


I know the analytical solution of this optimization problem, but I am
looking for a more or less free way of using Ipopt on Linux.



More information about the Ipopt mailing list