Skip to main content

Issue when getting dual optimal solution for an MIQCP model

Answered

Comments

4 comments

  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Yingkai Song,

    1. What does the fixed MIQCP mean? Does it mean that GUROBI fix all binaries and solve a QCP?

    The message means that Gurobi fixes all binary variables in order to obtain a continuous model. Note that dual values are only well-defined for continuous models. If the fixed model is convex, then dual values can be computed.

    2. What do you think the reason behind all these numerical difficulties when trying to find a dual optimal solution?

    This is a good question which I cannot answer without having a closer look at the model. Could you please share this particular instance as an MPS or LP file? Note that uploading files in the Community Forum is not possible but we discuss an alternative in Posting to the Community Forum.

    3. If I do not need the optimal dual solution, can I safely ignore this problem, and do you think the obtained primal optimal solution for my multiperiod pooling problem is still 100% accurate and reliable?

    Yes and (almost 100%) yes. Please note that you should always check whether the final optimal solution returned by Gurobi makes sense for your application. You should never just blindly trust any solver solution in an advanced real-world application. It is most often required that slight manual altering of the final solution point is needed to make the solution actually "real-world feasible". The reason is mainly of numerical nature where machine-precision inaccuracies can add up to something that is correct w.r.t. the algorithm but may not be perfectly accurate for your real-world system.

    Best regards, 
    Jaromił

    0
  • Yingkai Song
    Gurobi-versary
    First Comment
    First Question

    Hi Jaromil, 

    Many thanks for your thorough and detailed reply!

    1 and 2: I should have recalled that the dual values in principle make sense when the fixed model is convex. However, my fixed MIQCP model is typically nonconvex due to bilinear terms. In this case, when Gurobi failed to compute dual values, do you think it may be because of my fixed model's nonconvexity? The following question may not be suitable here, but I tried to solve the same model using other generic MINLP solver such as BARON. However, I found that unlike Gurobi, BARON always gave me dual values, even though the fixed model is nonconvex. Do you have any insights for this? 

    3: Good to know! I am not dealing with a real-world problem. As long as I have global optimality which satisfies all my constraints (under mild tolerance for machine precision). Then, it is good enough. 

     

    Yingkai

    0
  • Jaromił Najman
    Gurobi Staff Gurobi Staff

    Hi Yingkai,

    1 and 2: I should have recalled that the dual values in principle make sense when the fixed model is convex. However, my fixed MIQCP model is typically nonconvex due to bilinear terms. In this case, when Gurobi failed to compute dual values, do you think it may be because of my fixed model's nonconvexity?

    Yes, it is due to the nonconvexity. Currently, Gurobi does not compute dual values for nonconvex models. This will possibly be added in an upcoming release.

    The following question may not be suitable here, but I tried to solve the same model using other generic MINLP solver such as BARON. However, I found that unlike Gurobi, BARON always gave me dual values, even though the fixed model is nonconvex. Do you have any insights for this? 

    Global MINLP solvers such as BARON or OCTERACT usually use a local solver such as, e.g., IPOPT, KNITRO, or CONOPT (or any own algorithm) to find feasible locally optimal solution points. These local solvers provide dual information about the locally optimal solution they find. This is the information that the global MINLP solver provides to the user.

    3: Good to know! I am not dealing with a real-world problem. As long as I have global optimality which satisfies all my constraints (under mild tolerance for machine precision). Then, it is good enough. 

    If possible, could you please share this particular model anyway? I would like to have a look at what might be going wrong in the Barrier solve. Note that uploading files in the Community Forum is not possible but we discuss an alternative in Posting to the Community Forum.

    Best regards, 
    Jaromił

    0
  • Yingkai Song
    Gurobi-versary
    First Comment
    First Question

    Hi Jaromil,

    Sorry, since the code contains some of our unpublished work, I may not be able to share it with this community. This situation may change soon and I will let you know. 

    Thanks again for all your clarifications.

    Best,

    Yingkai

     

     

    0

Please sign in to leave a comment.