Skip to main content

Will Gurobi solve general nonconvex models to global optimality in future?

Answered

Comments

3 comments

  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi,

    The upcoming Gurobi version 11 will be able to explicitly handle nonlinear functions such as \(\log, \exp, ...\). We are planning on improving this feature in every upcoming release after v11.

    The release of version 11 is planned for end of November / start of December. I recommend to sign up for our upcoming webinars about version 11 here.

    Best regards, 
    Jaromił

    1
  • Yingkai Song
    Gurobi-versary
    First Comment
    First Question

    Hi Jaromil,

    Many thanks for your reply and happy new year!

    If I am understanding correctly, the v11 handles nonlinear functions such as log() and exp() by dynamic outer approximation in a branch-and-bound procedure - I get that this is fundamentally different from the previous, which is to replace these nonlinear functions by static piecewise linear approximation during presolve. This leads to my two further questions and I very much appreciate your reply:

    1. In v11, to employ these nonlinear functions, I still need to use the built-in functions such as addGenConstrExp(), but cannot simply type log(), correct?

    2. I saw from the v11 webinar that there are numerical tests showing that v11 further improves solving MIQCP. However, since now you can handle general nonconvex MINLP, is there any comparison between v11 and other solvers, e.g. BARON for solving nonconvex MINLP with embedded log(), exp(), etc.? 

    Best,

    Yingkai

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Yingkai,

    In v11, to employ these nonlinear functions, I still need to use the built-in functions such as addGenConstrExp(), but cannot simply type log(), correct?

    This is correct. You additionally have to set the FuncNonlinear parameter globally or alternatively the FuncNonlinear attribute for each general function constraint.

    Supporting composite functions directly is on our road map for v12. This will allow for a direct use of log() and other functions in the gurobipy API.

    I saw from the v11 webinar that there are numerical tests showing that v11 further improves solving MIQCP. However, since now you can handle general nonconvex MINLP, is there any comparison between v11 and other solvers, e.g. BARON for solving nonconvex MINLP with embedded log(), exp(), etc.? 

    As far as I know, there is currently no official comparison between Gurobi v11 and other MINLP solvers. The main reason for that as of today is the rather simplistic and tedious API on Gurobi's side. In order to translate a given model, one would have to decompose each composite nonlinear function into its atomic univariate functions and the bilinear product. This will most likely change once it is possible to directly provide composite functions via an API.

    Please note that this is just a first version of the MINLP solver and we expect it to improve quickly similarly as it was the case for (non)convex MIQCPs.

    Best regards, 
    Jaromił

    0

Please sign in to leave a comment.