Skip to main content

A Python interface to conic optimization solvers.

Project description

PICOS is a user friendly Python API to several conic and integer programming solvers, very much like YALMIP or CVX under MATLAB.

PICOS allows you to enter a mathematical optimization problem as a high level model, with painless support for (complex) vector and matrix variables and multidemensional algebra. Your model will be transformed to the standard form understood by an appropriate solver that is available at runtime. This makes your application portable as users have the choice between several commercial and open source solvers.

Features

PICOS supports the following solvers and problem types. To use a solver, you need to seperately install it along with the Python interface listed here.

Solver

Python
interface




License

CPLEX included Yes Yes     Yes non-free
CVXOPT native Yes Yes Yes GP   GPL-3
ECOS ecos-python Yes Yes   Yes Yes GPL-3
GLPK swiglpk Yes       Yes GPL-3
Gurobi included Yes Yes     Yes non-free
MOSEK included Yes Yes Yes WIP Yes non-free
SCIP PySCIPOpt Yes Yes     Yes ZIB/MIT
SMCP native     Yes     GPL-3

Example

This is what it looks like to solve a multidimensional mixed integer program with PICOS:

>>> import picos
>>> P = picos.Problem()
>>> x = picos.IntegerVariable("x", 2)
>>> P.add_constraint(2*x <= 11)
<2×1 Affine Constraint: 2·x ≤ [11]>
>>> P.set_objective("max", picos.sum(x))
>>> P.solve(solver="glpk")  # Optional: Use GLPK as backend.
<feasible primal solution (claimed optimal) from glpk>
>>> P.value
10.0
>>> print(x)
[ 5.00e+00]
[ 5.00e+00]

You can head to the tutorial for more examples.

Installation

As of release 2.2, PICOS requires Python 3.4 or later.

Via pip

If you are using pip you can run pip install picos to get the latest version.

Via Anaconda

If you are using Anaconda you can run conda install -c picos picos to get the latest version.

Via your system’s package manager

Distribution Latest release Latest version
Arch Linux python-picos python-picos-git

If you are packaging PICOS for additional systems, please let us know.

From source

The PICOS source code can be found on GitLab. There are only two dependencies:

Documentation

The full documentation can be browsed online or downloaded in PDF form.

Credits

Developers

Contributors

For an up-to-date list of all code contributors, please refer to the contributors page. Should a reference from before 2019 be unclear, you can refer to the old contributors page on GitHub as well.

License

PICOS is free and open source software and available to you under the terms of the GNU GPL v3.

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.

Files for PICOS, version 2.2.6
Filename, size File type Python version Upload date Hashes
Filename, size PICOS-2.2.6.tar.gz (306.0 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page