[Ipopt-tickets] [Ipopt] #91: Ipopt in R under Linux - a bug or complilation error?
Ipopt
coin-trac at coin-or.org
Thu Feb 26 10:51:11 EST 2009
#91: Ipopt in R under Linux - a bug or complilation error?
--------------------------------+-------------------------------------------
Reporter: anton | Owner: andreasw
Type: defect | Status: assigned
Priority: normal | Component: Ipopt
Version: 3.5 (C++ Version) | Severity: normal
Resolution: | Keywords: R, interface, Ipopt, Linux, x86-64
--------------------------------+-------------------------------------------
Comment (by anton):
Hi Andreas,
Both I (the developer) and the company where I work (the owner) are
willing to make the Ripopt code publicly available. After some revision of
the code, I will place it somewhere on the web.
There are two versions of Ripopt, one is for Linux, and the other one is
for Windows. I plan to publish the version for Linux first, because it is
simpler. The current version of Ripopt for Windows involves some tricks
related to file and standard output. To fix the output, I changed the code
of Journalist.cpp. I believe that any changes in the core Ipopt code are
better avoided by any Ipopt extension aimed at public usage. I would like
to eventually release a version of Ripopt which fits both Linux and
Windows and is free of "dirty tricks".
Now let me announce the main Ripopt features.
1) Ripopt is designed to replicate the functionality of the C++ interface
to Ipopt. Some advanced features of the C++ interface are not supported by
Ripopt, but this may be fixed in the future.
2) Ripopt does not extend the functionality of Ipopt; in particular, it
does not offer automatic computation of derivatives – the user is
responsible for providing R functions for computing not only the values of
objective and constraint functions, but also the values of their first and
(possibly) second derivatives.
3) The main part of Ripopt is written in C++ and is build as a DLL; though
this DLL can be used directly by the R user, an R wrapper is supplied for
the user’s convenience. This additional R code ensures correct type
conversion between R and C++, and performs a simple test of the problem
description.
4) Data are sent between R and Ipopt by reference; unnecessary copying is
avoided.
As already mentioned, I use Ripopt primarily to solve regression problems.
For this purpose, I have developed an extension to Ripopt, which solves
the following box-constrained nonlinear least squares problem:
Sum{y,,i,,-f(x,,i,,,p) : i=1,…,n}^2^ -> min,,p,,, subject to p,,L,,(x,y)
<= p <= p,,U,,(x,y),
where n is the number of observations, y,,i,,’s are the observations of
the regressand (real numbers), x,,i,,’s are observations of the regressor
(may be of an arbitrary type), p is a vector of regression parameters
(real numbers), and f is a given real-valued function, which must be twice
continuously differentiable with respect to p. This tool is called
!RipoptRegression (a better name is welcome), and will be published too.
Best, Anton
--
Ticket URL: <https://projects.coin-or.org/Ipopt/ticket/91#comment:4>
Ipopt <http://projects.coin-or.org/Ipopt>
Interior-point optimizer for nonlinear programs.
More information about the Ipopt-tickets
mailing list