ToolDingo

Komputer Quantum Simulator

Tulislah sirkuit kuantum kecil dalam JavaScript, simulasi langsung di browser Anda dan lihat diagram sirkuit, probabilitas, dan vektor negara. Atau uraikan perhitungan pada tingkat tinggi (misalnya penjumlahan) dan menontonnya secara otomatis berubah menjadi sirkuit quantum reversibel nyata.

Model bising

Komputer kuantum yang sebenarnya tidak menghitung dengan sempurna: qubit sangat sensitif dan kehilangan sebagian informasi mereka (decoherence) melalui setiap interaksi yang tidak diinginkan dengan lingkungan mereka panas, medan elektromagnetik, qubits tetangga. Operasi gerbang juga tidak pernah benar-benar tepat, bahkan pembacaan akhir dapat salah. Simulator ini menghitung secara ideal secara default; di sini Anda dapat mengaktifkan model kesalahan khas dan mengamati efeknya langsung dalam hasil..

Terapan untuk setiap simulasi di halaman ini untuk berjalan tingkat tinggi dan sirkuit tertulis secara manual.
%
Per gate dan qubit yang terlibat, atau per bit membaca untuk model pembacaan. Pilih nilai untuk skenario yang ingin Anda jelajahi.

Kode program

Jelaskan perhitungan dengan quantum.add, quantum.subtract, quantus.multiply, quantums.divide atau quantum..random. Ctrl+Enter memulai simulasi. Dokumen lengkap melalui tombol Documentation.

Dokumen

Jelaskan perhitungan dalam editor sirkuit kuantum nyata secara otomatis dihasilkan dari itu dan disimulasikan. Maksimum 4000 karakter. Ctrl+Enter memulai simulasi.

FormulaDeskripsiBatasnya
quantum.add({ a, b })Tambahkan dua angkaHasil maksimal. 4 bit (0–15)
quantum.subtract({ a, b })PenguranganA ≥ b, maksimal. 4 Bit-bit
quantum.multiply({ a, b })PerkalianFaktor 0–7 (3 bit)
quantum.divide({ a, b })Pembagian (kothent + sisa)b ≥ 1; sangat ketat: bit(a) + bit(b)+bit(a÷b) +1 ≤ 10
quantum.random({ bits })Nomor acak kuantum yang sebenarnyabits 1–10

Pilihlah contoh

Kode sirkuit

Maksimal 4000 karakter. Metode QuantumCircuit yang tersedia: x, y, z, h, s, sdg, t, tdg, rx, ry, rz, cnot, cz, ccnot (alias: toffoli), swap, measureAll, run. Ctrl+Enter memulai simulasi.

Pilihlah contoh

Dasar: Bagaimana Cara Kerjanya?

Konfigurasi komputer kuantum skematik: sebuah komputer kontrol mengarahkan beberapa sinar laser melalui tabel optik ke qubit di dalam ruang vakum.
Dari komputer kontrol klasik melalui laser dan optik ke qubit fisik.

Dari program ke qubit fisik

Sebuah komputer kuantum yang sebenarnya lebih dari sekadar chip. Elektronik kontrol klasik menerjemahkan sirkuit menjadi pulsa tepat. Dalam contoh yang ditunjukkan, pendingin, repump, qubit dan laser bacaan membentuk sinyal ini di atas tabel optik dan mengarahkan mereka ke ruang vakum terlindung. Di sana mereka mengubah dan mengukur keadaan qubit; hasil pengukuran kemudian kembali ke komputer klasik.

Qubit & dasar negara

Sebuah bit klasik adalah 0 atau 1. Kubit juga dapat ada dalam superposisi dari dua negara dasar |0⟩ dan |1⟩Dengan beberapa qubit, semua negara dasar ditulis sebagai string bit, misalnya.. |10⟩ untuk 2 qubit dimana q0 di simulator ini selalu bit yang paling signifikan (kiri).

Superposisi

Sebuah qubit dalam superposisi secara bersamaan membawa komponen dari beberapa negara dasar. Komponen ini digambarkan sebagai amplitudo kompleks; magnitud kuadrat sebuah amplitudu memberikan probabilitas untuk mendapatkan keadaan yang sesuai dalam pengukuran..

Bola Bloch

Negara dari qubit tunggal dapat digambarkan sebagai panah dalam bola: kutub utara mewakili |0⟩, kutub selatan |1⟩, dan semua titik di khatulistiwa adalah superposisi berimbang yang sama fase menentukan arah sepanjang khatulintang dimana panah menunjuk. Gerbang putaran rx, ry, dan rz dengan qubit yang terikat, panah menyusut ke arah pusat bola: qubit individu kemudian tidak lagi memiliki keadaan murni sendiri sehingga keterlibatan menjadi benar-benar terlihat.. Cuando la flecha se redireccionó alrededor del eje respectivo, las puertas de fase como S y T giran alrededor del eixo Z.

Pengukuran & tembakan

measureAll() Karena satu pengukuran hanya menghasilkan satu hasil acak, sirkuit secara konsep diukur "shot" kali dengan. Se calcula que la masa de un cubit se mide con frecuencia run({ shots }), sehingga distribusi probabilitas muncul sebagai histogram. Kemungkinan yang tepat juga dihitung langsung dari vektor negara, independen dari keaslian tembakan..

Gerbang Hadamard

Gerbang Hadamard h(q) mengambil qubit dari keadaan tertentu (|0⟩ atau |1⟩) menjadi superposisi yang sama beratnya |0⟩ dan |1⟩ sehingga sekitar 50% / 50% ketika diukur.

Pintu fase: S dan T

Gerbang s(q) dan t(q) tidak mengubah probabilitas pengukuran dari qubit tunggal; mereka hanya memutar fase dari |1⟩ Amplituda S dengan 90°, T dengan 45 °. Mereka hanya menunjukkan efek mereka dalam kombinasi dengan superposisi: antara dua gerbang Hadamard, fase memutuskan bagaimana amplitude menggabungkan atau membatalkan (perselingan). Varian dagger sdg(q) dan tdg(q) putar ke arah yang sama dan membatalkan S dan T. Aturan adalah: dua T membuat S, dua S membuat Z.

CNOT & keterkaitan bersyarat

Gerbang CNOT cnot(control, target) membalikkan qubit target tepat ketika qubit kontrol berada dalam keadaan |1⟩Jika qubit kontrol berada di superposisi sebelumnya, ini dapat menciptakan keterlibatan. Kedua kubit kemudian tidak lagi bisa dijelaskan secara independen satu sama lain, seperti dalam contoh keadaan Bell. Jika qubat kontrol berada pada kondisi dasar yang pasti sebaliknya, CNOT hanya melakukan flip bit bersyarat tanpa keterlibetan.

CZ: relatif simetris dari CNOT

Gerbang CZ cz(a, b) menginversi tanda amplitudo tepat ketika kedua qubit adalah |1⟩Tidak seperti CNOT, tidak ada kontrol dan tidak ada qubit target gerbang bertindak identik pada kedua qubits, itulah sebabnya dia ditarik sebagai dua titik terhubung dalam diagram. CZ dan CNOT dapat dikonversi satu sama lain: sebuah CNOT adalah CZ yang qubit sasaran dilewati melalui gerbang Hadamard sebelum dan sesudahnya. C Z merupakan blok bangunan sentral dari banyak algoritma, seperti pencarian Grover..

Status GHZ: saling berantakan sebagai trio

Negara GHZ (diamai setelah Greenberger, Horne, dan Zeilinger) memperluas prinsip negara Bell menjadi tiga kubit: satu gerbang Hadamard ditambah dua CNOT mengikat ketiga-tiga sehingga pengukuran hanya menghasilkan |000⟩ atau |111⟩ tidak pernah bercampur string bit. Tidak ada qubit memiliki keadaan sendiri lagi; informasi terletak secara eksklusif dalam korelasi bersama.

Algoritma Deutsch: Keuntungan kuantum terkecil

Algoritma Deutsch menjawab, dengan evaluasi tunggal dari oracle yang tidak diketahui, sebuah pertanyaan untuk mana komputer klasik membutuhkan dua evaluasi: apakah fungsi konstan atau seimbang? Triknya adalah mengirim input melalui oracle dalam superposisi berkat gangguan, jawaban kemudian dikodekan secara jelas di qubit input. Prinsip di balik itu (fase kickback) merupakan inti hampir semua algoritme kuantum.

Pencarian Grover: amplitudo yang memperkuat

Pencarian Grover menemukan entri yang ditandai dalam himpunan yang tidak disortir dengan lebih sedikit permintaan daripada yang diperlukan secara klasik. Sebuah orakel menandai keadaan yang dicari dengan flip fase (di sini melalui gerbang CZ), maka operator difusi memperkuat amplitudo yang ditandatangani atas biaya semua lainnya. Dengan 2 qubit, satu iterasi cukup untuk mengukur hit dengan 100% probabilitas.

Penjumlahan terbalik: dari quantum.add() ke sirkuit

Editor kode program di atas menerjemahkan quantum.add({ a, b }) Ke dalam sirkuit dari gerbang X, CNOT dan CCNOT (Toffoli) yang mereproduksi penjumlahan klasik dengan cara murni reversibel: setiap gerbang dapat dihapus persis karena tidak ada informasi dibuang. Gerbang CCNOt (ccnot(c1, c2, target)) membalikkan qubit target hanya ketika kedua qubit kontrol |1⟩ yang cukup sebagai blok bangunan untuk membangun kembali setiap sirkuit klasik secara reversibel, termasuk penjumlahan penuh dengan carry. Masukan A dan B pertama kali di inisialisasi sebagai keadaan dasar tertentu (tidak ada superposisi) menggunakan gerbang X. Karena seluruh sirkuit hanya melewati negara-negara tertentu daripada superposis, pengukuran pada akhirnya menghasilkan persis satu hasil dengan probabilitas 100% jumlah yang benar secara klasik. Itulah sebabnya quantum.add() menghasilkan hasil deterministik meskipun simulasi kuantum, bukan beberapa keadaan mungkin dengan probabilitas di bawah 100%.

Pengurangan: penjumlahan terbalik

Karena setiap gerbang dari sirkuit kuantum benar-benar dapat diubah, rangkaian adder lengkap bisa dijalankan ke belakang dan penjumlahan menjadi pengurangan: quantum.subtract({ a, b }) menggunakan persis gerbang dari adder dalam urutan terbalik dan dengan demikian menghitung a − b. Ini bukan gimmick tetapi prinsip dasar perhitungan reversibel: tidak ada langkah komputasi yang menghancurkan informasi, setiap langkah dapat dibalut. Dalam versi ini, a ≥ b diperlukan sehingga tidak terjadi hasil negatif.

Perkalian: quantum.multiply()

Perkalian di sini muncul dari blok bangunan yang sama seperti penjumlahan: mengikuti metode buku sekolah, faktor a ditambahkan beberapa kali dalam posisi bergeser sesuai dengan bit set factor b. Setiap tambahan parsial adalah adder ripple-carry reversibel yang sama; carry mengalir ke bit produk berikutnya setiap saat. Karena daftar hasil tumbuh dengan produk, faktor terbatas pada 3 bits (0–7) di sini hanya kemudian faktor, produk dan membawa qubit bersama cocok ke dalam qubits simulator ini 10.

Pembagian: quantum.divide()

Divisi juga hanya menggunakan blok bangunan yang dapat direversibel: De divisi ini memiliki beberapa komponen quantum.divide({ a, b }) melakukan pembagian panjang yang dibangun dari pergeseran, pengurangan reversibel pembagi dari daftar sisanya; hasilnya adalah kuos dan sisa ()a = quotient · b + remainderKarena dividen, divisor, kuotenya dan qubit pinjaman harus semua cocok ke dalam 10 qubit bersama, pembagian adalah operasi yang paling ketat: bits(a) + bits(b) + bits(a÷b) + 1 ≤ 10 harus bertahan, dan pembagi b harus ≥ 1 (tidak dibagi dengan nol). Jika input tidak sesuai anggaran, editor melaporkan hal itu bukan komputasi..

Benar acak: quantum.random()

Komputer klasik tidak dapat menghasilkan acak yang sebenarnya. "angka acak" mereka berasal dari algoritma deterministik (pseudo-acak) quantum.random({ bits }) menempatkan setiap bit ke dalam a 50/50 superposisi menggunakan gerbang Hadamard, dan hanya pengukuran yang menentukan nilai mana yang keluar secara fundamental tidak dapat diprediksi. Pada perangkat keras kuantum nyata ini adalah keaslian fisik; simulator ini meniru dengan pseudo-keaslian browser Anda.

Simulator vs hardware kuantum nyata

Simulator ini menghitung keadaan dengan tepat menggunakan aritmatika klasik titik terapung di browser Anda. Ini hanya bekerja karena sirkuit yang sangat kecil dengan hingga 10 kubit dianggap secara eksklusif di sini. Komputer kuantum nyata menggunakan qubit fisik, rentan terhadap kesalahan (decoherence, kebisingan), dan keuntungan mereka hanya terlihat dengan sirkuit jauh lebih besar yang tidak dapat lagi disimulasi secara klasik dalam praktik.

Pertanyaan umum

Apakah ini komputer kuantum yang nyata?
Alat ini adalah simulator vektor negara klasik yang menghitung matematika sirkuit kuantum kecil (hingga 10 qubit) dengan tepat, menggunakan aritmatika titik terapung di browser Anda. Hardware quantum nyata menggunakan qubits fisik dan bekerja secara fundamental berbeda.
Qubit mana yang q0 dalam string bit seperti "10"?
q0 selalu merupakan bit yang paling signifikan (kiri). Dengan 2 qubit, x(0) oleh karena itu menciptakan negara |10⟩, bukan |01⟩..
Apa artinya "menembak"?
Shots adalah jumlah pengukuran berulang yang disimulasikan (1–10,000). Setiap tembakan secara acak menarik hasil pengukuran sesuai dengan distribusi probabilitas yang tepat dari vektor negara. Probabilitas yang pasti sendiri tidak tergantung pada kebetulan dan ditampilkan terpisah..
Mengapa beberapa contoh menunjukkan pesan kesalahan?.
Ruang MVP memungkinkan satu sirkuit dengan persis satu run (() panggilan setelah ukuranAll(). Indeks qubit yang tidak valid, gerbang setelah ukuran All(), sudut atau hit count yang tidak sah, dan kesalahan sintaksis dalam kode ditolak dengan pesan kesalahan yang dapat dimengerti.
Apa yang dilakukan Hadamard, X, dan gerbang CNOT?
X swaps |0⟩ dan |1⟩. Hadamard mengubah keadaan dasar menjadi superposisi yang sama beratnya. CNOT membalikkan target hanya ketika kontrol |1⟩ dan dapat menciptakan keterlibatan jika dikombinasikan dengan superposis.
Bagaimana keterlibatan diciptakan?
Salah satu contohnya adalah Hadamard untuk qubit pertama dan kemudian CNOT untuk kedua. Qubit tidak dapat lagi dijelaskan secara independen, dan pengukuran menghasilkan hasil yang berkorelasi seperti |00⟩ atau |11⟩..