I have an integer program that I need to solve and I do not know if it belongs to any specific class of integer programs.
The binary $\{0,1\}$-valued vectors $\pmb{x}^i_{1:T} = (x^i_1, x_2^i, \ldots, x_T^i), i = 1, \ldots, r$ form the variables in the problem where $r$ is a non-negative integer that enumerates these vectors and needs to be maximized. The quantities $y_1, \ldots, y_T$ and $E$ are non-negative integers that are known.
The problem I need to solve is
$$ \max \;\; r \\ \text{subject to} \; \; \sum\limits_{i=1}^r x_t^i \le y_t \; , \; \text{for all} \; \; t = 1, \ldots, T \\ \sum\limits_{t=1}^T x^i_t = E \; , \; \text{for all} \; \; i = 1, \ldots, r \\ x^i_t \in \{0,1\} \; , \; \text{for all} \; \; i = 1, \ldots, r \;, \; t = 1, \ldots, T \\ r \in \mathbb{Z}_{\ge 0} $$ I have formulated this problem as an intermediate step in a larger research problem. I wonder if anyone that recognizes the broader class of integer programs that this problem may belong to, share their insights here. It would also be immensely helpful to guide me to relevant resources on the related families of integer programs so I can read more about it.
Thanks so much!
You can use a technique known as column generation. The idea is to solve the linear programming (LP) relaxation of your problem with the current set of variables (the "restricted master" problem). Then use the optimal master dual variables as input to a "column-generating" integer linear programming (ILP) subproblem that tries to find a new solution $x$ with negative reduced cost. If there is none, you have implicitly solved the unrestricted master LP. Otherwise, augment the master with the new column, and repeat as needed. Once you solve the master LP to optimality, you can then solve the restricted master as an ILP to get an integer feasible solution. If the optimal objective value agrees with the LP objective value, you are done. Otherwise, you need to branch, and the full method is called branch-and-price.
An alternative approach if you know an upper bound $\bar{r}$ on the optimal $r$ is to take $r=\bar{r}$ and introduce additional binary variables $z_i$ for $i\in\{1,\dots,r\}$, change the objective to maximize $\sum_{i=1}^r z_i$, and change the equality constraints to $$E z_i \le \sum_{t=1}^T x_t^i \le E z_i + T(1-z_i),$$ so that $z_i = 1$ implies $\sum_{t=1}^T x_t^i=E$. To reduce symmetry, you can also introduce linear constraints $z_i \le z_{i-1}$.