[Clp] Implementing a branch and price solver

Jesse Jaanila jessejaanila at gmail.com
Tue Nov 6 07:44:50 EST 2018


Hi everyone,

Can someone point to any resource/example of a branch-and-price algorithm implemented CLP (and maybe with additional coin-OR projects)

Things I would like to control / overload are:
1. generating negative reduced cost columns until termination criteria are met. (duh!)
2. If root node RMP does not yield integer solution, branch fractional variable into N branches. => would be nice to implement own branching scheme
3. Define/store node data that is used to update variable bounds/pricing problem structure for each node that we process next.
4. Priority queue for non-root nodes. I want to do a depth-first search first to find any integer solution and then start using the best node first (lowest node bound) to prove optimality.
5. Control what nodes to prune and the change optimality condition(s) (integrality gap).

So in the API, I’d like to see “generateColums,” “startBrancing,” “storeNode,” “restoreNode,” “chooseNode” style functions that I could overload. Is there anything close to this?
I have been for years trying to get into using coin-OR libraries, but I think the threshold is quite high. I’m willing to write clear documentation for the steps needed to build and run
for example, a B&B solver for generalized assignment problem, if I’m able to create this myself first :-D

Br, Jesse


More information about the Clp mailing list