QPanda3
Supported by OriginQ
载入中...
搜索中...
未找到
噪声

上一章: 量子模拟器
下一章: 量子线路编译


简介

量子虚拟机中的噪声模拟

在实际的量子计算机中,由于量子比特的物理特性,计算错误是不可避免的。为了在量子虚拟机中更好地模拟这些错误,QPanda3 引入多种噪声模型和噪声错误,从而让模拟过程更加接近真实的量子计算机,噪声模型和噪声错误可以对量子比特,量子逻辑门和误差参数进行精细化调节,满足多样化的复杂噪声场景。

噪声模型介绍

  • 振幅阻尼噪声(Amplitude Damping Error)

    amplitude_damping_error 表示量子比特的弛豫噪声模型,其 Kraus 算子定义如下:

    \[ K_1 = \begin{bmatrix} 1 & 0 \\ 0 & \sqrt{1 - p} \end{bmatrix}, \quad K_2 = \begin{bmatrix} 0 & \sqrt{p} \\ 0 & 0 \end{bmatrix} \]

    此模型需要一个噪声参数。

  • 相位翻转噪声(Pauli-Z Error)

    pauli_z_error 表示量子比特的相位翻转噪声,其 Kraus 算子定义如下:

    \[ K_1 = \begin{bmatrix} \sqrt{1 - p} & 0 \\ 0 & \sqrt{1 - p} \end{bmatrix}, \quad K_2 = \begin{bmatrix} \sqrt{p} & 0 \\ 0 & -\sqrt{p} \end{bmatrix} \]

    此模型需要一个噪声参数。

  • 退相干噪声(Decoherence Error)

    decoherence_error 结合了弛豫噪声(Relaxation Noise)去相干噪声(Dephasing Noise)。它们的关系如下:

    \[ P_{\text{damping}} = 1 - e^{-\frac{t_{\text{gate}}}{T_1}}, \quad P_{\text{dephasing}} = 0.5 \times \big(1 - e^{-(\frac{t_{\text{gate}}}{T_2} - \frac{t_{\text{gate}}}{2T_1})}\big) \]

    其组合后的 Kraus 算子为:

    \[ K_1 = K_{1_{\text{damping}}} K_{1_{\text{dephasing}}}, \quad K_2 = K_{1_{\text{damping}}} K_{2_{\text{dephasing}}}, \quad K_3 = K_{2_{\text{damping}}} K_{1_{\text{dephasing}}}, \quad K_4 = K_{2_{\text{damping}}} K_{2_{\text{dephasing}}} \]

    此模型需要三个噪声参数。

  • 去极化噪声(Depolarizing Error)

    depolarizing_error 表示去极化噪声,即单个量子比特可能以一定概率坍缩为完全混合态(I/2)。其 Kraus 算子如下:

    \[ K_1 = \sqrt{1 - 3p/4} \cdot I, \quad K_2 = \sqrt{p}/2 \cdot X, \quad K_3 = \sqrt{p}/2 \cdot Y, \quad K_4 = \sqrt{p}/2 \cdot Z \]

    其中, \(I\)、 \(X\)、 \(Y\)、 \(Z\) 代表量子逻辑门矩阵。

    此模型需要一个噪声参数。

  • 比特翻转噪声(Pauli X Error)

    pauli_x_error 表示比特翻转噪声。其 Kraus 算子定义如下:

    \[ K_1 = \begin{bmatrix} \sqrt{1 - p} & 0 \\ 0 & \sqrt{1 - p} \end{bmatrix}, \quad K_2 = \begin{bmatrix} 0 & \sqrt{p} \\ \sqrt{p} & 0 \end{bmatrix} \]

    此模型需要一个噪声参数。

  • 比特相位翻转噪声(Pauli Y Error)

    pauli_y_error 表示比特-相位翻转噪声(Bit-Phase Flip Noise)。其 Kraus 算子为:

    \[ K_1 = \begin{bmatrix} \sqrt{1 - p} & 0 \\ 0 & \sqrt{1 - p} \end{bmatrix}, \quad K_2 = \begin{bmatrix} 0 & -i \times \sqrt{p} \\ i \times \sqrt{p} & 0 \end{bmatrix} \]

    此模型需要一个噪声参数。

  • 相位阻尼噪声(phase_damping_error)

    phase_damping_error 表示相位阻尼噪声。其 Kraus 算子为:

    \[ K_1 = \begin{bmatrix} 1 & 0 \\ 0 & \sqrt{1 - p} \end{bmatrix}, \quad K_2 = \begin{bmatrix} 0 & 0 \\ 0 & \sqrt{p} \end{bmatrix} \]

    此模型需要一个噪声参数。

噪声误差

pyqpanda3 中,噪声误差和噪声模型是分开的。首先需要构造噪声误差,然后通过噪声模型进行设置。模型可以设定支持哪些量子比特以及具体的量子逻辑门。

NoiseModel 可用于设置噪声误差,包括应用到具体的量子比特和量子逻辑门。

执行结果如下所示:

{'001': 468, '010': 479, '011': 24, '000': 29}