Opened 4 years ago

Last modified 3 years ago

#19219 new enhancement

MILP: Add CyLP backend

Reported by: mkoeppe Owned by:
Priority: major Milestone: sage-6.9
Component: numerical Keywords: lp
Cc: ncohen, dimpase Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by mkoeppe)

CyLP is a Cython interface to COIN-OR’s Linear and mixed-integer program solvers (CLP, CBC, and CGL).

We should add a MILP backend that goes through CyLP, because the interface is much more complete than Sage's current COIN interface. In particular, quoting from CyLP's README:

"CyLP’s unique feature is that you can use it to alter the solution process of the solvers from within Python. For example, you may define cut generators, branch-and-bound strategies, and primal/dual Simplex pivot rules completely in Python."

https://github.com/coin-or/CyLP

Of course, CyLP has an incompatible license (CPL), but it does not matter because COIN has that license already.

Update: CyLP has various outstanding issues (https://github.com/coin-or/CyLP/issues) that need working around or fixing

Change History (3)

comment:1 Changed 4 years ago by ncohen

I don't have anything against what you plan to do, but why exactly do you want to add a CyLP backend? It may be true that CyLP has more features exposed than our current interface, but then the same thing remains: in the backend, you will have to expose the features that are exposed in CyLP, exactly how we have to do now by exposing in the coin backend the features that are exposed in the C++ Api.

Nathann

comment:2 Changed 4 years ago by dimpase

Matthias builds a database of ILP cutting planes constructions (Actually I talked to him yesterday about it at length).

He wants his cuts to be as painless as possible:)

comment:3 Changed 3 years ago by mkoeppe

  • Description modified (diff)
Note: See TracTickets for help on using tickets.