Skip to main content

Signomial and polynomial optimization via SAGE relaxations.

Project description

Sageopt is for signomial and polynomial optimization

Coverage Status Build Status PyPI - Wheel DOI

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

  1. SciPy, version >= 1.1.
  2. Numpy, version >= 1.14.
  3. 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:

  1. Download this repository. If needed, change your directory so that you are in the same directory as sageopt's setup.py file.
  2. Activate the Python virtual environment of your choice.
  3. Run python setup.py install to install sageopt to your current Python environment.
  4. Run python -c "import sageopt; print(sageopt.__version__)" to verify that sageopt installed correctly.
  5. Run pip install pytest (or conda install pytest) in preparation for running unittests.
  6. Run pytest sageopt/tests.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sageopt-0.6.1.tar.gz (113.3 kB view details)

Uploaded Source

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

Hashes for sageopt-0.6.1.tar.gz
Algorithm Hash digest
SHA256 827196b87b52ea83d71735045d8ebdceaf89996ec889539a8eb7e3392a166fe9
MD5 d35f3e489d1aa991831d7ce1a78982ce
BLAKE2b-256 2c37ebeaae0acf3dcc79d9b5c64fdf8b8a6d49cef7ec2c7aac86503bea7eec20

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page