[SCIP] Duplicate rows in branch-and-cut-and-price
Gregor Hendel
hendel at zib.de
Wed May 8 07:36:37 CEST 2019
Hi list,
Eddie and I discussed the subject in person some time ago, I just repeat
the conclusion.
By separating a constraint such as setppc or knapsack instead of an LP
row, you have more control of the behavior of this constraint through
the use of its flags. After separating a constraint from within a
separator, this constraint will be immediately added as a row to the LP
relaxation, as well, as long as the "separate" flag is set to TRUE for
the new constraints.
It is generally good if you can detect a constraint type that is more
special than just linear, and create the corresponding constraint. A
knapsack constraint, as an example, has much stronger propagation
algorithms than its linear equivalent. In the pricing context, however,
many possible deductions cannot be made on constraints that are modifiable.
Contrary to Eddie's assumption, there is no advantage in separating
constraints instead of rows w.r.t. the primal heuristic behavior.
Infact, the default primal heuristics of SCIP consider mostly the LP
relaxation for their decisions, but do not consider specific constraint
types at all.
Best,
Gregor
Am 19.02.19 um 22:55 schrieb Edward Lam:
> Hi all,
>
> I have a constraint handler that is adding setppc constraints (not
> rows/cuts) in the enfolp callback. I expect the setppc constraint to
> then add a row into the LP. It appears that sometimes this row is not
> in the LP (or removed) so my separator is adding a duplicate setppc
> constraint.
>
> This also occurs when I tried separating rows directly. Sometimes they
> are not in the LP, so I’m separating the same rows again.
>
> Why does this occur? Is there a way to tell SCIP to simply add the
> existing row back into the LP?
>
> Also, is there any benefit to separating constraints vs. rows? I
> assume constraints will improve primal heuristics and propagation.
> Although I’m not sure what can be propagated in column generation
> since setting a variable to 0 will regenerate that column and setting
> it to 1 will prevent future better columns from generating.
>
> Thanks in advance.
>
> Cheers
> Eddie
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20190508/7c869e74/attachment.html>
More information about the Scip
mailing list