A Sequential Convex Optimization library for solving non-convex optimization problems. Intended for use with the OpenTAMP planning system.
Project description
sco_py: Sequential Convex Optimization with Python
sco_py is a lightweight Sequential Convex Optimization library for solving non-convex optimization problems. sco_py is intended for use with the OpenTAMP planning system. Currently, the library supports both Gurobi (license required) and OSQP (open-source, no license required!) as backend QP solvers.
Installation
From PyPI with pip
Simply run: pip install sco-py
From GitHub with pip
Simply run: pip install git+https://github.com/Algorithmic-Alignment-Lab/sco_py.git
Developer (from source)
- Clone this repository from GitHub
- Install Poetry by following the instructions from here
- Install all dependencies with
poetry install
.
Contributing
sco is an open-source repository and as such, we welcome contributions from interested members of the community! If you have a new idea for a feature/contribution, do post in the 'Discussions' tab of the GitHub repository to get some feedback from the maintainers before starting development. In general, we recommend that you fork the main repository, create a new branch with your proposed change, then open a pull-request into the main repository. The main requirement for a new feature is that it cannot break the current test cases (see below for how to run our tests) unless this is unavoidable, and in this case, it should modify/introduce new tests as necessary. In particular, we welcome updates to documentation (docstrings, comments, etc. that make the codem more approachable for new users) and test cases!
Running tests
If you do not have a license for Gurobi, then you can only run the OSQP tests. To do so, run:
pytest tests/sco_osqp/
If you do have a license for Gurobi, then you can run all tests with the pytest
command.
Note that our Contrinuous Integration (CI) setup only checks and reports status for OSQP tests. In general, if you are contributing a new feature, it must pass the existing OSQP tests and contribute new tests that test the new feature at least with OSQP (and preferably with Gurobi as well).
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
Built Distribution
File details
Details for the file sco_py-0.4.0.tar.gz
.
File metadata
- Download URL: sco_py-0.4.0.tar.gz
- Upload date:
- Size: 23.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.8 CPython/3.7.12 Linux/5.13.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6c8a9456242984efa9c785035cbca45859532c251246ec27038c1e320482faf9 |
|
MD5 | 3ef334fb957a36e941a5b132c4cd0567 |
|
BLAKE2b-256 | c779af097848593493cbef5a8b78887c6ae08268958ad9ae214fb44d867a089b |
File details
Details for the file sco_py-0.4.0-py3-none-any.whl
.
File metadata
- Download URL: sco_py-0.4.0-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.8 CPython/3.7.12 Linux/5.13.0-1021-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2858e78c434eeed86caded5bc5e238739d3c21c3c59ab87dddba13d8d131a85d |
|
MD5 | 4fe6b1945043726664a6c45549bba033 |
|
BLAKE2b-256 | 76f7336e8a365a16d99f17d1761a006f6e1722cc4727e292ee8c3ebff8ed39e9 |