[Cbc] Global cuts

Francois Margot fmargot at andrew.cmu.edu
Tue Feb 22 13:54:35 EST 2011


Hi:

I am trying to understand the cut management mechanism in cbc,
particularly for global cuts (i.e. OsiRowCuts with parameter
setGloballyValid set to true when they are generated in a
CglCutGenerator). I would like to know the following:

1) If I generate a global cut at node k, is this cut present at all
nodes that are generated after node k, or is it also present at all
nodes that were generated before node k and are not yet processed?

2) Can global cuts be removed by cbc as local cuts can be? If yes, is
there a way to tell cbc not to remove some cuts?

3)  If a global cut is generated at pass p at node k, is it present at
pass > p at node k?

4) Finally, there seem to be a bug in the way active cuts are computed.
At the end of the run, cbc prints a message

   generator was tried 4837 times and created 697 cuts of which 0 were
   active after adding rounds of cuts

and no matter what cuts I generate (including cuts that force all nodes
to be immediately pruned), the number of active cuts is always 0. As a
side note, what is the definition of an "active" cut? A cut in the
formulation? A cut whose dual variable is positive in the optimal basis?
I understand that this is computed once per node, after the last pass of
cutting. Is this also done for nodes pruned by infeasibility?

Francois






More information about the Cbc mailing list