[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