Jenis data khusus kuantum
Topik ini menjelaskan jenisnya Qubit
, bersama dengan dua jenis lain yang agak spesifik untuk domain kuantum: Pauli
dan Result
.
Qubit
Q# memperlakukan qubit sebagai item buram yang dapat diteruskan ke fungsi dan operasi, tetapi hanya dapat berinteraksi dengan meneruskannya ke instruksi yang berasal dari prosesor kuantum yang ditargetkan. Instruksi tersebut selalu didefinisikan dalam bentuk operasi, karena niatnya adalah untuk memodifikasi status kuantum. Pembatasan bahwa fungsi tidak dapat memodifikasi status kuantum, meskipun fakta bahwa qubit dapat diteruskan sebagai argumen input, diberlakukan oleh yang mengharuskan fungsi hanya dapat memanggil fungsi lain, dan tidak dapat memanggil operasi.
Pustaka Q# dikompilasi terhadap satu set standar operasi intrinsik, yang berarti operasi yang tidak memiliki definisi untuk implementasinya dalam bahasa. Setelah menargetkan, implementasi yang mengekspresikannya dalam hal instruksi yang asli dengan target eksekusi ditautkan oleh kompilator. Dengan demikian, program Q# menggabungkan operasi ini seperti yang didefinisikan oleh mesin target untuk menciptakan operasi baru dengan tingkat yang lebih tinggi untuk mengekspresikan perhitungan kuantum. Dengan cara ini, Q# membuatnya sangat mudah untuk mengekspresikan logika yang mendasari algoritma kuantum dan hibrida-klasik, selagi juga sangat umum sehubungan dengan struktur mesin target dan realisasi keadaan kuantum.
Dalam Q# itu sendiri, tidak ada jenis atau konstruksi Q# yang mewakili keadaan kuantum.
Sebaliknya, qubit mewakili unit fisik terkecil yang dapat dialamatkan dalam komputer kuantum.
Dengan demikian, qubit adalah item berumur panjang, jadi Q# tidak memerlukan jenis linier.
Oleh karena itu, kami tidak secara eksplisit merujuk ke status dalam Q#, melainkan menggambarkan bagaimana status diubah oleh program, misalnya, melalui aplikasi operasi seperti X
dan H
.
Mirip dengan bagaimana program shader grafis mengakumulasi deskripsi transformasi ke setiap puncak, program kuantum dalam Q# mengakumulasi transformasi ke status kuantum, yang direpresentasikan sebagai referensi buram sepenuhnya ke struktur internal mesin target.
Program Q# tidak memiliki kemampuan untuk introspeksi ke dalam keadaan qubit, dan dengan demikian sepenuhnya agnostik tentang apa itu keadaan kuantum atau bagaimana hal itu direalisasikan.
Sebaliknya, sebuah program dapat memanggil operasi seperti Measure
untuk mempelajari informasi tentang keadaan kuantum perhitungan.
Pauli
Nilai jenis Pauli
menentukan operator Pauli satu qubit; kemungkinannya adalah PauliI
, PauliX
, PauliY
, dan PauliZ
. Pauli
nilai digunakan terutama untuk menentukan dasar pengukuran kuantum.
Hasil
Jenis Result
ini menentukan hasil pengukuran kuantum. Q# mencerminkan sebagian besar perangkat keras kuantum dengan menyediakan pengukuran dalam produk operator Pauli qubit tunggal; Result
dari Zero
menunjukkan bahwa nilai eigen +1 telah diukur, dan a Result
dari One
menunjukkan bahwa nilai eigen -1 telah diukur. Artinya, Q# mewakili nilai eigen oleh kekuatan di mana -1 ditingkatkan.
Konvensi ini lebih umum dalam komunitas algoritma kuantum, karena memetakan lebih dekat dengan bit klasik.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk