[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