Membangun komputer kuantum dalam simulasi

13

Jika seseorang ingin mulai membangun komputer kuantum dari awal di dalam simulasi (seperti bagaimana orang bisa membangun komputer klasik dari awal dalam kursus Nand2Tetris ), apakah mungkin?

Jika ya, apa yang akan menjadi beberapa pendekatan yang mungkin?

Juga, apa yang akan menjadi batas dari mesin simulasi seperti itu, mengingat jumlah tertentu daya komputasi klasik? Misalnya, jika kami memilih desktop / laptop rata-rata, berapa batasnya? Jika kita menggunakan superkomputer (seperti Titan), lalu apa batasannya?

ak_nama
sumber

Jawaban:

5

Bagian pertama dari pertanyaan Anda sepertinya merupakan duplikat dari pos SE QC yang ada: Apakah ada emulator untuk komputer kuantum? .

Saya tidak sepenuhnya yakin apa yang Anda maksud dengan membangun komputer kuantum dari awal di dalam simulasi . Namun, ya, Anda dapat membuat simulasi perangkat lunak komputer kuantum menggunakan laptop / desktop rata-rata. "Batas" yang tepat akan tergantung pada spesifikasi komputer.

Karena komputer kuantum tidak melanggar tesis Church-Turing , secara teori dimungkinkan untuk mensimulasikan komputer kuantum menggunakan mesin Turing yang ideal . Pendekatan yang jelas untuk mensimulasikan sistem seperti itu membutuhkan waktu eksponensial pada komputer klasik dan kompleksitas ruang adalah fungsi eksponensial dari jumlah bit kuantum yang disimulasikan. Katakanlah, Anda mensimulasikan komputer kuantum bit, Anda harus menyimpan sekitar 2 n bit informasi di komputer klasik Anda setiap saat. Selain itu, implementasi gerbang kuantum akan kembali mengambil sejumlah besar sumber daya dalam hal kompleksitas waktu dan ruang. Implementasi gerbang kuantum yang beroperasi pada n -qubits harus disimpann2nn (karena Anda dapat mewakili semua operasi gerbang kuantum sebagai matriks ukuran 2 n × 2 n ) bit informasi.4n2n×2n

1catatan4(8×1012)2120n

Sanchayan Dutta
sumber
Anda sebenarnya dapat mensimulasikan qubit sedikit lebih banyak jika Anda hanya menggunakan 1 dan 2 gerbang qubit untuk menguraikan unitari besar Anda, dan bertindak berdasarkan keadaan murni. Dengan 8GB RAM, Anda dapat dengan mudah melakukan 25 qubit dalam presisi ganda.
vsoftco
4

Baiklah, saya sedang mengerjakan simulator komputer kuantum saat ini. Ide dasar komputasi kuantum, tentu saja, adalah gerbang yang diwakili oleh matriks yang diterapkan pada qubit yang diwakili oleh vektor. Menggunakan paket ngey Python, ini tidak sulit untuk diprogram dalam arti paling dasar.

Dari sana, orang dapat memperluas, tentu saja, antarmuka. Seseorang mungkin juga mempertimbangkan untuk mencoba menjadikannya simulator dari komputer kuantum non-linear, yaitu, dengan memperhitungkan waktu dekoherensi dan koreksi kesalahan.

Kemudian, Anda masuk ke wilayah yang belum dipetakan. Bagaimana Anda membuat set instruksi untuk komputer kuantum? Siapa tahu. Anda harus mencari tahu. Anda juga harus mengetahui versi perakitan Anda, dan bahkan versi bahasa pemrograman tingkat yang lebih tinggi.

Jadi, keterbatasan komputer klasik dalam hal ini? Baiklah, ini adalah pertanyaan yang sangat rumit (dan patut ditanyakan secara terpisah, imho) tapi inilah ringkasan singkatnya:

  • kita tidak tahu apakah komputer kuantum sebenarnya lebih baik daripada komputer klasik; algoritma untuk komputer klasik mungkin belum cukup baik (supremasi kuantum)
  • katakanlah, seperti yang tampaknya sopan mungkin, bahwa komputer kuantum yang lebih baik dari komputer klasik. bahwa perbaikan akan sangat bergantung pada masalah - komputer kuantum mungkin melihat, misalnya, peningkatan kecepatan yang jauh lebih tinggi dalam menemukan faktorisasi utama daripada memeriksa email. (lihat juga P.SE ini q / a.)
  • HAI(e649(catatanN)13(catatancatatanN)23)HAI((catatanN)2(catatancatatanN)(catatancatatancatatanN))
  • |0|1
heather
sumber
4

Saya merasa jawaban ini sebagian besar bersandar pada kesalahpahaman mendasar tentang apa artinya "mensimulasikan" sesuatu.

Secara umum, "mensimulasikan" sistem yang kompleks berarti mereproduksi fitur-fitur tertentu dari sistem tersebut dengan platform yang lebih mudah dikendalikan (sering, tetapi tidak selalu, komputer klasik).

Oleh karena itu, pertanyaan apakah "seseorang dapat mensimulasikan komputer kuantum dalam komputer klasik" agak tidak tepat. Jika Anda bermaksud mereplikasi setiap aspek yang mungkin dari "komputer kuantum", maka itu tidak akan pernah terjadi, sama seperti Anda tidak akan pernah bisa mensimulasikan setiap aspek dari sistem klasik mana pun (kecuali jika Anda menggunakan identik yang sama sistem tentu saja).

Di sisi lain, Anda tentu dapat mensimulasikan banyak aspek perangkat yang kompleks seperti "komputer kuantum". Sebagai contoh, seseorang mungkin ingin mensimulasikan evolusi keadaan dalam suatu rangkaian kuantum. Memang, ini bisa sangat mudah dilakukan! Misalnya, jika Anda memiliki python di komputer Anda, jalankan saja yang berikut ini

import numpy as np
identity_2d = np.diag([1, 1])
pauliX_gate = np.array([[0, 1], [1, 0]])
hadamard_gate = np.array([[1, 1], [1, -1]]) / np.sqrt(2)

cnot_gate = np.kron(identity_2d, pauliX_gate)
H1_gate = np.kron(hadamard_gate, identity_2d)

awesome_entangling_gate = np.dot(cnot_gate, H1_gate)

initial_state = np.array([1, 0, 0, 0])
final_state = np.dot(awesome_entangling_gate, initial_state)
print(final_state)

Selamat, Anda baru saja "mensimulasikan" evolusi dari kondisi dua-qubit yang dapat dipisahkan menjadi status Bell!

n2n(1)(2)

Jawaban lain sudah menyentuh berbagai aspek kekerasan ini, dan jawaban atas pertanyaan lain ini sudah menyebutkan banyak platform yang tersedia untuk mensimulasikan / meniru berbagai aspek algoritma kuantum, jadi saya tidak akan pergi ke sana.


(1) Contoh yang menarik dari ini adalah masalah simulasi perangkat boson sampling (ini bukan algoritma kuantum dalam arti suatu keadaan yang berevolusi melalui serangkaian gerbang, tetapi tetap merupakan contoh dari perangkat kuantum nontrivial). BosonSampling adalah masalah pengambilan sampel , di mana seseorang ditugaskan dengan masalah pengambilan sampeldari distribusi probabilitas tertentu, dan ini telah ditunjukkan (dengan asumsi yang mungkin) tidak mungkin dilakukan secara efisien dengan perangkat klasik. Meskipun itu tidak pernah terbukti menjadi aspek fundamental dari kekerasan ini, masalah yang pasti nontrivial terkait dengan simulasi perangkat boson sampling adalah bahwa harus menghitung sejumlah besar probabilitas secara eksponensial dari mana untuk sampel. Namun, baru-baru ini ditunjukkan bahwa memang seseorang tidak perlu menghitung seluruh rangkaian probabilitas untuk mengambil sampel dari mereka ( 1705.00686 dan 1706.01260). Ini pada prinsipnya tidak jauh dari mensimulasikan evolusi banyak qubit dalam suatu rangkaian kuantum tanpa harus menyimpan seluruh keadaan sistem pada suatu titik tertentu. Mengenai sirkuit kuantum yang lebih langsung, contoh terobosan baru dalam kemampuan simulasi adalah 1704.01127 dan 1710.05867 (juga super baru, belum diterbitkan, adalah 1802,06952 ).

(2) Sebenarnya, telah ditunjukkan (atau lebih tepatnya, bukti kuat telah disediakan untuk fakta) bahwa tidak mungkin untuk secara efisien mensimulasikan sebagian besar sirkuit kuantum, lihat 1504.07999 .

glS
sumber