mindquantum.core.gates.GroupedPauliChannel
- class mindquantum.core.gates.GroupedPauliChannel(probs: npt.NDArray[np.float64], **kwargs)[源代码]
组合泡利信道。
该信道等价与一组泡利信道,但是在模拟时,会比一个一个作用泡利信道快很多。关于泡利信道的更多细节,请参考
PauliChannel
。泡利信道的数学表示如下:
\[\epsilon(\rho) = \otimes_i \epsilon_\text{pauli}^i(\rho)\]- 参数:
probs (numpy.ndarray) - 所有泡利信道的误差概率。该参数的维度是 (n, 3),其中第一个维度 n 表示该组合泡利信道的比特数。第二个维度 3 表示每个信道分别发生 \(X\), \(Y\) 或 \(Z\) 翻转的概率。
样例:
>>> import numpy as np >>> from mindquantum.core.gates import GroupedPauliChannel >>> from mindquantum.core.circuit import Circuit >>> from mindquantum.simulator import Simulator >>> probs = np.array([[1.0, 0.0, 0.0], [0.0, 0.3, 0.0]]) >>> circ = Circuit([GroupedPauliChannel(probs).on([0, 1])]).measure_all() >>> circ ╭ ╔═══Grouped Pauli Channel ╮ ┍━━━━━━┑ q0: ──┤─╢ PC(px=1, py=0, pz=0) ╟──────├─┤ M q0 ├─── │ ╚══════════════════════╝ │ ┕━━━━━━┙ │ ╔═════════════════════════╗ │ ┍━━━━━━┑ q1: ──┤─╢ PC(px=0, py=3/10, pz=0) ╟───├─┤ M q1 ├─── ╰ ╚═════════════════════════╝ ╯ ┕━━━━━━┙ >>> Simulator('mqvector', circ.n_qubits).sampling(circ, shots=1000, seed=42) shots: 1000 Keys: q1 q0│0.00 0.177 0.355 0.532 0.71 0.887 ───────────┼───────────┴───────────┴───────────┴───────────┴───────────┴ 01│▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ │ 11│▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │ {'01': 710, '11': 290}