[Scip] branching on constraints

Alessia Violin aviolin at ulb.ac.be
Wed Apr 10 12:58:56 MEST 2013


Dear Ambros,

thanks for your suggestion.

I created a new branchrule class (I am using c++), and in the main I 
create a new object of this type and add it with the function 
SCIPincludeObjBranchrule. Then I am looking at the different functions 
that are in the class, but it's not very clear to me when it enters in 
them during the solving. I saw that in the preprocessing it enters into 
the scip_initsol. But what about the scip_execlp? It seems to me that it 
never enters in it and I suppose it's here I have to add the methods 
SCIPcreateChild and SCIPaddConsNode, right?

Then I have another doubt: as in my problem there are no integer or 
binary variables, but I want a sum of variables (multiplied by 
parameters) to be binary, how is SCIP dealing with this? Where should I 
check for this condition and tell to branch or not?

Sorry for those quite basic questions, it's the first time I implement a 
branching rule.

Thanks,

Alessia



On 04/08/2013 11:50 PM, Ambros Gleixner wrote:
> Dear Alessia,
>
> constraint-based branching is rather straightforward to implement in
> SCIP.  You have to add a new branching rule that uses the methods
> SCIPcreateChild() and SCIPaddConsNode() in its branching callbacks.
>
> A very good example for this is the Ryan/Foster branching rule that has
> been implemented in the binpacking example:
>
> http://scip.zib.de/doc/examples/Binpacking/index.shtml
>
> http://scip.zib.de/doc/examples/Binpacking/branch__ryanfoster_8c_source.shtml
>
>
> Hope that helps,
>
> Ambros
>
>
>
> Am 08.04.2013 15:47, schrieb Alessia Violin:
>> Hello,
>>
>> solving my problem with branch&price I would like to change the
>> branching. Now I am branching on binary variables x_a^k = sum_j l_a^j *
>> x_a^k,j <= 1, simply defining them as binary in the variable definition
>> as they do not occur in the pricing. The variables for the pricing are
>> l_a^j, and x_a^k,j are parameters that I calculate during the pricing.
>>
>> As those x_a^k variables are added only for the branching, I would like
>> to eliminate them and branch directly on constraints sum_a l_a^j *
>> x_a^k,j <=1 (they can be 0 or 1).
>>
>> Does it exist already in SCIP a branching rule on constraints? If not,
>> shall I do it defining a new branching rule or is there an easier way to
>> do it?
>>
>> Thank you in advance for any help and suggestion,
>>
>> Alessia
>>
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> http://listserv.zib.de/mailman/listinfo/scip

-- 
Alessia Violin
Service Graphes et Optimisation Mathématique (G.O.M.)
Université Libre de Bruxelles
C.P. 210/01
Boulevard du Triomphe
B-1050 BRUXELLES
Tel: 02 650 58 80 - Fax: 02 650 59 70
Email: aviolin at ulb.ac.be
Webpage: http://homepages.ulb.ac.be/~aviolin/



More information about the Scip mailing list