[SCIP] How to get the Dual Solution of the cuts added using a constraint handler

Mueller, Benjamin benjamin.mueller at zib.de
Thu Apr 2 17:51:59 CEST 2020


Dear Naga,

You can iterate through all rows of the current LP by using 
SCIPgetLPRows() and SCIPgetNLPRows(). Afterward, you can ask each row for

     SCIProwGetOrigintype(row) == SCIP_ROWORIGINTYPE_CONSHDLR

and then use SCIProwGetOriginConshdlr(row) to get the constraint handler 
that created the row. However, it would be probably cleaner and more 
efficient to store the created rows in the data of your pricing plugin. 
Once you found an improving column in the callback of your pricer, you 
can add the generated variables to the corresponding rows.

I hope this helps!

Best,
Beny

On 01.04.20 10:25, Naga Venkata Chaitanya Gudapati - 
nagavenkata.gudapati at studio.unibo.it wrote:
> Hello Benjamin and SCIP community,
>
> I had been searching all over the internet on  how to iterate through the rows added by the constraint handler so that I can get their dual price.  But I am still a bit unsure how to obtain it.
>
> Should I be storing the rows that are added by a constraint handler  in a separate data structure, so that I can iterate through them later? Or is there a way to get the rows from the SCIP data structure?
>
> I probably am getting ahead but I would like to able to manipulate these rows added by the constraint handler to add more variables (due to the pricing phase). Any help is greatly appreciated.
>
> Thanks and Regards,
> Naga
>
> ________________________________________
> From: Scip <scip-bounces at zib.de> on behalf of Naga Venkata Chaitanya Gudapati - nagavenkata.gudapati at studio.unibo.it <nagavenkata.gudapati at studio.unibo.it>
> Sent: Monday, March 30, 2020 11:37 AM
> To: Mueller, Benjamin; scip at zib.de
> Subject: Re: [SCIP] How to get the Dual Solution of the cuts added using a constraint handler
>
> Thank you! Now I think I have to figure how to get the cuts added by the constraint handler.
>
> Thanks and Regards,
> Chaitanya
> ________________________________
> From: Mueller, Benjamin <benjamin.mueller at zib.de>
> Sent: Monday, March 30, 2020 5:35:48 PM
> To: Naga Venkata Chaitanya Gudapati - nagavenkata.gudapati at studio.unibo.it <nagavenkata.gudapati at studio.unibo.it>; scip at zib.de <scip at zib.de>
> Subject: Re: [SCIP] How to get the Dual Solution of the cuts added using a constraint handler
>
> Dear Naga,
>
> you can access the dual solution of a SCIP_ROW by using
> SCIProwGetDualsol(). The method SCIPgetDualsolLinear() is returning the
> value of SCIProwGetDualsol() for the row that has been generated by a
> linear constraint.
>
> Best,
> Benjamin
>
> On 30.03.20 11:19, Naga Venkata Chaitanya Gudapati -
> nagavenkata.gudapati at studio.unibo.it wrote:
>> Hello,
>>
>> I might have missed something rudimentary in the SCIP documentation but is there a way to get the dual prices of the added cuts? I add these cuts using a constraint handler.  I know about SCIPgetDualsolLinear but can it also be used for cuts?
>>
>> I am adding a cut and I need to get its dual price so that I can take it into account for the pricing problem after which I can add a new variable.
>>
>> Thanks for your help and please let me know if I need to provide any further information.
>>
>> Regards,
>> Naga
>> _______________________________________________
>> Scip mailing list
>> Scip at zib.de
>> https://listserv.zib.de/mailman/listinfo/scip





More information about the Scip mailing list