Warning of max constraint violation exceeding tolerance in MIQCP
AnsweredI am using Gurobi version 10.0.1 to solve problems formulated as mixed-integer programs with linear objective function and all linear constraints except for a set of constraints which are quadratic convex.
The quadratic constraints are perspective constraints of the form:
v[i]^2 <= u[i]y[i] for i={1,...,100}
where v,u are non-negative continuous variables, whereas y is a binary variable. They can also be expressed as rotated second-order cones.
I am trying to solve instances of this problem, but on every instance there is a warning in the log file that says (I am copying and pasting one of these warnings) "Warning: max constraint violation (4.8070e-01) exceeds tolerance". I tried setting several parameters to avoid this, without success. I don't know what to do because I can't rely on the optimal solution found if it says it is violating some constraints.
The parameters I tested are: MIPGap = 0.0, FeasibilityTol = 1e-9, IntFeasTol = 1e-9, OptimalityTol = 1e-9, Presolve = 0, MIPGapAbs = 0, PSDTol = 0, BarQCPConvTol = 0, BarConvTol = 0. I also tested PreMIQCPForm = 2 together with BarHomogeneous = 1.
I am solving the problem without any callback, simply using the function model.optimize(). I am not setting other parameters than the ones I listed above. The problem admits solution (e.g., with y=1), so it cannot be infeasible, nor unbounded. I can send some instances/logs if it can help understanding what is going on (in case, please let me know how). I'd be grateful if you could provide some guidance.
-
You can try different PreMIQCPForm = 0, or 1 or PreQLinearize = 0, 1, 2.
Also if you have any warnings in the log you may want to try the NumericFocus = 1, 2, or 3 or Quad = 1.
You may also want to reduce the bounds for the variables if possible.
Cheers,
David0
Please sign in to leave a comment.
Comments
1 comment