Skip to main content

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.

Metadata

Release files for sageopt 0.6.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sageopt 0.6.1
File Size Uploaded
sageopt-0.6.1.tar.gz 113.3 kB Details

Release files / sageopt-0.6.1.tar.gz

Download URL sageopt-0.6.1.tar.gz
Size 113.3 kB
Tags Source
SHA-256 checksum
How to use checksums
827196b87b52ea83d71735045d8ebdceaf89996ec889539a8eb7e3392a166fe9
BLAKE2b-256 checksum
How to use checksums
2c37ebeaae0acf3dcc79d9b5c64fdf8b8a6d49cef7ec2c7aac86503bea7eec20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.11.10

Release history Release notifications | RSS feed

This release

0.6.1 This release

1 release file

0.6.0

1 release file

0.5.3

1 release file

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page