jrl-umi3218 / jrl-qp

Tools and implementations to write, specialize and test QP solvers
BSD 3-Clause "New" or "Revised" License
12 stars 3 forks source link

Benchmark comparison to eiquadprog++ #2

Open stephane-caron opened 4 years ago

stephane-caron commented 4 years ago

The eiquadprog++ solver from Luca Di Gaspero et al. is another Eigen-based implementation of Goldfarb-Idnani. Have you tried it out?

I'd be curious to know how it compares to your implementation in GoldfarbIdnaniSolver.cpp :slightly_smiling_face:

aescande commented 4 years ago

Yes, I did some benchmarks that I should put properly in form.

The computations done by the two implementations are usually very close and, as a result, the timing are almost identical in a number of situations. Where GoldfarbIdnaniSolver is faster (for now) is when handling double sided inequalities (slight edge) and bounds (larger difference). I'll soon be adding warm start as well, which could give quite substantial gains. For now, GoldfarbIdnaniSolver is missing a robust handling of quasi linear dependencies in the active-set, what eiquadprog++ has. This is the very first item on my todo list.

Edit: you can actually run and play with the benchmarks comparing some solvers (LSSOL, QLD, Quadprog, eiquadprog++ and GoldfarbIdnani) with `benchmarks/Solvers.cpp