I would like to choose a set of $\beta_j$s that maximizes a simple linear objective function of the type
$$ \underset{\beta_j}{\operatorname{max}}\sum_{j=1}^{J}X_j\beta_j \\ $$
subject to the following constraints $$ \sum_{j=1}^{J}C_j(\beta_j)\beta_j \le M \\ \beta_j \in \Omega \\ $$
where $X_j$ ranks the $j$s using a metric, $C_j(\beta_j)$ can be thought as a marginal cost function that changes with the chosen $\beta_j$. $\beta_j$ can only be from a set of pre-selected set of integers $\Omega$. $M$ is some budget constraint.
In addition to this, I have a hard requirement that the assigned $\beta_j$ has to be higher for a $j$ with higher $X_j$ -
$$ \beta_j > \beta_k \quad \text{when} \quad X_j>X_k $$
what would be an elegant way of implementing this?
I decided to omit this detail in the question for brevity, but will edit the question if this is removing required details.
– FightMilk Mar 09 '22 at 15:10