[Scip] Branching decisions not enforced in master problem during a Branch-and-Price implementation

E. van der Veen E.van.der.Veen.7 at student.rug.nl
Thu Sep 4 17:48:12 MEST 2008


Hi,

Again thanks for your help last time with some problems I 
had implementing a branch-and-price method in SCIP.
However, unfortunately, I run into some other problems..

I've implemented extra constraints, like Tobias 
Achterberg, suggested to "store" my branching decisions:
I've added constraints

-y_it + \sum_{s covers time t} x_s <= 0

to the master problem. where y_it is a binary variable 
capturing "worker i works during period t".

Now, I get the following. While I fixed one of the y_it to 
0, a variable x_s appearing in the corresponding 
constraint has value 0.5, but by the above constraint this 
is not allowed (I obtained this value via 
SCIPgetLPBranchCands) However, I'm pretty sure the fixing 
went well, because in my pricing problem I included 
constraints like "if y_it = 0, then in the to be created 
shift period t cannot be a working period" and I see these 
constraints appearing in my pricing problem after fixing 
the y_it. So why is it then that 'the' x_s variable has 
value 0.5 (like it had initially, i.e. before any 
branching/pricing had been done)? Do I have to create some 
kind of domain propagation method and how does one do 
that, or is there something I am overlooking?

As an alternative, I tried implementing the above 
constraint as a set packing constraint like

y_it + \sum_{s covers time t} x_s <= 1

where y_it is 1 if worker i is not working during period 
t, and 0 otherwise.
However, now I'm faced with some other problems and I'm 
not sure what the cause is.. It seems that due to some 
propagation methods or seperation methods (both performed 
on the setpcc constraints), my branching rule is never 
called. The former I conclude from the values under 
'#Propagate' which is displayed in the following 
information (which I got via SCIPprintStatistics()).

Constraints:  Number  #Separate #Propagate #EnfoLP #EnfoPS 
Cutoffs DomReds  Cuts   Conss   Children
   integral :       0          0          0       1 
      0       0       0     0       0          0
   setppc   :       9          0         26       1 
      1       0       1     3       0          0
   linear   :       3          0         26       0 
      0       0       0     0       0          0

Now my problem is how to 'turn this behaviour off', 
because now pricing problem instances are created which I 
cannot explain, and which lead to repeatedly generating 
the same column over and over again, which should not 
occur during column generation (theoretically). Generating 
this column over and over again also does not lead to a 
final solution.
Does anyone have a clue on this?

Thanks in advance for your reply!

Best regards,
Egbert



More information about the Scip mailing list