[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