Comparative denchmark of https://github.com/asherikov/qpmad QP solver

Alexander Sherikov e9d46300e2 qpmad 1.2.0 vor 2 Jahren
ariles @ 4eb1e3e1eb 8adf7b9a79 test/oneshot: read QPs vor 4 Jahren
cmake ea845cab0e test/oneshot: solve QPs with eiquadprog vor 4 Jahren
eiquadprog @ 3c6006c9bd 26630dfb6f Update solvers, regenerate plots. vor 2 Jahren
figures e9d46300e2 qpmad 1.2.0 vor 2 Jahren
qpOASES @ 326a6517da f8d00067b2 Initial commit vor 4 Jahren
qp_collection @ 91526180bf bd17a461aa test/iterative: solve qith qpmad vor 4 Jahren
qpmad @ 65924534a7 e9d46300e2 qpmad 1.2.0 vor 2 Jahren
test e9d46300e2 qpmad 1.2.0 vor 2 Jahren
.gitignore f8d00067b2 Initial commit vor 4 Jahren
.gitmodules ea845cab0e test/oneshot: solve QPs with eiquadprog vor 4 Jahren
CMakeLists.txt bfb17b3624 +test/oneshot_profiling vor 4 Jahren
Makefile e9d46300e2 qpmad 1.2.0 vor 2 Jahren
README.md 10ffac68cd Add figures. vor 4 Jahren

README.md

Comparative benchmark of QP solvers

Solvers:

Results

  • All problems are dense and positive-definite.
  • qpOASES is used with MPC option preset, this gives ~50% performance boost compared to default preset.
  • Time measurements include only the time required to solve a problem; other operations, such as initialization of the solver or reshaping of the constraints, are not taken into account.

oneshot (qpOASES)

Time (second) required to solve each of the problems: oneshot

The same plot with logarithmic scale: oneshot_log

iterative (qpOASES)

  • The problem set includes MPC problems distributed with qpOASES -> https://github.com/coin-or/qpOASES/tree/misc/testingdata/cpp/oqp, all of them have constant Hessian and varying constraints.

  • qpOASES is hotstarted starting from the second problem in the sequence, factorization of the Hessian is reused by qpmad in the same way.

  • eiQuadProg does not produce the exact answer (up to 1e-9 precision) on some of the problems.

Plots correspond to specific MPC problems and demonstrate time (second) taken by the solvers on each MPC iteration: iterative