opt.th • [ ![Build Status] travis-image ] travis [
license-image ] license
Torch library for optimization.
You may also be interested in:
- Torch Gurobi bindings at bamos/gurobi.torch.
- Torch ECOS bindings at bamos/ecos.torch.
- bamos/opt.py: Python library for optimization.
cvx-optim.spg
implements the Spectral Projected Gradient (SPG)
method [1,2] for convex-constrained optimization.
cvx-optim.pgd
implements projected gradient descent (PGD) for
convex-constrained optimization with the proximal algorithm
described in Section 4.3 of [3].
Algorithm 1 of [4].
After installing Torch, cvx-optim.torch
can be installed with:
luarocks install https://raw.githubusercontent.com/bamos/cvx-optim.torch/master/cvx-optim-scm-1.rockspec
- Cloning this repo and running
luarocks make
.
After installing the library with luarocks
, our tests in
test.lua
can be run with th test.lua
.
This repository is Apache-licensed.
[1] Birgin, Ernesto G., José Mario Martínez, and Marcos Raydan.
"Algorithm 813: SPG—software for convex-constrained optimization."
ACM Transactions on Mathematical Software (TOMS) 27.3 (2001): 340-349.
http://www.ime.usp.br/~egbirgin/publications/bmr2.pdf
[2] Birgin, Ernesto G., José Mario Martínez, and Marcos Raydan.
"Nonmonotone spectral projected gradient methods on convex sets."
SIAM Journal on Optimization 10.4 (2000): 1196-1211.
http://epubs.siam.org/doi/pdf/10.1137/S1052623497330963
[3] Parikh, Neal, and Stephen P. Boyd.
"Proximal Algorithms."
Foundations and Trends in optimization 1.3 (2014): 127-239.
http://www.web.stanford.edu/~boyd/papers/pdf/prox_algs.pdf
[4] Smola, Alex J., S.V.N. Vishwanathan, and Quoc V. Le
"Bundle methods for machine learning."
Advances in Neural Information Processing Systems. 2007.
http://machinelearning.wustl.edu/mlpapers/paper_files/NIPS2007_470.pdf