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.]
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
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.
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