メインコンテンツへスキップ

Bilinear Program should be unbounded but GUROBI says it has a finite value

回答済み

コメント

5件のコメント

  • Riley Clement
    Gurobi Staff Gurobi Staff

    Hi Lukas,

    The default lower bound on variables is 0.  If you want it to be something else you need to overwrite it with the lb argument when adding your variables.  To remove the lower bound altogether use -float("inf"),  float("-inf") or -GRB.INFINITY.

    - Riley

    0
  • Lukas-Benedikt Fiechtner
    First Question
    First Comment

    Great, thanks for the clarification!

    0
  • Lukas-Benedikt Fiechtner
    First Question
    First Comment

    Even if I add the bounds GUROBI still does not detect unboundedness (albeit it finds feasible points with very small value). 

    0
  • Riley Clement
    Gurobi Staff Gurobi Staff

    Yes I can see why this is confusing when we arrive at an answer of

    x = 1.0, y = -536870912000000.0

    Here the variables are below 1, but if we add upper bounds of 1 to the problem then the model is declared unbounded.  I can't say whether this is a bug, or just unintended consequences arising from multiplying two unbounded continuous variables together, hence the warning message

    Warning: Model contains variables with very large bounds participating
             in product terms.
             Presolve was not able to compute smaller bounds for these variables.
             Consider bounding these variables or reformulating the model.

    The log, when turning off heuristics gives some clues, as the incumbents are powers of 2 multiplied by 1e6.  I'd guess it has something to do with spatial branching.

    Jaromił Najman is a non-linear guru, have you got any insights mate?

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Proving unboundedness for nonconvex models is very challenging. The issues arise in the convex (linear) relaxation that is constructed for a given nonconvex problem. Due to unbounded variable values, the numerics of the relaxation LP are horrific. This can lead to any sort of unexpected behavior, such as determining some very big value (in absolute terms) as optimal instead of stating that a given relaxation is actually unbounded. This is one of the reasons why we strongly recommend to bound all variables participating in nonlinear terms.

    0

サインインしてコメントを残してください。