[SCIP] How to get the Lower Bound while implementing the Branching Rule?

Gerald Gamrath gamrath at zib.de
Wed Mar 21 10:42:33 CET 2018


Dear Matheus,

if you create your constraints as linear constraints, and not as rows, 
you cannot add them with SCIPaddRowProbing, but should rather use 
SCIPaddConsNode and provide the probing node as the node to add the 
constraint to.

I would recommend to have a look at the multi-aggregated branching rule 
(src/scip/branch_multaggr.c), which does something very similar to what 
you want to do.

Best,
Gerald

On 21.03.2018 00:26, Matheus Ota wrote:
> Hi,
>
> Thanks for the fast reply! I followed what you said, but I guess I'm 
> doing something wrong, can you help me to figure it out?
>
> So first I enclosed the part of the code that I want to compute the 
> lower bounds in SCIPstartProbing(scip) and SCIPendProbing(scip).
>
> Then I call SCIPnewProbingNode(scip), create the constraint1 and add 
> it with SCIPaddRowProbing(scip, constraint1). I then solve the probing 
> node with SCIPsolveProbingLP(scip, -1, &lperror, &cutoff), get the 
> lower bound with SCIPgetLPObjval(scip) and got back to the parent with 
> SCIPbacktrackProbing(scip, 1).
>
> This same process is then repeated imposing constraint2 in the problem.
>
> Can you tell me if this is the right way to do it? The code is not 
> working as it was before adding the branching rule and I'm having some 
> difficulties in understanding how to use the probing mode correctly.
>
> Thanks again,
> Matheus
>
>
> 2018-03-20 5:52 GMT-03:00 Gregor Hendel <hendel at zib.de 
> <mailto:hendel at zib.de>>:
>
>     Dear Matheus,
>
>     this sounds like an application of the SCIP probing mode, which
>     allows to explore some tentative children before branching. Please
>     have a look at the documentation of the probing mode:
>
>     http://scip.zib.de/doc-5.0.1/html/group__PublicProbingMethods.php
>     <http://scip.zib.de/doc-5.0.1/html/group__PublicProbingMethods.php>
>
>     Probing mode supports local constraints at the tentative node, and
>     solve the corresponding LP relaxation.
>
>     You can then retrieve the LP solution objective using
>     SCIPgetLPObjval(), see also
>
>     http://scip.zib.de/doc-5.0.1/html/group__PublicLPMethods.php
>     <http://scip.zib.de/doc-5.0.1/html/group__PublicLPMethods.php>
>
>     for further information.
>
>     Happy probing,
>     Gregor
>
>
>
>     Am 19.03.2018 um 21:45 schrieb Matheus Ota:
>>     Hi,
>>
>>     Im trying to use SCIP to implement a Branch-Cut-and-Price for the
>>     VRP. For now Im focusing only on the Branch-and-Cut part, using
>>     the CVRPSEP package
>>     (http://econ.au.dk/research/researcher-websites/jens-lysgaard/cvrpsep/
>>     <http://econ.au.dk/research/researcher-websites/jens-lysgaard/cvrpsep/>).
>>     I already added the cuts and my program is able to solve some
>>     simple instances, in order to increase its performance I need to
>>     implement custom branching rules.
>>
>>     The branching rule works this way: it first select a few subsets
>>     of the set of vertexes in the graph and impose a few constraints
>>     on them. It then computes the lower bound (solving the
>>     relaxation) for each child node and uses these values to choose
>>     the node to branch on. Could you please give me some information
>>     about of how I can get the lower bound on the branching rule
>>     callback? Or maybe a better way of doing this or something similar?
>>
>>     Thanks,
>>     Matheus
>>
>>
>>     _______________________________________________
>>     Scip mailing list
>>     Scip at zib.de <mailto:Scip at zib.de>
>>     https://listserv.zib.de/mailman/listinfo/scip
>>     <https://listserv.zib.de/mailman/listinfo/scip>
>
>
>     _______________________________________________
>     Scip mailing list
>     Scip at zib.de <mailto:Scip at zib.de>
>     https://listserv.zib.de/mailman/listinfo/scip
>     <https://listserv.zib.de/mailman/listinfo/scip>
>
>
>
>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listserv.zib.de/pipermail/scip/attachments/20180321/11cb1afa/attachment.html>


More information about the Scip mailing list