PICOS: A Python Interface for Conic Optimization Solvers¶
Welcome to the documentation of PICOS, a user-friendly python interface to many linear and conic optimization solvers, see more about PICOS in the introduction.
The latest version can be downloaded here, and can be installed by following these instructions. Alternatively, you can clone the latest development version from github: $ git clone https://github.com/gsagnol/picos.git. If you whish to collaborate on PICOS, please make a pull request on github.
This documentation contains a tutorial and some examples, which should already be enough for a quick start with PICOS. There is also a summary of useful implemented functions. To go deeper, have a look at the picos reference, which provides information on every function of PICOS.
- 15 Apr. 15: Picos 1.1.0 Released
- PICOS is now compatible with python 3+ (and remains compatible with python 2.6+). Many thanks to Sergio Callegari for this compatibility layer ! If you plan to work with PICOS and python3, think to install the most recent version of your solver (Mosek, Cplex, Gurobi, or Cvxopt). SCIP is not supported in python3+ at this point (but remains supported with python 2.x).
- PICOS is now available on github.
- 30 Jan. 15: Picos 1.0.2 Released
- Major release with following new functionalities:
- Support (read and write) for .cbf problem files (conic benchmark format ), which should be the standard for (mixed integer) conic optimization problems, cf. write_to_file and import_cbf .
- Improved support for complex SDP (more efficient implementation of to_real() , corrected bug in the implementation of the scalar product for Hermitian matrices and the conjugate of a complex expression, support for equality constraints involving complex coefficients)
- Support for inequalities involving the sum of k largest elements of an affine expression, or the k largest eigenvalues of a symmetric matrix expression, cf. the functions sum_k_largest() , sum_k_smallest() , sum_k_largest_lambda(), sum_k_smallest_lambda(), lambda_max() and lambda_min() .
- Support for inequalities involving the norm of an affine expresison, cf. norm() .
- New vtype for antisymmetric matrix variables ( vtype = antisym).
- Constraints can be specified as membership in a Set . Sets can be created by the functions ball() , simplex(), and truncated_simplex() .
- New functions maximize and maximize to specify the objective function of a problem and solve it.
- And many thanks to Petter Wittek for the following improvements, who were motivated by the use of PICOS in the package ncpol2sdpa for optimization over noncommutative polynomials:
- More efficient implementation of the writer to the sparse - SDPA file format (write_to_file)
- Hadamard (elementwise) product of affine expression is implemented, as an overload of the ^ operator, cf. an example here .
- Partial transposition of an Affine Expression, cf. partial_transpose() or the Tx attribute.
Former changes are listed here.
PICOS Documentation contents
- User’s guide
- The PICOS Reference
- Change History