Skip to content

A Python implementation of a conjugate gradient algorithm (GPCG) for solving bound-constrained quadratic programs.

License

Notifications You must be signed in to change notification settings

jlindbloom/gradient-projected-conjugate-gradient

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gradient-projected-conjugate-gradient

License: MIT

This repository provides a Python implementation of the gradient projected conjugate gradient algorithm (GPCG) presented in [1] for solving bound-constrained quadratic programs of the form

$$\text{argmin}_{ x_i \in [l_i, u_i] \text{ for } i = 1, \ldots, n } \,\, \frac{1}{2} x^T A x - b^T x$$

where $b \in \mathbb{R}^n$ and $A \in \mathbb{R}^{n \times n}$ is a SPD matrix. Here the $l_i$ and/or $u_i$ may be infinite, e.g., we can solve quadratic programs with nonnegativity constraints.

Install with pip install gpcg.

References

[1] Moré, J., & Toraldo, G. (1991). On the Solution of Large Quadratic Programming Problems with Bound Constraints. SIAM Journal on Optimization, 1(1), 93-113.

About

A Python implementation of a conjugate gradient algorithm (GPCG) for solving bound-constrained quadratic programs.

Topics

Resources

License

Stars

Watchers

Forks

Languages