This repository contains quadratic programs (QPs) in a format suitable for qpbenchmark. It is free-for-all, open to problems from all fields, hard and easy. Here are the reports produced by the benchmarking tool:
The recommended process is to install the benchmark and all solvers in an isolated environment using conda
:
conda env create -f environment.yaml
conda activate qpbenchmark
It is also possible to install the benchmark individually by pip install qpbenchmark
.
Run the test set as follows:
python free_for_all.py run
The outcome, written to the results/
directory, is a standardized report comparing all available solvers against the different benchmark metrics. You can check out and post your own results in the Results forum.
Do you have quadratic programs to share? Join the benchmark by submitting it to this test set: open a PR (preferred), or complete the submission form:
You can also contribute by running the benchmark on your machine and posting your results to the Results forum.
Here are all problems in this test set:
Problem name | Source and details |
---|---|
CONT-* |
Maros-Meszaros test set |
DOCSLS |
From this issue |
GNAR* |
Proposed in #2 and #3, details in this paper |
ICULS* |
Proposed in #1 |
LIPMWALK* |
Proposed in #3, details in this paper |
QUADCMPC* |
Proposed in mpc_qpbenchmark#1, details in this thesis |
WHLIPBAL* |
Proposed in #4, details in this paper |
These problems have been contributed by:
- @paLeziart: QUADCMPC
- @stephane-caron: LIPMWALK, WHLIPBAL
If you use qpbenchmark
in your works, please cite all its contributors as follows:
@software{qpbenchmark2024,
title = {{qpbenchmark: Benchmark for quadratic programming solvers available in Python}},
author = {Caron, Stéphane and Zaki, Akram and Otta, Pavel and Arnström, Daniel and Carpentier, Justin and Yang, Fengyu and Leziart, Pierre-Alexandre},
url = {https://github.com/qpsolvers/qpbenchmark},
license = {Apache-2.0},
version = {2.3.0},
year = {2024}
}
Related test sets that may be relevant to your use cases:
- Maros-Meszaros test set: a standard test set with problems designed to be difficult.
- Model predictive control: model predictive control problems arising e.g. in robotics.