[Scip] getting statistics on LP relaxation

Gregor Hendel hendel at zib.de
Wed Jun 11 11:54:11 CEST 2014


Hello Luigi

When using the overall solving time, you have to keep in mind that this 
accounts also for the execution of primal heuristics
and the execution of the cut loop. You can check if the amount of time 
spent there is insignificant for you by displaying the statistics via 
the interactive shell, typing 'display statistics'.

Best,
Gregor

Am 11.06.2014 11:27, schrieb Luigi De Giovanni:
> Dear Ambros,
>    thank you very much.
> In the meanwhile, since my branch-and-price is "simple" enough, I 
> tried and used directly
>
> SCIPgetSolvingTime
>
> when the pricer states that the LP is solved at the root node, and it 
> works fine (the times are coherent with the ones obtained by creating 
> a problem with continuous variables): any drawback?
>
> Thanks again.
> Luigi
>
>
>
>
> On 06/11/2014 01:17 AM, Ambros Gleixner wrote:
>> Dear Luigi,
>>
>> scip->stat->rootlowerbound contains the right value, but you should 
>> not include struct_stat.h and access it directly, since this does not 
>> belong to the public interface.  It is better to use
>>
>>   SCIPgetDualboundRoot()
>>
>> in scip.h.  Note that there also exist
>>
>>    SCIPgetFirstLPDualboundRoot().
>>
>> For the time to solve the first LP at the root node, you can use
>>
>>    SCIPgetFirstLPTime()
>>
>> but of course there are many LPs solved at the root, e.g., to 
>> reoptimize after adding cuts, and to my knowledge SCIP currently does 
>> not store the sum of all the LP times at the root node.  I would not 
>> know how to get this other than adding a new counter to the 
>> statistics in the SCIP core.
>>
>> You could do this by adding
>>
>>    SCIP_CLOCK* rootprimallptime;
>>       /**< primal LP solution time at the root node*/
>>    SCIP_CLOCK* rootduallptime;
>>       /**< dual LP solution time at the root node */
>>
>> to struct_stat.h, and wherever the existing stat->primallptime and 
>> stat->duallptime are touched, update those if ( stat->maxdepth == 0 
>> ). Finally you can make them accessible in scip.{h,c} by methods like 
>> SCIPget{Primal,Dual}LPTimeRoot().
>>
>> If you do this and it works for you, we could include it in the next 
>> release if you send us the patch.
>>
>> Hope that helps,
>>
>> ambros
>>
>>
>>
>>
>> Am 10.06.2014 22:21, schrieb Luigi De Giovanni:
>>> Dear all,
>>>
>>> I have a branch-and-price algorithm and I am going to run some
>>> computational experiments. I would like to collect some statistics on
>>> the LP relaxation at the root node.
>>> I use
>>>
>>> scip->stat->rootlowerbound
>>>
>>> to get the value of the linear relaxation at the root node. Is this
>>> correct?
>>>
>>> How can I get the overall time needed to solve the LP relaxation at the
>>> root node?
>>>
>>> Thank you very much!
>>>
>>> Luigi De Giovanni
>>> _______________________________________________
>>> Scip mailing list
>>> Scip at zib.de
>>> http://listserv.zib.de/mailman/listinfo/scip
>>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip



More information about the Scip mailing list