[Scip] Branch, price and cut : how to update the farkas pricing?

nikolaj@crt.umontreal.ca nikolaj at crt.umontreal.ca
Sat Sep 4 16:43:59 MEST 2010


Hello everybody,

I'm currently implementing a Branch, price and cut with cuts generated at
every node of the search tree and branching constraints.

I did some research about actual code with SCIP but I didn't find any. Are
there some examples of a Branch, price and cut (and not Branch, cut and
price)?

I have some ideas on how to update the farkas pricing but I find them too
complicated. Probably, there is a common way of doing so. What is it?

Here comes a more detailed explanation of what I'm trying to do.

I have a core LP (the model) that I've implemented as in the example
"SamplePricer". This works well with a fixed dual model. Now, if I want to
add a primal constraint (a cut or a branching constraint) to the original
model, I wonder how can I easily update the dual model? I have to add the
dual variable corresponding to this constraint. If the constraint is local
(as a branching constraint), this has to be done for the node and all its
successor. If it is a global constraint, I would like to update it for the
whole tree. I guess that for the local constraint, I have to use the
callbacks CONSACTIVE and CONSDEACTIVE of a constraint handler. But how do
I test if a primal variable could be added to make the LP feasible again
in the farkas pricing? I guess I have to update the dual constraint
associated to that variable by adding the dual variable associated to the
primal constraint I've just added. How can I do this easily?

Another related question. I generate new primal variables by inspecting
the corresponding dual constraint. If this dual constraint is violated, I
add the variable (well, I find the "best" violated constraints and only
add some of them). If I add a primal constraint that could make a LP
infeasible I guess I have to update the dual by adding the corresponding
dual variable. But if I add a primal constraint that I'm certain can not
make any LP infeasible I guess I don't have to update the dual. But if I
do update the dual, will this improve the search for primal variables (in
the reduced cost pricing or/and farkas pricing)?

I hope I'm clear enough otherwise tell me and I'll rephrase my two
questions. Pricing is new to me and I'm discovering this fascinating
world.
So maybe my questions don't make too much sens. I don't know.

Thank you very much in advance.

Have a nice day/night.

Best regards,

Nikolaj









More information about the Scip mailing list