[Scip] How to update separators in a branch-price-and-cut?

nikolaj@crt.umontreal.ca nikolaj at crt.umontreal.ca
Tue Aug 31 15:29:46 MEST 2010


> Hi Nikolaj,

Hello Gerald and group,

Thank you very much for your reply. I have a question at the end of the
email and I reply to you in the body of your email.

>
>> If I use SCIPaddCut with the flag forcecut set to TRUE, is it
>> guaranteed that SCIP will add the SCIP_ROW? Or will it perform some
>> (hidden) tests
>> before and only add the cut if these tests are successfully passed?
>>
> No, SCIP should not perform hidden tests and should always add this cut
> to the LP.
>> If I don't want SCIP to remove the SCIP_ROW I added, I guess that I
>> need to set the flag removable in SCIPcreateRow to FALSE. Is this enough
>> to have a guarantee the SCIP_ROW will stay in the LP?
>>
> Yes, that should be enough.

Ok, thanks.

>
>> How do I do to delete from the LP (and the cutpool) some of the added
>> SCIP_ROWs (I don't touch the initial model contraints)?
>>
>>
> I'm afraid that this is not possible. There is no method in SCIP that
> allows you to remove a row from the LP, because that is only allowed under
> some conditions and is normally done automatically by SCIP. Why don't you
> want to allow SCIP to remove cuts from the LP if they were not tight for
> some time? Do they really help with the numerics in that case?

My problem is very unstable, keeping some row can help even if they are
not very "efficacious". Yes, they do help with the numerics.

>> The LPs I have to solve are numerically very unstable and I need to be
>> able to add some cuts even if they are "poor". At the same time, the LPs
>>  are huge, so I need to be able to reduce them as much as possible as
>> soon as possible.
>>
>>
> Well I don't know what you mean with "poor" in this context, but if you
> just want to add cuts even if they don't cut off much of the polyhedron,
> you could as well set the parameters "separating/minefficacyroot" and
> "separating/minefficacy" to a smaller value. You could do the same with
> the parameters for orthogonality, but not allowing nearly parallel cuts
> (like it is done per default in SCIP) normally helps to preserve the
> numerical stability. So you could try some different values for this
> parameters, if you want. However, these parameters are only of interest if
> you don't set the forcecut parameter to TRUE.

I would like to be able to adapt the settings w.r.t the cuts, i.e. I would
like to have different behavior among the different cuts (a certain value
for the efficacy of cut1, another value for the efficacy of cut2. If I'm
not wrong, this is not possible with SCIP).

>
> Also, if cuts should be removed from the LP as fast as possible, you
> could just decrease the parameter "lp/rowagelimit", so that rows are
> removed faster from the LP. And just take a look at the other advanced
> lp-parametes, perhaps there are some more that can help you.

I will try to use the rowage parameter to force cuts out.

Here is my question: when I want to update a cut (add the new variables
generated by the pricer), how can I be sure that this cut is still active
(i.e. still considered by SCIP to be useful even if not used in the
current LP).

Have a nice day.

Best regards,

Nikolaj


> Best, Gerald
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip
>
>






More information about the Scip mailing list