toqito.channel_metrics.channel_fidelity

Computes the channel fidelity between two quantum channels.

Module Contents

toqito.channel_metrics.channel_fidelity.channel_fidelity(choi_1, choi_2, eps=1e-07)[source]

Compute the channel fidelity between two quantum channels [@Katariya_2021_Geometric].

Let (Phi : text{L}(mathcal{Y}) rightarrow text{L}(mathcal{X})) and (Psi: text{L}(mathcal{Y}) rightarrow text{L}(mathcal{X})) be quantum channels. Then the root channel fidelity defined as

[

sqrt{F}(Phi, Psi) := text{inf}_{rho} sqrt{F}(Phi(rho), Psi(rho))

]

where (rho in text{D}(mathcal{Z} otimes mathcal{X})) can be calculated by means of the following semidefinite program (Proposition 50) in [@Katariya_2021_Geometric],

[
begin{align*}

text{maximize:} quad & lambda \ text{subject to:} quad & lambda mathbb{I}_{mathcal{Z}} leq

text{Re}left( text{Tr}_{mathcal{Y}} left( Q right) right),\ & begin{pmatrix}

J(Phi) & Q^* \ Q & J(Psi)

end{pmatrix} geq 0

end{align*}

]

where (Q in text{L}(mathcal{Z} otimes mathcal{X})).

Examples

For two identical channels, we should expect that the channel fidelity should yield a value of (1).

`python exec="1" source="above" import numpy as np from toqito.channels import dephasing from toqito.channel_metrics import channel_fidelity # The Choi matrices of dimension-4 for the dephasing channel choi_1 = dephasing(4) choi_2 = dephasing(4) print(channel_fidelity(choi_1, choi_2)) `

We can also compute the channel fidelity between two different channels. For example, we can compute the channel fidelity between the dephasing and depolarizing channels.

`python exec="1" source="above" import numpy as np from toqito.channels import dephasing, depolarizing from toqito.channel_metrics import channel_fidelity # The Choi matrices of dimension-4 for the dephasing and depolarizing channels choi_1 = dephasing(4) choi_2 = depolarizing(4) print(channel_fidelity(choi_1, choi_2)) `

Raises:
  • ValueError – If matrices are not of equal dimension.

  • ValueError – If matrices are not square.

Parameters:
  • choi_1 (numpy.ndarray) – The Choi matrix of the first quantum channel.

  • choi_2 (numpy.ndarray) – The Choi matrix of the second quantum channel.

  • eps (float) – The solver tolerance for convergence to feasability.

Returns:

The channel fidelity between the channels specified by the quantum channels corresponding to the Choi matrices choi_1 and choi_2.

Return type:

float