Decent QP solver?

I’m looking for a QP solver to do a “quick-and-dirty” Optimal Control/MPC implementation for a linear-quadratic system.

Does GalacticOptim or Optim support a pure QP solver? A year ago, someone suggested COSMO.jl.

Any views on a suitable choice? [I don’t need to use JuMP, as it is relatively straightforward to formulate the QP matrices.]

1 Like

I use OSQP.jl for these cases. It has some nice properties for MPC in particular, such as code generation, possibly division-free operation, warm starting etc.

You can call it through MathOptInterface which is used by both JuMP and optionally by Optimization.jl

6 Likes

If your QP is convex, HiGHS should be competitive. If not, I know BQPD supports negative curvature, but I don’t think there’s a Julia binding.

2 Likes

I would also suggest the recent Clarabel.jl, which is performing very well for several MPC problems I have tried. It’s for convex problems only, like OSQP, HiGHs and COSMO.jl

Unfortunately, I had seen quite a few times HiGHS failing in QP problems of mine - I should try to report them to their developers as minimal examples when I find time.

Also, it’s worth nothing that BQPD is not free. In the commercial route there is also Gurobi and CPLEX. CPLEX in particular can also solve non-convex QPs to either global or local optimality.

A more complete list can be found here

2 Likes