Re: [eclipse-clp-users] Interfacing Eclipse and Coin

From: Kish Shen <kisshen_at_cisco.com>
Date: Wed, 26 Jan 2011 20:33:19 +0000
Hi Alexandre,

On 26/01/2011 10:11, Alexandre Saidi wrote:
> Dear All,
> Does anybody tried  to interface Eclipse and Coin/Osi.
> I need to solve non-linear systems inside Eclipse (actually linear but the objective function is quadratic).

Yes, the eplex library of ECLiPSe interfaces to COIN-OR's OSI, which
in turn interfaces to various solvers (OSI is itself a solver interface, 
rather than a solver). The binary distribution of ECLiPSe includes two 
solver combinations for OSI -- CLP/CBC and CLP/SYMPHONY. The CLP/CBC 
support is by far the most developed, and this is probably what you 
should use.

In particular, solving of linear problems with a quadratic objective is 
supported for CLP/CBC. However, solving of MIQP (MIP with a quadratic 
objective) is not supported, mainly because CBC does not provide its own 
MIQP solver -- there is a very simple MIQP solver in its example code, 
but this is almost certainly not good enough for any realistic problems, 
so we decided not to support it.

A further point is that I am not sure how good CLP (the linear solver) 
is at solving quadratic problems. The main development effort of CLP is 
towards a fast Simplex solver for linear problems, and although it also 
support solving of quadratic problems, much less development effort was 
spent on this.

 > I know that one can do that by using OSI separately (using 
external/separate  files).
 >

What OSI supports or not is not a simple question, as the individual 
interfaces to the different solvers are done by different groups, and 
the whole project depends on a lot of other COIN-OR projects, such as 
CoinUtils, which provides most of the support routines, such as those to 
input/load a problem. While there is support for reading in a quadratic 
objective, it does not mean that the individual OSI interfaces to a 
specific solver would support solving of such problems.


> Should we recompile all sources (Eclipse + Coin)?
> I'm using MacOs .
>

As I said, binaries for CLP/CBC and CLP/SYMPHONY are provided already 
(although the CLP/SYPHONY binearies are not provided for all platforms), 
so there is no need to compile anything yourself, unless you want to use 
some other solver that is supported by OSI.

For Mac OS X (as well as other Unix distributions), the binary 
distribution are in the form of "tarballs", and each eplex/solver 
combination has its own tarball. For CLP/CBC, you should download the 
file with a filename starting "if_osiclpcbc".

However, we don't have access to a Mac in our normal build 
infra-structure, so the binaries are not generated automatically. One of 
our users, Paulo Moura, have kindly provided us with access to the Macs 
at his University,  and I have been able to  manually build and upload 
the Mac binaries to our sourceforge download area, but as I have to do 
this manually, the binaries there are quite old now.

I recently brought an iMac, so I can now compile ECLiPSe locally, and I 
can send you "unofficial" version of the binaries for the most recent 
source. In addition, I have been able to build 64 bit binaries for Intel 
Macs.

The 64 bit Intel binaries seems to run somewhat faster than the 32 bit 
binaries, and of course you can access >4G of memory, although it also 
uses about twice as much memory as the 32 bit version.

So do let me know if you want the latest binaries, and for which 
platform. You probably should send this to me personally, rather than to 
the whole mailing list.

> If anybody knows some documents explaining how to interface ...

I am not certain what you are referring to here. If you simply want to 
run ECLiPSe with CLP/CBC, the eplex documentation in the manuals is what 
you need -- eplex is designed so that the code you write in ECLiPSe 
should run on all the solvers.

If you want to compile ECLiPSe yourself, the "ECLiPSe Build-and-Test 
Setup Guide" may be useful -- It includes instructions on how to compile 
COIN-OR solvers for ECLiPSe. This is in MS word format (but Preview on 
my Mac can display this file), and is included with the distribution, 
but you can also download it from:

http://eclipseclp.org/reports/SetupGuide.pdf

If you want to extend the eplex interface to other solvers yourself, 
then this will be more difficult. If you want to extend the support to 
other solvers supported by OSI, this should still be relatively easy 
(and I think the Setup guide does talk about this a little), as long as 
you don't mind the limited functionality this will provide (as I 
mentioned, OSI only supports a subset of eplex's functionality). 
Otherwise, it will be difficult, but there are some implementation 
documentation for eplex in the source distribution (eplex_impl.html, in
documents/internal).

Cheers,

Kish

-- 
This e-mail may contain confidential and privileged material for the
sole use of the intended recipient. Any review, use, distribution or
disclosure by others is strictly prohibited. If you are not the intended
recipient (or authorized to receive for the recipient), please contact
the sender by reply e-mail and delete all copies of this message.
Cisco Systems Limited (Company Number: 02558939), is registered in
England and Wales with its registered office at 1 Callaghan Square,
Cardiff, South Glamorgan CF10 5BT.
Received on Wed Jan 26 2011 - 22:37:15 CET

This archive was generated by hypermail 2.2.0 : Thu Feb 02 2012 - 02:31:58 CET