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