[Coin-discuss] which package would you recommend for an LP with cut generation?

Lou Hafer lou at cs.sfu.ca
Sun Jul 3 15:33:40 EDT 2011


Craig,

> I was hoping to get some recommendations for picking a COIN package.
> I would like to solve an LP problem with cut generation.  I need to
> solve a series of LP's.  At each step, I'll fix some variable founds,
> and generate some violated cuts.  Then I resolve, and do it again
> until we terminate.  There are no integer or binary variables, so
> this doesn't fix in the typical "branch and cut" framework.  Also, my
> cuts are problem specific (think TSP subtours), so the cut generation
> libraries won't help.
> 
> Given that problem, what COIN package would you start with?

	DyLP is designed to make it easy to tighten column bounds and add cuts.
It was originally designed to work in a MIP solver (bonsaiG) that
implemented an inner loop that alternated between bound propagation and
solving LPs. But it's a bare LP solver, with no supporting cut
management. If OsiCuts and associated classes provide sufficient
functionality for your notion of a cut pool, you could try this route.
It would give the functionality you require without the machinery of
branch-and-bound.

	DyLP predates COIN, so there's no doxydoc documentation. There is a
comprehensive tech report in the DyLP distribution, which documents the
bare interface. OsiDylp is fully doxydoc'd.

	One caveat: DyLP is C code and uses static data structures internally.
It's not reentrant. OsiDylp provides machinery that allows you to share
the underlying solver across multiple active problems. OsiDylp also
provides the capability to use COIN continuous presolve. You most likely
want both of these, and OsiCuts, so OsiDylp is the way to go.

	If you choose the Osi API with OsiCuts and are not seduced by
extensions unique to a given solver, you can postpone committing to an
underlying solver. OsiClp also makes use of the COIN continuous
presolve. OsiGlpk relies entirely on the underlying glpk (open source)
solver. Similarly, the various Osi's for commercial solvers rely on the
underlying solver.

						Lou




More information about the Coin-discuss mailing list