

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 OpenQASM 3.0 模擬雜訊
<a name="braket-openqasm-noise-simulation"></a>

若要使用 OpenQASM3 模擬雜訊，您可以使用 *pragma* 指示來新增雜訊運算子。例如，若要模擬先前提供的 [GHZ 程式](braket-openqasm-create-submit-task.md#braket-openqasm-example-program)的雜訊版本，您可以提交下列 OpenQASM 程式。

```
// 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 運算子
<a name="braket-openqasm-kraus-operator"></a>

若要產生 Kraus 運算子，您可以逐一查看矩陣清單，將矩陣的每個元素列印為複雜表達式。

使用 Kraus 運算子時，請記住下列事項：
+ 的數量qubits不得超過 2。[結構描述中的目前定義](https://github.com/aws/amazon-braket-sdk-python/blob/0d28a8fa89263daf5d88bc706e79200d8dc091a8/src/braket/circuits/noises.py#L811-L814))會設定此限制。
+ 引數清單的長度必須是 8 的倍數。這表示它只能由 2x2 矩陣組成。
+ 總長度不超過 22\$1num\$1qubits 矩陣。這表示 1 有 4 個矩陣qubit，2 有 16 個矩陣qubits。
+ 所有提供的矩陣都是[完全正面的追蹤保留 (CPTP)](https://github.com/aws/amazon-braket-sdk-python/blob/0d28a8fa89263daf5d88bc706e79200d8dc091a8/src/braket/circuits/quantum_operator_helpers.py#L94-L108)。
+ Kraus 運算子的產品及其轉置共軛需要加到身分矩陣。