Skip to content

Suggestion : Handle unbounded high-point relaxation #140

@hlefebvr

Description

@hlefebvr

Hello,

I am suggesting an enhancement to MibS and will try to motivate this with an example.

Enhancement Handle MILP-MILP Bilevel problems with unbounded high-point relaxation.

Motivation The main motivation comes from the two-stage robust optimization literature and, in particular, the adversarial problem therein, which is a bilevel problem.

Two-stage robust optimization is concerned with general problems of the form

$$ \begin{align} \min_x \ & c^\top x \\ \text{s.t.} \ & x\in X, \\ & \forall \xi\in\Xi, \exists y\in Y(x,\xi). \end{align} $$

Here, $X$ is called the first-stage feasible space, $\Xi$ is the uncertainty set and $Y(x,\xi)$ is the second-stage feasible space.

One traditional method to solve such problems is through column-and-constraint generation. This method considers a finite subset $\lbrace \xi^1, \dotsc, \xi^K \rbrace \subset \Xi$ and solves the relaxation

$$ \begin{align} \min_x \ & c^\top x \\ \text{s.t.} \ & x\in X, \\ & y^k\in Y(x,\xi^k) \qquad k=1,\dotsc,K. \end{align} $$

Then, one needs to check if a (projected) solution to this relaxation, say $\hat x$, is feasible for the original problem. Hence, one needs to search for a $\xi\in \Xi$ such that $Y(x,\xi) = \emptyset$. This can be done by solving a bilevel problem which maximizes newly introduced "artificial" variables in the second stage, i.e., one solves

$$ \begin{align} \max_{\xi\in\Xi} \ & s \\ \text{s.t.} \ & \xi\in\Xi, \\ & y\in\text{arg min}_y { s : y\in Y(x,\xi) + s }. \end{align} $$

Unfortunately, this problem has an unbounded high-point relaxation which makes it unsolvable by MibS.

Hence, in order to be able to use MibS in, e.g., column-and-constraint algorithms as a sub-routine for two-stage robust problem, it would be very nice if MibS could solve such problems.

I am open to discussion on how this can be achieved (included, if needed, contribution to the MibS code).

Thank you,

Henri.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions