[Scip] getting statistics on LP relaxation

Luigi De Giovanni luigi at math.unipd.it
Wed Jun 11 13:02:56 CEST 2014


Hello Gregor,
   in my case I prefer to consider those times in the overall execution 
time (anyway they are negligible).
Thanks.
Luigi


On 06/11/2014 11:54 AM, Gregor Hendel wrote:
> 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
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip



More information about the Scip mailing list