Signomial and polynomial optimization via SAGE relaxations.
Project description
Sageopt is for signomial and polynomial optimization
Sageopt provides functionality for constructing, solving, and analyzing convex relaxations for signomial and polynomial optimization problems. It also provides functionality for recovering feasible solutions from these convex relaxations.
You can use sageopt as a standalone tool to find provably optimal solutions to hard optimization problems. You can also use sageopt as part of a broader effort to find locally-optimal solutions to especially difficult problems (with bounds on possible optimality gaps).
These underlying convex relaxations are built upon the idea of "SAGE certificates" for signomial and polynomial nonnegativity. Refer to the paper Signomial and Polynomial Optimization via Relative Entropy and Partial Dualization for a mathematical description of the functionality implemented by this python package.
This readme file contains a minimal amount of information on sageopt. Users of this software are encouraged to visit the main sageopt website.
Dependencies
We also require the following packages
- SciPy, version >= 1.1.
- Numpy, version >= 1.14.
- ECOS, version >= 2.0.
It is highly recommended that you also install MOSEK (version >= 9). MOSEK is a commerical optimization solver, and currently the only solver that is able to handle the more intersting convex relaxations needed for optimization with SAGE certificates. If you are in academia (that includes undergraduates!) you can request a free academic license for MOSEK.
To install
Run pip install sageopt
.
If you use Anaconda for Python development, please (1) activate your anaconda environment, (2) run conda install pip
, and (3) run
pip install sageopt
. It is important that pip be installed inside your conda environment, or sageopt
might not be detected by Anaconda Navigator (among other environment management tools).
To install sageopt from source, do the following:
- Download this repository. If needed, change your directory so that you are in the same directory as
sageopt's
setup.py
file. - Activate the Python virtual environment of your choice.
- Run
python setup.py install
to install sageopt to your current Python environment. - Run
python -c "import sageopt; print(sageopt.__version__)"
to verify that sageopt installed correctly. - Run
pip install pytest
(orconda install pytest
) in preparation for running unittests. - Run
pytest sageopt/tests
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file sageopt-0.6.1.tar.gz
.
File metadata
- Download URL: sageopt-0.6.1.tar.gz
- Upload date:
- Size: 113.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
827196b87b52ea83d71735045d8ebdceaf89996ec889539a8eb7e3392a166fe9
|
|
MD5 |
d35f3e489d1aa991831d7ce1a78982ce
|
|
BLAKE2b-256 |
2c37ebeaae0acf3dcc79d9b5c64fdf8b8a6d49cef7ec2c7aac86503bea7eec20
|