Pengenalan kepada OpenQASM
OpenQASM (bahasa pemasangan kuantum terbuka), antara muka pengaturcaraan bebas mesin yang serasi dengan QPU IBM®, ialah bahasa pengaturcaraan imperatif untuk menerangkan litar kuantum. OpenQASM menggunakan model litar kuantum untuk menyatakan program kuantum sebagai urutan operasi berparameter tertib (seperti gate, pengukuran, dan tetapan semula) dan pengkomputeran klasik masa sebenar. Selain algoritma kuantum, OpenQASM boleh menerangkan litar yang bertujuan untuk mencirikan, mengesahkan, atau menyahpepijat pemproses kuantum.
Memandangkan keperluan pembangunan QPU telah berkembang, senarai ciri OpenQASM telah berkembang sebagai tindak balas; versi terbaharu, OpenQASM 3, menggabungkan sambungan termasuk kawalan alir feed-forward klasik, pengubah suai gate, dan implementasi nadi.
OpenQASM ialah pilihan untuk pelbagai khalayak kerana kepelbagaiannya. Pengenalan kertas OpenQASM 31 memberikan contoh:
"Walaupun OpenQASM bukan bahasa peringkat tinggi, ramai pengguna ingin menulis litar kuantum mudah secara manual menggunakan bahasa khusus domain yang ekspresif. Penyelidik yang mengkaji penyusunan litar memerlukan maklumat peringkat tinggi yang direkodkan dalam representasi pertengahan untuk memaklumkan algoritma pengoptimuman dan sintesis. Para eksperimentalis lebih suka kemudahan menulis litar pada tahap yang agak tinggi tetapi sering perlu mengubah suai masa atau penerangan gate peringkat nadi secara manual di pelbagai titik dalam litar. Jurutera perkakasan yang mereka bentuk pengawal klasik dan penjana bentuk gelombang lebih suka bahasa yang praktikal untuk dikompil dengan kekangan perkakasan dan yang menjadikan struktur litar eksplisit yang boleh dimanfaatkan oleh pengawal."
OpenQASM ialah format pertukaran biasa antara alat perisian kuantum bebas. Bagi pembangun yang lebih suka satu alat untuk pembinaan litar, alat lain untuk transpilasi, dan sebagainya, OpenQASM ialah lingua franca yang bertindak sebagai jambatan di antara mereka.
Qiskit SDK menyediakan cara untuk menukar antara OpenQASM dan kelas QuantumCircuit (lihat OpenQASM 2 dan Qiskit dan OpenQASM 3 dan Qiskit untuk arahan).
Untuk maklumat lanjut, lihat spesifikasi langsung OpenQASM.
Contoh kod OpenQASM: keadaan kucing​
OPENQASM 3;
include "stdgates.inc";
const n = 3; // number of qubits
qubit[n] q; // a register 'q' of n qubits
bit[n] c; // a register 'c' of n classical bits
h q[0]; // Hadamard
for k in [0:n-1] {
cnot q[k], q[k+1]; // Controlled-NOT from control qubit q[k] to target qubit q[k+1]
}
c = measure q; // measure quantum register
Langkah seterusnya​
- Ketahui cara menjana kod OpenQASM dalam panduan IBM Quantum Composer.
- Semak jadual ciri OpenQASM 3.
- Baca rujukan OpenQASM 3 Qiskit API.
- Baca rujukan OpenQASM 2 Qiskit API.
- Lawati Spesifikasi Langsung OpenQASM.