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.