[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