# PICOS: A Python Interface for Conic Optimization Solvers¶

Welcome to the documentations 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**

- 4 Jul. 16:
Picos1.1.2Released

- Major release with following changes:

- Improved efficiency for the processing of large expressions.
- It is now possible to dynamically add and remove constraints, e.g. for column generation approaches, cf.
this paragraphfor an example. For an easier use, the function`add_constraint()`

now returns a handle to the constraint when the option`return_constraints=True`

has been passed to the problem. Then, constraints can be deleted by using`constraint.delete()`

.- In previous versions, PICOS detected constraints that could be interpreted as a bound on a variable. This was creating a mess to delete constraints, so the default behaviour is now to pass all constraints as such. To stick to the old behaviour, use the option
`pass_simple_cons_as_bound=True`

.- New signature for the function
`partial_transpose()`

, which can now transpose arbitrary subsystems from a kronecker product.- Corrections of minor bugs with complex expressions.
- Better support for the SDPA solver.

- 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.
Former changes are listed

here.

**PICOS Documentation contents**