An open API service indexing awesome lists of open source software.

https://github.com/petrus1904/superadmm

superADMM: Quadratic Program Solver with dynamic weighting ADMM
https://github.com/petrus1904/superadmm

c linear-programming matlab model-predictive-control optimization python quadratic-programming solver

Last synced: 2 months ago
JSON representation

superADMM: Quadratic Program Solver with dynamic weighting ADMM

Awesome Lists containing this project

README

          

# SuperADMM
Fast Quadratic Program Solver with dynamic weighting ADMM

This algorithm specifically solves problems of shape

$$
\begin{equation}
\begin{aligned}
& \underset{x}{\textbf{minimize}}
& & \tfrac12 x^\top P x + x^\top q\\
& \textbf{subject to}
& & l \le Ax \le u \\
\end{aligned}
\end{equation}
$$

where $x \in \mathrm{R}^n$ is the optimization variable, $P \in \mathrm{R}^{n \times n}$ and $q \in \mathrm{R}^n$ describe the quadratic cost function ($P$ is positive semi-definite), $A \in \mathrm{R}^{m \times n}$ is the linear constraint mapping and $l \in\mathrm{R}^m$, $u\in\mathrm{R}^m$ denote the lower and upper bounds of the constraints. Note that by setting $l_i = u_i$ for some index $i$, one can also include equality constraints in the problem. Furthermore, $l_i = -\infty$ or $u_i = \infty$ allows users to only consider lower or upper bounds.

# Installation

## Python (Express installation)
- `pip install superadmm`
- Enjoy your fast solver in Python with `import superADMM`

## MATLAB (Express installation)
- Download the latest release (https://github.com/Petrus1904/superADMM/releases)
- Unzip the contents in some folder
- Run `superADMM_setup.m`
- Enjoy your fast solver in MATLAB with `superADMM.m`

## MATLAB (Manual installation)
- Download or clone this package
- Ensure that MATLAB `mex` add-on (code-generation) is installed, and `gcc` (MinGW64) is installed as mex compiler
- Verify with `mex -setup` that `MinGW64` is the default compiler
- Run `compile.m`
- Enjoy your fast solver in MATLAB with `superADMM.m`

# How to Cite

**APA:**

Verheijen, P.C.N., Goswami, D., and Lazar, M. (2025). *SuperADMM: Solving Quadratic Programs Faster with Dynamic Weighting ADMM.* arXiv: 2506.11608 [math.OC]. URL: https://arxiv.org/abs/2506.11608

**Bibtex:**
```
@misc{superADMM:Verheijen2025,
title={{SuperADMM: Solving Quadratic Programs Faster with Dynamic Weighting ADMM}},
author={P. C. N. Verheijen and D. Goswami and M. Lazar},
year={2025},
eprint={2506.11608},
archivePrefix={arXiv},
primaryClass={math.OC},
url={https://arxiv.org/abs/2506.11608},
}
```

# References
The fast execution of various linear algebraic operations is provided by a set of third party libraries, which we list below:
- [OpenBLAS] Wang Qian, Zhang Xianyi, Zhang Yunquan, Qing Yi, *AUGEM: Automatically Generate High Performance Dense Linear Algebra Kernels on x86 CPUs*, In the International Conference for High Performance Computing, Networking, Storage and Analysis (SC'13), Denver CO, November 2013
- [LAPACK] E. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, *LAPACK Users' Guide,* 3rd e. Philadelphia, PA: Society for Industrial and Applied Mathematics, 1999.
- [CSPARSE] T.A. Davis, *Direct Methods for Sparse Linear Systems.* SIAM, 2006
- [LDL] T.A. Davis, *Algorithm 849: A concise sparse cholesky factorization package,* ACM Trans. Math. Softw. vol. 31, no. 4, p. 587-591, Dec. 2005

# License
SuperADMM is licensed under LGPL 2.1.