Sigpy is for signomial and polynomial optimization
For Signomials, it implements the SAGE hierarchy as described by Chandrasekaran and Shah: https://arxiv.org/abs/1409.7640.
For Polynomials, it uses the idea of a "signomial representative" to produce global lower bounds as described in my recent paper: https://arxiv.org/abs/1810.01614. The result is a theoretically and practically efficient method for computing lower bounds on polynomials, and is especially well-suited to sparse polynomials or polynomials of high degree. The bounds returned are always at least as strong as those computed by "SONC" as in https://arxiv.org/abs/1808.08431, and can be stronger. Additional documentation for this sub-package of sigpy is on the way!
- Download this repository. If needed, change your directory so that you are in the same directory as sigpy's
setup.pyfile. Activate the Python virtual environment of your choice. (Please do not install this directly to your system's Python distribution!)
python setup.py install, so as to install sigpy to your current Python environment.
python -c "import sigpy; print(sigpy.__version__)"to verify that sigpy installed correctly.
- [Optional] Run
python tests/test_signomials.pyto verify behavior of Signomial objects, and
python tests/test_sage.pyto verify behavior of CVXPY implementations of SAGE relaxations.
Soon we will have a dedicated collection of examples hosted on this repository. For now, there are two places to look:
- Functions in
- The second set of slides under "Newton Polytopes and Relative Entropy Optimization" at my website.