![]() |
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 可用于设置噪声误差,包括应用到具体的量子比特和量子逻辑门。
执行结果如下所示: