With the release of Gurobi 9.0, you can now solve models with non-convex quadratic constraints and objectives. However, you may encounter one of the following errors when solving a non-convex quadratic problem:
Error 10020: Objective Q not PSD
Error 10021: Quadratic equality constraints
By default, Gurobi 9 only solves a non-convex quadratic problem if the non-convex quadratic constructs can be removed or linearized during presolve.
To resolve this issue, set the NonConvex parameter to 2.
With this parameter setting, Gurobi solves non-convex quadratic problems by translating them into bilinear form, then applying spatial branching. Enforcing this parameter change should make you aware of the added complexity of the model.
For more information, check out our webinar on Non-Convex Quadratic Optimization.