本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Open QASM 3.0 模拟噪点
要使用 Open 模拟噪声QASM3,可以使用 pragma 指令添加噪音运算符。例如,要模拟之前提供的GHZ程序的噪音版本,可以提交以下 Open QASM 程序。
// ghz.qasm // Prepare a GHZ state OPENQASM 3; qubit[3] q; bit[3] c; h q[0]; #pragma braket noise depolarizing(0.75) q[0] cnot q[0], q[1]; #pragma braket noise depolarizing(0.75) q[0] #pragma braket noise depolarizing(0.75) q[1] cnot q[1], q[2]; #pragma braket noise depolarizing(0.75) q[0] #pragma braket noise depolarizing(0.75) q[1] c = measure q;
以下列表提供了所有支持的 pragma 噪声运算符的规格。
#pragma braket noise bit_flip(<float in [0,1/2]>) <qubit> #pragma braket noise phase_flip(<float in [0,1/2]>) <qubit> #pragma braket noise pauli_channel(<float>, <float>, <float>) <qubit> #pragma braket noise depolarizing(<float in [0,3/4]>) <qubit> #pragma braket noise two_qubit_depolarizing(<float in [0,15/16]>) <qubit>, <qubit> #pragma braket noise two_qubit_dephasing(<float in [0,3/4]>) <qubit>, <qubit> #pragma braket noise amplitude_damping(<float in [0,1]>) <qubit> #pragma braket noise generalized_amplitude_damping(<float in [0,1]> <float in [0,1]>) <qubit> #pragma braket noise phase_damping(<float in [0,1]>) <qubit> #pragma braket noise kraus([[<complex m0_00>, ], ...], [[<complex m1_00>, ], ...], ...) <qubit>[, <qubit>] // maximum of 2 qubits and maximum of 4 matrices for 1 qubit, 16 for 2
克劳斯操作员
为了生成 Kraus 运算符,您可以遍历矩阵列表,将矩阵的每个元素打印为复杂表达式。
使用 Kraus 运算符时,请记住以下几点:
-
的数量 qubits 不得超过 2。架构中的当前定义设定
了此限制。 -
参数列表的长度必须是 8 的倍数。这意味着它只能由 2x2 矩阵组成。
-
总长度不超过 2 个 2*num _qubits 矩阵。这意味着 4 个矩阵代表 1 qubit 还有 16 比 2 qubits.
-
所有提供的矩阵均完全保持正迹线 () CPTP
。 -
Kraus 运算符及其转置共轭的乘积需要相加得出一个单位矩阵。