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

Noli Sicad nsicad at gmail.com
Sun Mar 22 23:13:57 EDT 2015


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


More information about the Cbc mailing list