

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

# Gradien komputasi dengan OpenQASM 3.0
<a name="braket-openqasm-computing-gradients"></a>

Amazon Braket mendukung perhitungan gradien pada simulator on-demand dan lokal saat berjalan dalam mode (tepat). `shots=0` Ini dicapai melalui penggunaan metode diferensiasi adjoint. Untuk menentukan gradien yang ingin Anda hitung, Anda dapat memberikan pragma yang sesuai, seperti yang ditunjukkan dalam kode dalam contoh berikut.

```
OPENQASM 3.0;
input float alpha;

bit[2] b;
qubit[2] q;

h q[0];
h q[1];
rx(alpha) q[0];
rx(alpha) q[1];
b[0] = measure q[0];
b[1] = measure q[1];

#pragma braket result adjoint_gradient h(q[0]) @ i(q[1]) alpha
```

Alih-alih mencantumkan semua parameter individual secara eksplisit, Anda juga dapat menentukan `all` kata kunci dalam pragma. Ini akan menghitung gradien sehubungan dengan semua `input` parameter yang tercantum, yang dapat menjadi pilihan yang nyaman ketika jumlah parameter sangat besar. Dalam hal ini, pragma akan terlihat seperti kode dalam contoh berikut.

```
#pragma braket result adjoint_gradient h(q[0]) @ i(q[1]) all
```

Semua tipe yang dapat diamati didukung dalam implementasi OpenQASM 3.0 Amazon Braket, termasuk operator individual, produk tensor, observable Hermitian, dan observable. `Sum` Operator spesifik yang ingin Anda gunakan saat menghitung gradien harus dibungkus dalam `expectation()` fungsi, dan qubit yang ditindaklanjuti oleh setiap suku yang dapat diamati harus ditentukan secara eksplisit.