

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pemecahan Masalah OpenQASM
<a name="braket-troubleshooting-openqasm"></a>

Bagian ini menyediakan pointer pemecahan masalah yang mungkin berguna saat menghadapi kesalahan menggunakan OpenQASM 3.0.

**Topics**
+ [Sertakan kesalahan pernyataan](#braket-troubleshooting-openqasm-include-statement-error)
+ [Kesalahan tidak bersebelahan qubits](#braket-troubleshooting-openqasm-non-contiguous-qubits-error)
+ [Mencampur fisik qubits dengan qubits kesalahan virtual](#braket-troubleshooting-openqasm-mixing-physical-and-virtual-qubits-error)
+ [Meminta jenis hasil dan mengukur qubits dalam kesalahan program yang sama](#braket-troubleshooting-openqasm-result-types-measuring-qubits-error)
+ [Batas klasik dan qubit register melebihi kesalahan](#braket-troubleshooting-openqasm-register-limits-error)
+ [Kotak tidak didahului oleh kesalahan pragma kata demi kata](#braket-troubleshooting-openqasm-box-not-preceded-by-pragma-error)
+ [Kotak kata demi kata kehilangan kesalahan gerbang asli](#braket-troubleshooting-openqasm-verbatim-box-missing-native-gates-error)
+ [Kotak kata demi kata kehilangan kesalahan fisik qubits](#braket-troubleshooting-openqasm-verbatim-box-missing-physical-qubits-error)
+ [Pragma kata demi kata tidak memiliki kesalahan “braket”](#braket-troubleshooting-openqasm-pragma-naming-error)
+ [Kesalahan tunggal qubits tidak dapat diindeks](#braket-troubleshooting-openqasm-qubit-index-error)
+ [Fisik qubits di dua qubit gerbang tidak terhubung kesalahan](#braket-troubleshooting-openqasm-disconnected-physical-qubits-error)
+ [Peringatan dukungan simulator lokal](#braket-troubleshooting-openqasm-local-simulator-support-warning)

## Sertakan kesalahan pernyataan
<a name="braket-troubleshooting-openqasm-include-statement-error"></a>

Braket saat ini tidak memiliki file perpustakaan gerbang standar untuk disertakan dalam program OpenQASM. Misalnya, contoh berikut menimbulkan kesalahan parser.

```
OPENQASM 3;
include "standardlib.inc";
```

Kode ini menghasilkan pesan kesalahan: `No terminal matches '"' in the current parser context, at line 2 col 17.` 

## Kesalahan tidak bersebelahan qubits
<a name="braket-troubleshooting-openqasm-non-contiguous-qubits-error"></a>

Menggunakan perangkat yang tidak qubits bersebelahan yang `requiresContiguousQubitIndices` disetel ke `true` dalam kemampuan perangkat menghasilkan kesalahan.

Saat menjalankan tugas kuantum pada simulator danIonQ, program berikut memicu kesalahan.

```
OPENQASM 3;

qubit[4] q;

h q[0];
cnot q[0], q[2];
cnot q[0], q[3];
```

Kode ini menghasilkan pesan kesalahan: `Device requires contiguous qubits. Qubit register q has unused qubits q[1], q[4].` 

## Mencampur fisik qubits dengan qubits kesalahan virtual
<a name="braket-troubleshooting-openqasm-mixing-physical-and-virtual-qubits-error"></a>

Pencampuran fisik qubits dengan virtual qubits dalam program yang sama tidak diperbolehkan dan menghasilkan kesalahan. Kode berikut menghasilkan kesalahan.

```
OPENQASM 3;

qubit[2] q;
cnot q[0], $1;
```

Kode ini menghasilkan pesan kesalahan: `[line 4] mixes physical qubits and qubits registers.` 

## Meminta jenis hasil dan mengukur qubits dalam kesalahan program yang sama
<a name="braket-troubleshooting-openqasm-result-types-measuring-qubits-error"></a>

Meminta jenis hasil dan yang diukur qubits secara eksplisit dalam program yang sama menghasilkan kesalahan. Kode berikut menghasilkan kesalahan.

```
OPENQASM 3;

qubit[2] q;

h q[0];
cnot q[0], q[1];
measure q;

#pragma braket result expectation x(q[0]) @ z(q[1])
```

Kode ini menghasilkan pesan kesalahan: `Qubits should not be explicitly measured when result types are requested.` 

## Batas klasik dan qubit register melebihi kesalahan
<a name="braket-troubleshooting-openqasm-register-limits-error"></a>

Hanya satu register klasik dan satu qubit register yang diizinkan. Kode berikut menghasilkan kesalahan.

```
OPENQASM 3;

qubit[2] q0;
qubit[2] q1;
```

Kode ini menghasilkan pesan kesalahan: `[line 4] cannot declare a qubit register. Only 1 qubit register is supported.` 

## Kotak tidak didahului oleh kesalahan pragma kata demi kata
<a name="braket-troubleshooting-openqasm-box-not-preceded-by-pragma-error"></a>

Semua kotak harus didahului dengan pragma kata demi kata. Kode berikut menghasilkan kesalahan.

```
box{
rx(0.5) $0;
}
```

Kode ini menghasilkan pesan kesalahan: `In verbatim boxes, native gates are required. x is not a device native gate.` 

## Kotak kata demi kata kehilangan kesalahan gerbang asli
<a name="braket-troubleshooting-openqasm-verbatim-box-missing-native-gates-error"></a>

Kotak kata demi kata harus memiliki gerbang asli dan fisik. qubits Kode berikut menghasilkan kesalahan gerbang asli.

```
#pragma braket verbatim
box{
x $0;
}
```

Kode ini menghasilkan pesan kesalahan: `In verbatim boxes, native gates are required. x is not a device native gate.` 

## Kotak kata demi kata kehilangan kesalahan fisik qubits
<a name="braket-troubleshooting-openqasm-verbatim-box-missing-physical-qubits-error"></a>

Kotak kata demi kata harus memiliki fisik. qubits Kode berikut menghasilkan qubits kesalahan fisik yang hilang.

```
qubit[2] q;

#pragma braket verbatim
box{
rx(0.1) q[0];
}
```

Kode ini menghasilkan pesan kesalahan: `Physical qubits are required in verbatim box.` 

## Pragma kata demi kata tidak memiliki kesalahan “braket”
<a name="braket-troubleshooting-openqasm-pragma-naming-error"></a>

Anda harus memasukkan “braket” dalam pragma kata demi kata. Kode berikut menghasilkan kesalahan.

```
#pragma braket verbatim           // Correct
#pragma verbatim                  // wrong
```

Kode ini menghasilkan pesan kesalahan: `You must include “braket” in the verbatim pragma` 

## Kesalahan tunggal qubits tidak dapat diindeks
<a name="braket-troubleshooting-openqasm-qubit-index-error"></a>

Single qubits tidak dapat diindeks. Kode berikut menghasilkan kesalahan.

```
OPENQASM 3;

qubit q;
h q[0];
```

Kode ini menghasilkan kesalahan: `[line 4] single qubit cannot be indexed.` 

Namun, qubit array tunggal dapat diindeks sebagai berikut:

```
OPENQASM 3;

qubit[1] q;
h q[0];   // This is valid
```

## Fisik qubits di dua qubit gerbang tidak terhubung kesalahan
<a name="braket-troubleshooting-openqasm-disconnected-physical-qubits-error"></a>

Untuk menggunakan fisikqubits, pertama-tama konfirmasikan bahwa perangkat menggunakan fisik qubits dengan memeriksa `device.properties.action[DeviceActionType.OPENQASM].supportPhysicalQubits` dan kemudian memverifikasi grafik konektivitas dengan memeriksa `device.properties.paradigm.connectivity.connectivityGraph` atau`device.properties.paradigm.connectivity.fullyConnected`.

```
OPENQASM 3;

cnot $0, $14;
```

Kode ini menghasilkan pesan kesalahan: `[line 3] has disconnected qubits 0 and 14` 

## Peringatan dukungan simulator lokal
<a name="braket-troubleshooting-openqasm-local-simulator-support-warning"></a>

Ini `LocalSimulator` mendukung fitur-fitur canggih di OpenQASM yang mungkin tidak tersedia pada QPUs atau simulator sesuai permintaan. Jika program Anda berisi fitur bahasa khusus hanya untuk`LocalSimulator`, seperti yang terlihat pada contoh berikut, Anda akan menerima peringatan.

```
qasm_string = """
qubit[2] q;

h q[0];
ctrl @ x q[0], q[1];
"""
qasm_program = Program(source=qasm_string)
```

Kode ini menghasilkan peringatan: `Program ini menggunakan fitur bahasa OpenQASM yang hanya didukung di. LocalSimulator Beberapa fitur ini mungkin tidak didukung pada QPUs atau simulator sesuai permintaan.

Untuk informasi lebih lanjut tentang fitur OpenQASM yang didukung, jelajahi halaman [Dukungan fitur lanjutan untuk OpenQASM](braket-openqasm-supported-features.md#braket-openqasm-supported-features-advanced-feature-local-simulator) di Simulator Lokal.