Diagram sirkuit kuantum

Artikel ini mencakup konvensi untuk diagram sirkuit kuantum. Beberapa algoritma kuantum lebih mudah dipahami dalam diagram sirkuit daripada dalam representasi matriks tertulis yang setara setelah Anda memahami konvensi visual.

Dengan Azure Quantum, Anda dapat mengirimkan sirkuit kuantum dengan Qiskit, Cirq, dan juga sirkuit berformat khusus penyedia.

Tip

Lihat quantum-viz.js, alat yang dapat dikonfigurasi untuk merender sirkuit kuantum. Anda dapat mengintegrasikan pustakaquantum-viz.js (atau qviz) ke dalam proyek apa pun. Ini bertujuan untuk mudah dikonfigurasi sambil memungkinkan interaksi pengguna yang kompleks, seperti beralih di antara hasil pengukuran yang berbeda.

Konvensi diagram sirkuit kuantum

Dalam diagram sirkuit, setiap garis padat menggambarkan qubit, atau lebih umum, register qubit. Berdasarkan konvensi, baris atas adalah qubit register $0$ dan sisanya diberi label secara berurutan.

Operasi diwakili oleh gerbang kuantum. Ketentuan gerbang kuantum sejalan dengan gerbang logika klasik. Gerbang yang bertindak pada satu atau lebih register qubit dilambangkan sebagai kotak. Misalnya, simbol

Simbol untuk operasi Hadamard yang bertindak pada register qubit tunggal.

adalah operasi Hadamard yang bekerja pada register qubit tunggal.

Dalam sirkuit kuantum, waktu mengalir dari kiri ke kanan. Gerbang kuantum diurutkan dalam urutan kronologis dengan gerbang paling kiri sebagai gerbang pertama kali diterapkan pada qubit. Dengan kata lain, jika Anda membayangkan kabel sebagai penahan keadaan kuantum, kabel membawa keadaan kuantum melalui masing-masing gerbang dalam diagram dari kiri ke kanan. Artinya, aksi sirkuit kuantum

Diagram gerbang kuantum yang diterapkan dari kiri ke kanan dalam sirkuit kuantum.

adalah matriks kesatuan $CBA$.

Catatan

Perkalian matriks mematuhi konvensi yang berlawanan: matriks paling kanan diterapkan terlebih dahulu. Namun, dalam diagram sirkuit kuantum, gerbang paling kiri diterapkan terlebih dahulu. Perbedaan ini terkadang dapat menyebabkan kebingungan, jadi perbedaan yang signifikan antara notasi aljabar linier dan diagram sirkuit kuantum ini penting untuk dicatat.

Contoh: Transformasi kesatuan

Pertimbangkan transformasi kesatuan $\text{ CNOT}_{01}(H\otimes 1)$. Urutan gerbang ini sangat penting bagi komputasi kuantum karena menciptakan keadaan dua qubit yang terikat secara maksimal:

$\mathrm{CNOT}_{01}(H\otimes 1)\left=\ket{00}\frac{1}{\sqrt{2}}({00}\ket{ + ), \ket{11}\right$

Operasi dengan kompleksitas ini atau lebih besar ada di mana-mana dalam algoritma kuantum dan koreksi kesalahan kuantum.

Diagram sirkuit untuk mempersiapkan keadaan kuantum yang terikat secara maksimal ini adalah:

Diagram sirkuit untuk status dua qubit yang terjerat secara maksimal.

Simbol di belakang gerbang Hadamard mewakili gerbang CNOT, di mana lingkaran hitam menunjukkan qubit kontrol dan salib dalam lingkaran menunjukkan target qubit. Sirkuit kuantum ini digambarkan sebagai bertindak pada dua qubit (atau setara dengan dua register yang terdiri dari satu qubit).

Input dan output sirkuit kuantum

Contoh sebelumnya memiliki jumlah input kabel (qubit) yang sama persis ke gerbang kuantum sebagai jumlah kabel keluar dari gerbang kuantum. Pada awalnya mungkin tampak masuk akal bahwa sirkuit kuantum dapat memiliki lebih banyak, atau lebih sedikit, output daripada input pada umumnya. Bagaimanapun, hal ini tidak mungkin karena semua operasi kuantum, kecuali pengukuran, bersifat kesatuan dan karenanya dapat dibatalkan. Jika tidak memiliki jumlah output yang sama dengan input, mereka tidak dapat dibatalkan dan karenanya tidak bersatu, yang merupakan sebuah kontradiksi. Untuk alasan ini, setiap kotak yang digambar dalam diagram sirkuit harus memiliki jumlah kabel masuk yang sama persis dengan kabel keluar.

Diagram sirkuit multi-qubit mengikuti konvensi serupa dengan qubit tunggal. Sebagai contoh klarifikasi, operasi kesatuan dua qubit $B$ dapat didefinisikan sebagai $(H S\otimes X)$, sehingga sirkuit kuantum yang setara adalah:

Diagram sirkuit dari operasi unitary dua-qubit.

Anda juga dapat melihat $B$ sebagai memiliki tindakan pada register dua qubit tunggal daripada dua register satu qubit bergantung pada konteks saat sirkuit digunakan.

Mungkin properti yang paling berguna dari diagram sirkuit abstrak tersebut adalah bahwa mereka memungkinkan algoritma kuantum yang rumit untuk dijelaskan pada tingkat tinggi tanpa harus mengompilasinya ke gerbang fundamental. Ini berarti bahwa Anda bisa mendapatkan intuisi tentang aliran data untuk algoritma kuantum besar tanpa perlu memahami semua detail tentang cara masing-masing subrutinitas dalam algoritma bekerja.

Gerbang yang dikendalikan

Tindakan gerbang yang dikendalikan secara tunggal kuantum, dilambangkan $\Lambda(G)$, di mana nilai qubit tunggal mengontrol penerapan $G$, dapat dipahami dengan melihat contoh berikut dari input keadaan produk:

$\Lambda(G) (\alpha\ket{{0} + \beta\ket{1}) \ket{\psi}=\alpha\ket{{0}\ket{\psi} + \beta\ket{{1} G\ket{\psi}$

Artinya, gerbang terkontrol menerapkan $G$ ke register yang berisi $\psi$ jika dan hanya jika qubit kontrol mengambil nilai $1$. Secara umum, operasi terkontrol tersebut dijelaskan dalam diagram sirkuit sebagai

Diagram sirkuit gerbang yang dikontrol dengan sesuka hati.

Di sini, lingkaran hitam menunjukkan bit kuantum di mana gerbang dikendalikan dan kabel vertikal menunjukkan kesatuan yang diterapkan saat qubit kontrol mengambil nilai $1$. Untuk kasus khusus di mana $G=X$ dan $G=Z$, notasi berikut digunakan untuk menjelaskan versi gerbang yang dikontrol (perhatikan bahwa gerbang controlled-X adalah gerbang CNOT):

Diagram sirkuit untuk kasus khusus gerbang terkontrol.

Q# menyediakan metode untuk secara otomatis menghasilkan versi operasi yang terkontrol, yang membuat programmer tidak harus membuat kode operasi ini secara manual. Contohnya ditunjukkan di bawah ini:

operation PrepareSuperposition(qubit : Qubit) : Unit
is Ctl { // Auto-generate the controlled specialization of the operation
    H(qubit);
}

Operator pengukuran

Operasi yang tersisa untuk divisualisasikan dalam diagram sirkuit adalah pengukuran. Pengukuran mengambil register qubit, mengukurnya, dan menghasilkan hasilnya sebagai informasi klasik.

Operasi pengukuran dilambangkan dengan simbol meter dan selalu mengambil sebagai input register qubit (dilambangkan dengan garis padat) dan menghasilkan informasi klasik (dilambangkan dengan garis ganda). Secara khusus, subsirkuit terlihat seperti:

Simbol yang mewakili operasi pengukuran.

Q# menerapkan operator Ukur untuk tujuan ini.

Demikian pula, subsirkuit

Diagram sirkuit yang mewakili operasi terkontrol.

memberikan gerbang yang dikontrol secara klasik, di mana $G$ diterapkan dikondisikan pada bit kontrol klasik yang menjadi nilai $1$.

Diagram sirkuit teleportasi

Teleportasi kuantum mungkin adalah algoritma kuantum terbaik untuk menggambarkan komponen ini.

Teleportasi kuantum adalah metode untuk memindahkan data dalam komputer kuantum (atau bahkan antara komputer kuantum yang jauh dalam jaringan kuantum) melalui penggunaan keterikatan dan pengukuran. Menariknya, metode ini sebenarnya mampu memindahkan keadaan kuantum, katakanlah nilai dalam qubit tertentu, dari satu qubit ke qubit lainnya, bahkan tanpa mengetahui apa nilai qubit itu. Ini diperlukan agar protokol bekerja sesuai dengan hukum mekanika kuantum.

Sirkuit teleportasi kuantum ditunjukkan di sini bersama dengan versi sirkuit beranotasi untuk menggambarkan cara membaca sirkuit kuantum.

Diagram sirkuit teleportasi kuantum.

Langkah berikutnya