# 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 wish 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.

**News**

- 29 Aug. 15:
Picos1.1.1Released

- Minor release with following changes:

- Partial trace of an Affine Expression, cf.
`partial_trace()`

- Bugfix for compatibility with python3 (thanks to Sergio Callegari)
- Initial support for the SDPA solver (with the option
`solver='sdpa'`

, picos works as a wrapper around the SDPA executable based on the`write_to_file()`

function; thanks to Petter Wittek )- Better PEP8-compliance

- 15 Apr. 15:
Picos1.1.0Released

- 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:
Picos1.0.2Released

- 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 examplehere.- Partial transposition of an Affine Expression, cf.
`partial_transpose()`

or the`Tx`

attribute.Former changes are listed

here.

**PICOS Documentation contents**