quantum_chernoff_bound¶
-
forest.benchmarking.distance_measures.
quantum_chernoff_bound
(rho: numpy.ndarray, sigma: numpy.ndarray, tol: float = 1000) → Tuple[float, float]¶ Computes the quantum Chernoff bound between rho and sigma.
It is defined as
\[ξ_{QCB}(\rho, \sigma) = - \log[ \min_{0\le s\le 1} tr(\rho^s \sigma^{1-s}) ]\]It is also common to study the non-logarithmic variety of the quantum Chernoff bound
\[Q_{QCB}(\rho, \sigma) = \min_{0\le s\le 1} tr(\rho^s \sigma^{1-s})\]The quantum Chernoff bound has many nice properties, see [QCB]. Importantly it is operationally important in the following context. Given n copies of rho or sigma the minimum error probability for discriminating rho from sigma is \(P_{e,min,n} ~ exp[-n ξ_{QCB}]\).
[QCB] The Quantum Chernoff Bound. Audenaert et al. Phys. Rev. Lett. 98, 160501 (2007). https://dx.doi.org/10.1103/PhysRevLett.98.160501 https://arxiv.org/abs/quant-ph/0610027 Parameters: - rho – Is a dim by dim positive matrix with unit trace.
- sigma – Is a dim by dim positive matrix with unit trace.
- tol – Tolerance in machine epsilons for np.real_if_close.
Returns: The non-logarithmic quantum Chernoff bound and the s achieving the minimum.