Skip to main content

Accessing the piecewise-linear approximation of a nonconvex quadratic optimization problem

Answered

Comments

3 comments

  • Official comment
    Simranjit Kaur
    • Gurobi Staff
    This post is more than three years old. Some information may not be up to date. For current information, please check the Gurobi Documentation or Knowledge Base. If you need more help, please create a new post in the community forum. Or why not try our AI Gurobot?.
  • Jaromił Najman
    • Gurobi Staff

    Strictly speaking, Gurobi does not construct piecewise-linear constraints but rather adds linear constraints only to construct a linear (convex) relaxation of the nonconvex quadratic problem. These linear constraint cannot be controlled by parameters like FuncPieceRatio unless you are explicitly using general constraints.

    In particular, Gurobi will not construct an overestimator to your constraints but an underestimator to obtain a lower bound on the original nonconvex problem. If one would use the overestimator, it is possible to cut off feasible solutions of the original problem and ultimately cut off the optimal solution of the original problem.

    You can find more details in the Non-Convex Quadratic Optimization webinar and books on global optimization such as Horst & Tuy 1999 and/or Locatelli & Schön 2013.

    Is there a way we can access model (2) or a solution to it?

    Currently, there is no way to access model (2). However, you can access the solution of it via callbacks. For example, you could access the solution point of the relaxation of the rootnode via

    if where == GRB.Callback.MIPNODE:
    # check for root node
    if model.cbGet(GRB.Callback.MIPNODE_NODCNT) == 0:
    # check for optimization status of the relaxation LP
    if model.cbGet(Grb.Callback.MIPNODE_STATUS) == GRB.OPTIMAL:
    # get relaxation solution point
    rel_sol_pt = model.cbGetNodeRel(model.getVars())

    Best regards,
    Jaromił

    0
  • Shuvomoy Das Gupta
    • Gurobi-versary
    • Conversationalist
    • First Question

    Hi Jaromił,

     

    Thanks for your very clear answer, accessing the solution point of the relaxation of the root node works fine for my purpose. 

    0

Post is closed for comments.