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  nonfree  
CVXOPT  native  Yes  Yes  Yes  GP  GPL3  
ECOS  ecospython  Yes  Yes  Yes  Yes  GPL3  
GLPK  swiglpk  Yes  Yes  GPL3  
Gurobi  included  Yes  Yes  Yes  nonfree  
MOSEK  included  Yes  Yes  Yes  WIP  Yes  nonfree 
SCIP  PySCIPOpt  Yes  Yes  Yes  ZIB/MIT  
SMCP  native  Yes  GPL3 
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  pythonpicos  pythonpicosgit 
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
 Guillaume Sagnol has started work on PICOS in 2012.
 Maximilian Stahlberg is extending and comaintaining PICOS since 2017.
Contributors
For an uptodate 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.
Filename, size  File type  Python version  Upload date  Hashes 

Filename, size PICOS2.2.6.tar.gz (306.0 kB)  File type Source  Python version None  Upload date  Hashes View 