CV Optimizations
PPT Relaxation of the CV
CVChannel.pptCV
— FunctionpptCV( channel :: Choi, method :: Symbol = :primal )
Numerically evaluates the positive partial transpose (PPT) relaxation of the communication value for the given Choi
operator representation of a quantum channel. This optimization problem is expressed as,
\[\begin{aligned} \text{pptCV}(\mathcal{N}) &= \max_{\Omega^{AB}} \text{Tr}[\Omega^{AB}J_{\mathcal{N}}] \\ \hspace{1cm} & \text{s.t.} \quad \text{Tr}_A[\Omega^{AB}] = \mathbb{I}^B; \\ \hspace{1cm} & \qquad \Omega^{AB} \in \text{PPT}(A\;:\;B), \end{aligned}\]
where $\text{PPT}(A \;:\; B)$ indicates the cone of matrices with a positve partial transpose. The $\text{PPT}(A\;:\;B)$ cone contains the $\text{SEP}(A\;:\;B)$ cone therfore, the $\text{pptCV}$ is an upper bound for the $\text{cv}$
\[\text{cv}(\mathcal{N}) \leq \text{pptCV}(\mathcal{N}),\]
where equality is found for the channels whose separable cone is the same as their PPT cone.
The method
parameter accepts the values:
:primal
- Solves the primal problem (seepptCVPrimal
).:dual
- Solves the dual problem (seepptCVDual
).
Returns
A Tuple containing (max_cv, optimizers...)
where max_cv
is the communication value and optimizers is the optimal value for each of the optimization paraameters.
CVChannel.pptCVPrimal
— FunctionpptCVPrimal(
ρ :: Matrix{<:Number},
dimA :: Int,
dimB :: Int
) :: Tuple{Float64, Matrix{ComplexF64}}
This function solves the SDP
\[\max \{ \langle \rho, X \rangle : \text{Tr}_{A}(X) = I_{B} , \Gamma(X) \succeq 0, X \succeq 0 \}\]
where $\Gamma( \cdot)$ is the partial transpose with respect to the second system, and returns the optimal value and the optimizer, X. This is the primal problem for the SDP relaxation of the channel value. The relaxation is to the PPT cone. This has various interpretations. Note: we label the primal as the maximization problem.
CVChannel.pptCVDual
— FunctionpptCVDual(
ρ :: Matrix{<:Number},
dimA :: Int,
dimB :: Int
) :: Tuple{Float64, Matrix{ComplexF64}, Matrix{ComplexF64}}
This function solves the SDP
\[\min \{ \text{Tr}(Y_{1}) : I_{A} \otimes Y_{1} - \Gamma(Y_{2}) \succeq \rho, Y_{2} \succeq 0, Y_{1} \in \text{Herm}(B) \}\]
where $\Gamma( \cdot)$ is the partial transpose with respect to the second system, and returns the optimal value and optimizer, $(Y_1 , Y_2 )$. This is the dual problem for the SDP relaxation of the channel value. The relaxation is to the PPT cone. This has various interpretations. Note: we label the primal as the maximization problem.
See-Saw Optimization of the CV
CVChannel.seesawCV
— FunctionseesawCV(
init_states :: Vector{<:AbstractMatrix},
kraus_ops :: Vector{<:AbstractMatrix},
num_steps :: Int64;
verbose :: Bool = false
)
Performs the see-saw optimization technique to maximize the communication value (CV) of the channel described by kraus_ops
over all states and measurements. This iterative and biconvex optimization technique combines coordinate ascent maximization with semidefinite programming. The number of iterations is determined by num_steps
where each iteration consists of a two-step procedure:
- The POVM measurement is optimized with respect to a fixed state ensemble using the
fixedStateCV
function. - The state ensemble is optimized with respect to a fixed povm state using the
fixedMeasurementCV
function.
This procedure is initialized with init_states
and after many iterations, a local maximum of the CV is found. The verbose
keyword argument can be used to print out the CV evaluated in each step.
The see-saw method has shown success in similar encoding/decoding optimization problems in quantum information, e.g., https://arxiv.org/abs/quant-ph/0307138v2 and https://arxiv.org/abs/quant-ph/0606078v1. We note that our implementation is quite distinct from previous works, however, the core iterative approach remains the same.
Returns
A Tuple
containing the following data in order:
max_cv_tuple :: Tuple
,(max_cv, opt_states, opt_povm)
A 3-tuple containing the maximal communication value and the optimal states/POVM that achieve this value.cvs :: Vector{Float64}
, A list of each evaluated CV. Since states and measurements are optimized in each iteration, we havelength(cvs) == 2 * num_steps
.opt_ensembles :: Vector{Vector{Matrix{ComplexF64}}}
, A list of state ensembles optimized in each step, wherelength(opt_ensembles) == num_steps
.opt_povms :: Vector{Vector{Matrix{ComplexF64}}}
, A list of POVM measurements optimized in each step, wherelength(opt_povms) == num_steps
.
This function is not guaranteed to find a global or local optima. However, seesawCV
will always provide a lower bound on the communication value.
CVChannel.fixedStateCV
— FunctionfixedStateCV(
states :: Vector{<:AbstractMatrix},
kraus_ops :: Vector{<:AbstractMatrix}
) :: Tuple{Float64, Vector{Matrix{ComplexF64}}}
For a fixed ensemble of states
and quantum channel described by kraus_ops
, the communication value (CV) is evaluated by maximizing over all POVM measurements. This optimization is expressed in primal form as the semidefinite program:
\[\begin{matrix} \text{fixedStateCV}(\mathcal{N})&= \max_{\{\Pi_x\}_{x}} \sum_x \text{Tr}\left[\Pi_x\mathcal{N}(\rho_x)\right] \\ & \\ & \text{s.t.} \quad \sum_x\Pi_x = \mathbb{I} \;\; \text{and} \;\; \Pi_x \geq 0 \end{matrix}\]
where each state $\rho_x$ satisfies $\text{Tr}[\rho_x] = 1$ and $\rho_x \geq 0$. The channel $\mathcal{N}$ is applied to each state as $\mathcal{N}(\rho_x) = \sum_j k \rho_x k^\dagger$.
Returns
A Tuple
, (cv, opt_povm)
where cv
is the evaluated communication value and opt_povm
is the optimal POVM measurement.
CVChannel.fixedMeasurementCV
— FunctionfixedMeasurementCV(
povm :: Vector{<:AbstractMatrix},
kraus_ops :: Vector{<:AbstractMatrix}
) :: Tuple{Float64, Vector{Matrix{ComplexF64}}}
For a fixed povm
measurement and quantum channel described by kraus_ops
, the communication value (CV) and optimal state encodings are computed. The fixed measurement CV is evaluated as
\[\text{fixedMeasurementCV}(\mathcal{N}) = \sum_y ||\mathcal{N}^{\dagger}(\Pi_y)||_{\infty}\]
where $||\mathcal{N}^{\dagger}(\Pi_y)||_{\infty}$ is the largest eigenvalue of the POVM element $\Pi_y$ evolved by the adjoint channel, $\mathcal{N}^{\dagger}(\Pi_y) = \sum_j k^{\dagger}_j \Pi_y k_j$. The states which maximize the CV are simply the eigenvectors corresponding to the largest eigenvalue of each respective POVM element.
Returns
A Tuple
, (cv, opt_states)
where cv
is the communication value and opt_states
is the set of optimal states.
Entanglement Assisted CV
CVChannel.eaCV
— FunctioneaCV( channel :: Choi, method :: Symbol = :primal )
Numerically evaluates the entanglement-assisted communication value for the quantum channel $\mathcal{N}$ given in the Choi
operator representation. This quantity is defined as:
\[\begin{aligned} \text{eaCV}(\mathcal{N}) & = \max_{\Omega^{AB}} \text{Tr}[\Omega^{AB}J_{\mathcal{N}}] \\ \hspace{1cm} & \text{s.t.} \quad \text{Tr}_A[\Omega^{AB}] = \mathbb{I}^B; \\ \hspace{1cm} & \qquad \Omega^{AB} \in \text{POS}(A\;:\;B). \end{aligned}\]
Note that for a channel $\mathcal{N}$ with output Hilbert space dimension $d_B$, the entanglement-assisted CV is bound as
\[\text{eaCV}(\mathcal{N}) \leq d_B \cdot \text{cv}(\mathcal{N}).\]
The method
parameter accepts the values:
:primal
- Solves the primal problem (seeeaCVPrimal
).:dual
- Solves the dual problem (seeeaCVDual
).
Returns
A Tuple containing (max_cv, optimizer)
where max_cv
is the communication value and optimizer
is the matrix which achieves the optimum for the particular problem.
CVChannel.eaCVPrimal
— FunctioneaCVPrimal(
ρ :: Matrix{<:Number},
dimA :: Int,
dimB :: Int
) :: Tuple{Float64, Matrix{ComplexF64}}
This function solves the SDP
\[\max \{ \langle \rho, X \rangle : \text{Tr}_{A}(X) = I_{B} , X \succeq 0 \}\]
and returns the optimal value and the optimizer, X. This is the primal problem of the SDP corresponding to the entanglement-assisted commmunication value. It is related to the channel min-entropy $H_{\min}(A|B)_{\mathcal{J}(\mathcal{N})}$ by $\text{eaCV}(\mathcal{N}) = 2^{-H_{\min}(A|B)_{\mathcal{J}(\mathcal{N})}}$. (See Section 6.1 of this reference for further details about the min-entropy.) Note: we label the primal as the maximization problem.
CVChannel.eaCVDual
— FunctioneaCVDual(
ρ :: Matrix{<:Number},
dimA :: Int,
dimB :: Int
) :: Tuple{Float64, Matrix{ComplexF64}}
This function solves the SDP
\[\min \{ \text{Tr}(Y) : I_{A} \otimes Y \succeq \rho, Y \in \text{Herm}(B) \}\]
and returns the optimal value and the optimizer, Y. This is the dual problem for the SDP corresponding to the entanglement-assisted commmunication value. It is related to the channel min-entropy $H_{\min}(A|B)_{\mathcal{J}(\mathcal{N})}$ by $\text{eaCV}(\mathcal{N}) = 2^{-H_{\min}(A|B)_{\mathcal{J}(\mathcal{N})}}$. (See Section 6.1 of this reference for further details about the min-entropy.) Note: we label the primal as the maximization problem.
CV through DPS Hierarchy
CVChannel.twoSymCVPrimal
— FunctiontwoSymCVPrimal(channel :: Choi) :: Tuple{Float64, Matrix{ComplexF64}}
twoSymCVPrimal(
ρ :: Matrix{<:Number},
dimA :: Int,
dimB :: Int
) :: Tuple{Float64, Matrix{ComplexF64}}
Given the Choi
operator representation of a channel, or alternatively, the Choi matrix ρ
and its input output dimensions, this function solves the SDP
\[\max \{ \langle \rho, X \rangle : \text{Tr}_{A}(X) = I_{B} , \Gamma^{B_{1}}(X) \succeq 0, X = (I_{A} \otimes \mathbb{F}_{B})X(I_{A} \otimes \mathbb{F}_{B}), X \succeq 0 \}\]
where $\Gamma^{B_{1}}( \cdot)$ is the partial transpose with respect to the second system, and returns the optimal value and the optimizer, X. The conditions on X demand it is two-symmetric, i.e. an element of the lowest level of the DPS hierarchy. Note: we label the primal as the maximization problem.
This function will run out of memory for the tensor product of even qutrit to qutrit channels.
CVChannel.threeSymCVPrimal
— FunctionthreeSymCVPrimal(channel :: Choi) :: Tuple{Float64, Matrix{ComplexF64}}
threeSymCVPrimal(
ρ :: Matrix{<:Number},
dimA :: Int,
dimB :: Int
) :: Tuple{Float64, Matrix{ComplexF64}}
Given the Choi
operator representation of a channel, or alternatively, the Choi matrix ρ
and its input output dimensions, this function solves the SDP
\[\max \{ \langle \rho, X \rangle : \text{Tr}_{A}(X) = I_{B} , \Gamma^{B_{1}}(X) \succeq 0, X = (I_{A} \otimes W_{\pi})X(I_{A} \otimes W_{\pi}^{*}) \quad \forall \pi \in \mathcal{S_{3}}, X \succeq 0 \}\]
where $\Gamma^{B_{1}}( \cdot)$ is the partial transpose with respect to the second system, $W_{\pi}$ is the unitary that permutes the subspaces according to permutation $\pi$. The function returns the optimal value and the optimizer, X. The conditions on X demand it is two-symmetric, i.e. an element of the lowest level of the DPS hierarchy. Note: we label the primal as the maximization problem.