ipoptr is an R interface to Ipopt (Interior Point Optimizer). Ipopt is an open source software package for large-scale nonlinear optimization (Waechter & Biegler, 2006). It can be used to solve general nonlinear programming problems with nonlinear constraints and lower and upper bounds for the controls, such as

                             min      f(x)
                           x in R^n
                           s.t.       g_L <= g(x) <= g_U
                                      x_L <=  x   <= x_U

Ipopt is written in C++ and is released as open source code under the Eclipse Public License (EPL). It is available from the COIN-OR initiative. The C++ code has been written by Carl Laird and Andreas Waechter, who is the COIN project leader for Ipopt.


Installation is not as easy as for most other R packages, because you have to install Ipopt from source first, which is described in the Ipopt documentation. The R vignette describes how to install the interface, after you have successfully installed Ipopt. The interface is distributed under the Eclipse Public License, as is Ipopt. Some of the libraries that Ipopt depends on use different licenses.

This package is distributed in the hope that it may be useful to some. The usual disclaimers apply (downloading and installing this software is at your own risk, and no support or guarantee is provided, I don't take liability and so on), but please if you have any problems, suggestions (for instance to make installing easier), comments, etc.



19/02/2011: Version 0.8.2
- Added a Journal to correctly direct output to R terminal for all platforms.
- Changed license to EPL in accordance with license change in Ipopt.


Waechter, A., & Biegler, L. T. (2006). On the implementation of a primaldual interior point filter line search algorithm for large-scale nonlinear programming. Mathematical Programming, 106 (1), 25-57. link