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

nikolaj@crt.umontreal.ca nikolaj at crt.umontreal.ca
Thu Sep 2 22:39:05 MEST 2010


On Thu, September 2, 2010 2:38 pm, Gerald Gamrath wrote:
> Hi Nikolaj,
>

Hello Gerald and the group,

Thank you very much for your answer.

As usual ( ;-) ), I reply in your message and I have a question at the end.

>
>> 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).
>>
>
> Yes, your right, that is not possible with SCIP, if you really need it,
> you have to use the workarounds discussed before.

I'm using a "super" separator and this works fine.

>> 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).
>>
>
> You can check with SCIProwIsInLP() whether the cut is still in the LP.
> If it is not in the LP, then I think it was deleted and is not
> considered by SCIP anymore. However, as far as I know, cuts may only be
> deleted at the node where they were created, so if that is not the case,
> they remain in the LP for the whole solving process.

Ok, thanks.

>
> By the way: Do you want to generate cuts only at the root node or also
> during the branch-and-bound search?

I'm generating cuts at every node. I'm also using branching rules with
constraints that need to be updated.

Here is my question. If I understand well, SCIP manages the cuts by itself
and maybe I shouldn't try to do the following : I would like to "follow"
some cuts and keep the pointer SCIP_ROW * to access them from time to
time. If I'm not wrong, when I release the cut with SCIPreleaseRow, it
seems the pointer becomes invalid. If I don't release the SCIP_ROW *, I
can have access to the cut but SCIP crashes at the end because I didn't
release the pointer. And this can not be done after the solving stage. So,
I guess, there is another way of keeping track of a SCIP_ROW *. What's the
proper way to do this?

Thank you very much in advance.

Have a nice day,

Nikolaj
>
> Best,
> Gerald
> _______________________________________________






More information about the Scip mailing list