mindquantum.simulator.fidelity

查看源文件
mindquantum.simulator.fidelity(rho: np.ndarray, sigma: np.ndarray)[源代码]

计算两个量子态的保真度。

量子态保真度的定义如下所示。

\[F(\rho, \sigma) = \left( \text{tr} \sqrt{\sqrt{\rho} \sigma \sqrt{\rho}} \right)^2\]

其中 \(\rho\)\(\sigma\) 是密度矩阵。

如果 \(\rho\)\(\sigma\) 都是纯态,则有 \(\rho=\left|\psi_\rho\right>\!\left<\psi_\rho\right|\)\(\sigma=\left|\psi_\sigma\right>\!\left<\psi_\sigma\right|\),此时

\[F(\rho, \sigma) = \left| \left< \psi_\rho \middle| \psi_\sigma \right> \right|^2\]

此外,该接口还支持状态向量和密度矩阵混合输入。

参数:
  • rho (np.ndarray) - 其中一个量子态。支持态矢量或密度矩阵。

  • sigma (np.ndarray) - 另一个量子态。支持态矢量或密度矩阵。

返回:

numbers.Number,两个量子态的保真度。

样例:

>>> from mindquantum.core.circuit import Circuit
>>> from mindquantum.simulator import Simulator, fidelity
>>> circ = Circuit().h(0).x(1, 0)
>>> sim = Simulator('mqmatrix', 2)
>>> sim.apply_circuit(circ)
>>> rho = sim.get_qs()
>>> sim.reset()
>>> sigma = sim.get_qs()
>>> fidelity(rho, sigma)
0.5000000000000001