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}
get_cpp_obj()[源代码]

返回量子门的c++对象。

matrix()[源代码]

返回该噪声信道的Kraus算符。

返回:

list,包含了所有泡利信道的Kraus算符。