# Dual Values¶

Picos typically reformulates optimization problems as conic programs of the form

where each is a linear map from to a linear space containing the cone , and the generalized conic inequality means for a cone . For the sake of compactness, we allow generalized inequalities over the trivial cone , such that represents an equality constraint .

The dual conic problem can be written as follows:

where denotes the adjoint operator of and denotes the the dual cone of (see the note below for a list of cones that are supported in PICOS, together with their dual).

After an optimization problem has been solved, we can query the optimal dual
variable of a conic constraint `con`

over the cone
with its `dual`

attribute, i.e.,
`con.dual`

.

When an optimization problem `P`

can be reformulated to a conic program `C`

of the above form by PICOS, we can use its `dual`

attribute to return a `Problem`

object `D=P.dual`

which
contains the dual conic program of `C`

. It is also possible to solve `P`

via
its dual by using the dualize option: This passes
problem `D`

to the solver, and the optimal primal and dual variables of `P`

will be retrieved from the optimal solution of `D`

.

## Supported cones and their dual¶

PICOS can provide dual information for problems involving the following cones:

Trivial cone

The trivial cone , whose dual cone is the entire space . This means that the dual variable for an equality constraint is unconstrained.

Nonnegative Orthant

The nonnegative orthant is self dual: . Therefore the dual variable for a set of linear inequalities is a vector .

Lorentz Cone

The Lorentz cone , which is used to model second-order cone inequalities, is self-dual: . This means that the dual variable for a second order cone inequality of the form

is a vector of the form such that .

Rotated Second-order Cone

The (widened or narrowed) rotated second order cone is

for some , and its dual cone is . In particular, is self-dual for . For example, the dual variable for the constraint with and , i.e.,

is a vector of the form such that ;

Positive Semi-definite Cone

The positive semidefinite cone is self dual: . This means that the dual variable for a linear matrix inequality is a positive semidefinite matrix ;

Exponential Cone

PICOS can also reformulate several constraints using the *exponential cone*
`ExponentialCone`

, as it is the case for example for
`KullbackLeiblerConstraint`

. PICOS provides dual
values for `ExpConeConstraint`

, as computed by the
solver, but dualization of those constraints is not yet supported.