I have a problem, where I need to construct an investment proposal $P$ from a variety of investment instruments, subject to some constraints. I am able to formulate the selection as a mixed-integer problem (MIP) and solve it using Python's mip package.
Then, from this problem, I am extracting the worst possible sub-selection portfolio $W$ subject to constraints, which can also be formulated and solved as a MIP.
I can do this on a data set, but what I would really like is to find the investment proposal, which would yield the best possible worst-case portfolio. This ends up something like a max-min problem, where both max and min steps can be expressed as MIPs.
More formally, if $\mathcal{P}$ denotes the set of all possible proposals, and $\Omega(P)$ denotes the set of all possible selections from the proposal $P \in \mathcal{P}$, and $V:\Omega(P) \to \mathbb{R}$ denotes the evaluation of the selection portfolio, we would like to $$ \max_{P \in \mathcal{P}} \min_{s \in \Omega(P)} V(s). $$
One super-dumb way to implement this is to run minimization, which solves 2 MIPs at each iteration, which is both extremely slow and not necessarily so well-defined, since at any step, either of the MIPs may be infeasible.
Is there a way to tackle this more intelligently? I am asking for both references and advice, if possible, please.
POSSIBLY RELATED QUESTIONS
UPDATE
Given a set of investment instruments and some grouping criteria (by longevity or by riskiness, for example), I can select a proposal which would minimize the cost of the resulting combination with some distribution in each sub-group. Then from this proposal, I select a portfolio of smaller size and other more strict rules.
E.g. if my proposal has 10 apples (at \$4 each) and 20 bananas (at \$2 each), I may create a sub-selection that will be between \$20 and \$25 and will have maximum weight or best nutritional content.
It sounds like you are describing a bilevel optimization problem. One approach is to use Benders decomposition.