[Scip] Tentative branching not working

Tobias Achterberg achterberg at zib.de
Wed Apr 1 09:24:30 MEST 2009


Hi Nikolaj,

nikolaj at crt.umontreal.ca wrote:
> Thank you very much for your quick answer. Setting initial == TRUE in the
> SCIPcreateConsLinear() call and fixing parameter
> constraints/linear/sepafreq = 1 works perfectly. I didn't understand the
> setting initial == TRUE in the call.

Actually, one of the two should be enough. I recommend to only use initial == TRUE and let
constraints/linear/sepafreq stay at its default value 0.

The meaning of the 'initial' flag is the following:

If the constraint has been added in the problem creation stage (i.e., before you call
SCIPsolve()), then its relaxation will be part of the very first LP solve at the root
node. On the other hand, if 'initial' is FALSE, then the constraint will not be part of
the very first LP solve. It can then only be added by the separation method of the
corresponding constraint handler (if the sepafreq parameter of the constraint handler
allows separation at the respective node) or by the constraint handler's enforce-LP method.

If the constraint is added during the solving process (for example by a branching
procedure), then setting 'initial' to TRUE means to add the constraint's relaxation to the
LP of the node where the constraint was added before the node LP relaxation is solved. If
the 'initial' flag is FALSE, then the relaxation of the constraint is not added to the LP,
and it can only be added via the separation or enforce-LP methods of the constraint
handler. Again, the execution of the separation method depends on the 'sepafreq' parameter
op the constraint handler.


I hope that this explains what has happened...


Best,

Tobias



More information about the Scip mailing list