[SCIP] aggregated variables
Marc Pfetsch
pfetsch at mathematik.tu-darmstadt.de
Thu Jul 3 10:11:38 CEST 2025
Hi James!
> [binary] <t_3 <- 1>: obj=-0, global bounds=[-0,1], local bounds=[-0,1],
> aggregated: +1<t_3<-{1,5}>
> [binary] <t_3 <- 5>: obj=-0, global bounds=[-0,1], local bounds=[-0,1],
> aggregated: +1<t_3<-{1,5}>
>
> First question: does SCIP branch on aggregated variables?
Well, the default branching rule would avoid that because it only
considers fractional *active* variables.
But, it would be possible in principle to branch on aggregated
variables. The prerequisite is that branching actually corresponds to a
bound change of an active variable, which is the case for aggregated
variables. (This is different for multi-aggregated variables, where
several changes of bounds of active variables could correspond to the
same bound change of the multi-aggregated variable.)
> Second question: Is it correct that if, say, <t_3 <- 1> above were
> locally fixed to 0 (by some propagation) then <t_3<-{1,5}> and then
> <t_3 <- 5> would also get locally fixed to 0?
In principle yes, if you interpret "locally fixed" in the right way. the
variable <t_3 <- 1> is not active and thus not actually present in the
problem (in particular, it does not have an LP-value). If you ask for
the local variable bounds of it, SCIP would resolve the aggregation and
return the bounds using the active variable <t_3<-{1,5}>. Similarly, for
<t_3 <- 5>.
Best
Marc
P.S. I recommend to avoid characters like "<" (and ">") in variable
names, because these make it hard to correctly read the variable names
in a CIP file.
More information about the Scip
mailing list