[CHiPPS] Custom branching schemes with Blis

Qi-Shan Lim qlim001 at aucklanduni.ac.nz
Mon Nov 30 17:47:34 EST 2009


Hi all,

I am currently looking at frameworks for writing some MIP solver code
where custom branching schemes are used. Specifically, with a
constraint on binary variables x_i of the form

\sum_{i} x_i = 1

the branch would partition x into two sets and ban the variables of
one of these sets in each arm.

In BCP I understand this can be done by using
BCP_lp_branching_object() passing in the appropriate cut.

Using Blis, it seems like I should create a subclass of
BcpsBranchObject (much like BlisBranchObjectInt), then create my own
BlisBranchStrategy-like class to use this. However, it looks like the
code implementing the branch in BlisBranchObjectInt::branch(bool)
never actually gets run, and instead the branching is currently
hardcoded to use integer variable branching in BlisTreeNode.

Am I reading this situation correctly? Are there any immediate plans
to flesh out the BranchObject interface (towards what BCP has) and
generalise the code in BlisTreeNode so that custom branching schemes
can be implemented? If I were to try and forge ahead myself to get
this (partially) working what would this involve and are there any
potential stumbling blocks I should be aware of?

Thanks and best wishes,

--Qi-Shan Lim



More information about the CHiPPS mailing list