What is gub?

GUB, or Generic Upper Bound, is a concept used in various constraint programming and optimization contexts, particularly in areas like scheduling and resource allocation. It is a global constraint that limits the number of variables that can be assigned a non-zero value within a specified set of variables. More formally, given a set of variables x<sub>1</sub>, x<sub>2</sub>, ..., x<sub>n</sub> and a maximum allowed count k, the GUB constraint ensures that at most k of these variables can be greater than zero. It can be used to model various types of combinatorial constraints. GUB constraints often enhance the efficiency of constraint solvers by providing a stronger filtering mechanism compared to simply using individual variable bounds.