[Cbc] CBC MIP wrapper for glpsol (i.e. GLPK Solver)

Ted Ralphs ted at lehigh.edu
Fri Apr 3 12:32:55 EDT 2015


There is a lot of legal grey area in all of this. Dual-licensing of
Cbc_C_Interface.h itself might be possible, but I'm not sure it's
necessary. As far as I understand, the EPL would not prevent someone from
writing code to the Cbc API and distributing that code under the GPL. I
would think code that calls the Cbc C interface and would be part of GLPK
would be fine without any change to the licensing of Cbc. Dual licensing
all of Cbc and its dependencies is not really an option. This has been
discussed in the past and would be extremely difficult (if not impossible)
to do.

The idea of licensing an API separately from the project itself has always
been a difficult concept for me to wrap my head around. I'm not aware that
any of the commercial solvers have separately licensed their APIs. It's
hard to imagine that the API itself would be considered substantive
intellectual property, although I guess it's possible that for some
software, the API itself would reveal enough about the inner workings of a
given code that it would be considered part of the innovation.

In any case, there are lots of open source codes that are written to the
APIs of the commercial solvers, and this seems to be at least implicitly OK
with the vendors, even though I don't think permission to do this has
explicitly been granted. For Cbc, I think it's explicitly OK. This would
only be an issue if Cbc were under the GPL.

Ted


On Sun, Mar 22, 2015 at 11:13 PM, Noli Sicad <nsicad at gmail.com> wrote:

> I just like to point out that the timeline when gurobi and cplex
> wrappers for glpsol were created.
>
> Gurobi wrapper was created discussed in Feb. 2011 and Andrew wrote the
> cplex wrapper in July 2011 after somebody was asking for it.
>
> I think the solution is to create a CBC_C_interface.h like CPLEX.h and
> Gurobi.h and license as it as dual license  - LGPL and EPL. Then
> everything would be legal.
>
> Or far better relicense CBC solver as a dual license - LGPL and EPL.
>
> Here's example of dual license - LGPL and EPL.
>
> https://github.com/jgrapht/jgrapht/wiki/Relicensing
>
> MathProg works in LGPL, as in this case, lp_solve.
>
> http://lpsolve.sourceforge.net/5.5/MathProg.htm
>
> Thanks.
>
> Regards, Noli
>
>
> On 3/22/15, Ted Ralphs <ted at lehigh.edu> wrote:
> > Miles is correct. Although it is commonly done, you technically cannot
> > create works that combine code under the GPL and the EPL. It is a
> violation
> > of the GPL. Even the author of the GPL'd code cannot technically
> distribute
> > combinations, but the author is obviously free to create an exception in
> > the license for certain kinds of combinations. I requested such an
> > exception be made to allow GMPL to be combined with other solvers, but I
> > never got a response. I think it is clear that this is informally
> > permissible, but the license of GMPL still technically disallows it.
> >
> > From the standpoint of making the combination work programatically, you
> > have the choice of either wrapping GMPL around Cbc (as is done with CPLEX
> > and Gurobi) or Cbc around GMPL (as is already half implemented in Cbc).
> I'm
> > not sure which is easier, but it might be that mimicking what is done
> with
> > CPLEX/Gurobi would be the path of least resistance. I hadn't thought of
> > that before.
> >
> > An even nicer solution would be to create a wrapper that uses the Open
> > Solver Interface, which would provide links to all solvers with Osi
> > implementations (https://projects.coin-or.org/Osi/). Of course, OsiCbc
> is
> > not very well maintained at the moment (though I plan to change this in
> the
> > long run), so that might not be a good solution for Cbc right now, but it
> > would be very useful in general.
> >
> > To link to Cbc in the same way as Gurobi and CPLEX, you could look at the
> > recently developed C interface:
> >
> >
> https://projects.coin-or.org/Cbc/browser/releases/2.9.3/Cbc/src/Cbc_C_Interface.h
> >
> > This should allow everything to be done in almost exactly the same way as
> > with Gurobi and CPLEX. In that case, the combined code would be a
> > contribution to Glpk, though, I suppose, not Cbc. It would be nice if we
> > could got the license issues worked out somehow to make this all
> > technically legal.
> >
> > Cheers,
> >
> > Ted
>



-- 
Dr. Ted Ralphs
Professor, Lehigh University
(610) 628-1280
ted 'at' lehigh 'dot' edu
coral.ie.lehigh.edu/~ted
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20150403/5c032da2/attachment.html>


More information about the Cbc mailing list