picos.expressions.exp_quantkeydist

Implements QuantumKeyDistribution.

Classes

class picos.expressions.exp_quantkeydist.QuantumKeyDistribution(X, subsystems=0, dimensions=2, K_list=None)[source]

Bases: Expression

Slice of quantum relative entropy used to compute quantum key rates.

Definition

Let X be an n \times n-dimensional symmetric or hermitian matrix. Let \mathcal{Z} be the pinching map which maps off-diagonal blocks of a given block structure to zero, i.e., for a bipartite state

\mathcal{Z}(X) = \sum_{i} Z_i X Z_i^\dagger,

where Z_i= | i \rangle \langle i | \otimes \mathbb{I} if we block- diagonalize over the first subsystem, and Z_i= \mathbb{I} \otimes
| i \rangle \langle i | if we block-diagonalize over the second subsystem. We also generalize this definition to multipartite systems where we block- diagonalize over any number of subsystems.

  1. In general, this is the expression

    -S(\mathcal{G}(X)) + S(\mathcal{Z}(\mathcal{G}(X))),

    where S(X)=-\operatorname{Tr}(X \log(X)) is the quantum entropy, mathcal{G} is a positive linear map given by Kraus operators

    \mathcal{G}(X) = \sum_{i} K_i X K_i^\dagger.

  2. If K_list=None, then \mathcal{G} is assumed to be the identity map, and then this expression is simplified to

    -S(X) + S(\mathcal{Z}(X)).

Warning

When you pose an upper bound on this expression, then PICOS enforces X \succeq 0 through an auxiliary constraint during solution search.

__init__(X, subsystems=0, dimensions=2, K_list=None)[source]

Construct an QuantumKeyDistribution.

Parameters
  • X (AffineExpression) – The affine expression X.

  • subsystems (int or tuple or list) – A collection of or a single subystem number, indexed from zero, corresponding to subsystems that will be block- diagonalized over. The value -1 refers to the last subsystem.

  • dimensions (int or tuple or list) – Either an integer d so that the subsystems are assumed to be all of shape d \times d, or a sequence of subsystem shapes where an integer d within the sequence is read as d \times d. In any case, the elementwise product over all subsystem shapes must equal the expression’s shape.

  • K_list (None or list(numpy.ndarray)) – A list of Kraus operators representing the linear map \mathcal{G}. If K_list=None, then \mathcal{G} is defined as the identity map.

__le__(other)[source]

Return a constraint that the expression is upper-bounded.

property K_list

The Kraus operators K_i of \mathcal{G}.

property X

The expression X.

property Z_list

The Kraus operators Z_i of \mathcal{Z}.

property dimensions

The dimensions of the subsystems of X.

property iscomplex

Whether X is a complex expression or not.

property n

Length of X.

property subsystems

The subsystems being block-diagonalized of X.