Apakah ada emulator untuk komputer kuantum?

64

Apakah ada cara untuk meniru komputer kuantum di komputer normal saya, sehingga saya akan dapat menguji dan mencoba bahasa pemrograman kuantum (seperti Q # )? Maksud saya sesuatu yang saya dapat benar-benar menguji hipotesis saya dan mendapatkan hasil yang paling akurat.

Pembaruan: Saya tidak benar-benar mencari untuk mensimulasikan komputer kuantum, tetapi saya tidak yakin apakah mungkin untuk secara efisien meniru komputer berbasis PC yang tidak berbasis kuantum.

Michel Gokan
sumber

Jawaban:

39

Ya, itu mungkin (tapi lambat). Ada beberapa emulator yang ada (ini hanya sebagian daftar):

  • QDD: Perpustakaan Emulasi Komputer Quantum

    QDD adalah pustaka C ++ yang menyediakan seperangkat konstruksi komputasi kuantum yang relatif intuitif dalam konteks lingkungan pemrograman C ++. QDD unik karena emulasi komputasi kuantum didasarkan pada representasi Diagram Keputusan Biner (BDD) dari keadaan kuantum.

  • jQuantum

    jQuantum adalah program yang mensimulasikan komputer kuantum. Anda dapat mendesain sirkuit kuantum dengannya dan membiarkannya berjalan. Keadaan register kuantum saat ini digambarkan.

  • QCE

    QCE adalah alat perangkat lunak yang mengemulasi berbagai desain perangkat keras Quantum Computers. QCE mensimulasikan proses fisik yang mengatur pengoperasian prosesor kuantum perangkat keras, secara ketat sesuai dengan hukum mekanika kuantum. QCE juga menyediakan lingkungan untuk debug dan mengeksekusi algoritma kuantum dalam kondisi eksperimental yang realistis.

(Selain itu, Q # hanya berfungsi dengan QDK MS , terima kasih @Pavel)

Kelemahan dari semua ini sederhana: mereka masih berjalan di sirkuit biner (non-kuantum). Sepengetahuan saya, tidak ada komputer kuantum yang mudah diakses untuk digunakan untuk menjalankan hal-hal ini. Dan karena dibutuhkan beberapa bit biner untuk mengekspresikan qubit tunggal, jumlah daya komputasi yang diperlukan untuk mensimulasikan program kuantum menjadi besar dengan sangat cepat.

Saya akan mengutip makalah tentang masalah ini ( J. Allcock, 2010 ):

Evaluasi kami menunjukkan bahwa implementasi kami sangat akurat, tetapi pada saat yang sama kami menggunakan sejumlah besar memori tambahan untuk mencapai ini. Mengurangi tujuan kami untuk akurasi akan memungkinkan kami untuk mengurangi ukuran representasi, dan karenanya meniru lebih banyak qubit dengan jumlah memori yang sama.

hal 89, bagian 5.1

Ketika implementasi kami menjadi lebih akurat, mereka juga menjadi lebih lambat.

TL; DR: itu mungkin, dan beberapa emulator ada, tetapi tidak ada yang sangat efisien untuk jumlah qubit yang besar.

Riker
sumber
Perhatikan bahwa tidak satu pun dari emulator ini (saat ini) dapat digunakan oleh Q #, yang hanya berfungsi dengan QDK Microsoft.
Pavel
3
Selain apa yang Anda katakan: Ada cara terprogram untuk menjalankan kode pada IBM Quantum Experience yang menyediakan komputer kuantum nyata - bukan kode Q #, melainkan QASM. QISKit adalah cara untuk pergi ke sini. github.com/QISKit
blalasaadri
Apa yang Anda katakan masuk akal karena simulasi dijalankan di satu komputer. Tetapi apakah mungkin untuk mencapai kecepatan yang sama jika banyak komputer digunakan?
Kalender iOS patchthecode.com
26

Ya, adalah mungkin untuk mensimulasikan komputer kuantum pada yang normal - Tetapi Anda kemungkinan besar harus mengorbankan efisiensi.

2nn


Sumber daya

Anda mungkin tertarik pada Q # karena jawaban lain dicatat. Beberapa emulator lagi:

  • Quantum Computing Playground

    Quantum Computing Playground adalah Eksperimen Chrome WebGL berbasis browser. Ini fitur komputer kuantum akselerasi GPU dengan antarmuka IDE sederhana, dan bahasa scripting sendiri dengan debugging dan fitur visualisasi keadaan kuantum 3D. Quantum Computing Playground secara efisien dapat mensimulasikan register kuantum hingga 22 qubit, menjalankan algoritma Grover dan Shor, dan memiliki berbagai gerbang kuantum yang dibangun ke dalam bahasa scripting itu sendiri.

  • QX Simulator

    QX Simulator adalah simulator komputer kuantum universal yang dikembangkan di QuTech oleh Nader Khammassi. QX memungkinkan perancang algoritma kuantum untuk mensimulasikan eksekusi sirkuit kuantum mereka pada komputer kuantum. Simulator mendefinisikan bahasa rakitan kuantum tingkat rendah yaitu Quantum Code yang memungkinkan pengguna untuk menggambarkan sirkuit mereka dalam file kode sumber teks sederhana. File kode sumber kemudian digunakan sebagai input dari simulator yang mengeksekusi kontennya.

  • Quantum ++

    Quantum ++ adalah pustaka komputasi kuantum tujuan umum C ++ 11 yang modern, yang hanya terdiri dari file-file header template. Quantum ++ ditulis dalam standar C ++ 11 dan memiliki dependensi eksternal yang sangat rendah, hanya menggunakan pustaka templat aljabar header-only Eigen 3 linear dan, jika tersedia, pustaka multi-pemrosesan OpenMP.

  • Bahasa Komputer Quantum

    Meskipun banyak konsep umum dengan ilmu komputer klasik, komputasi kuantum masih secara luas dianggap sebagai disiplin khusus dalam bidang fisika teoretis yang luas. [...] QCL (Quantum Computation Language) mencoba untuk mengisi celah ini: QCL adalah bahasa pemrograman tingkat tinggi arsitektur independen untuk komputer kuantum, dengan sintaksis yang berasal dari bahasa prosedural klasik seperti C atau Pascal. Ini memungkinkan implementasi dan simulasi algoritma kuantum yang lengkap (termasuk komponen klasik) dalam satu formalisme yang konsisten.

  • Emulator yang lebih relevan dapat ditemukan di Quantiki

Tuan Xcoder
sumber
21

Ya, adalah mungkin untuk mensimulasikan perhitungan kuantum pada komputer klasik. Tetapi biaya simulasi tumbuh secara eksponensial dengan jumlah qubit dan / atau kedalaman rangkaian dan / atau jumlah operasi tertentu.

Untuk mencoba ide dengan cepat, Quirk simulator saya sangat bagus. Ini adalah simulator rangkaian kuantum drag-and-drop open source yang berjalan di browser web Anda. Anda dapat mengakses versi langsung di algassert.com/quirk .

Berikut ini adalah tangkapan layar dari contoh sirkuit Grover milik Quirk, yang dilengkapi dengan tampilan keadaan sedang untuk melacak keadaan "tersembunyi" menjadi lebih mungkin:

Cuplikan layar Quirk

Craig Gidney
sumber
16

Jika Anda secara khusus melihat Q #, maka sangat mudah digunakan dengan emulator - pada kenyataannya, tidak mungkin untuk memiliki Q # tetapi tidak memiliki emulator, mereka dibundel bersama.

Untuk memulai, pertama Anda harus mengunduh .NET Core dari situs web Microsoft .

Ketika Anda mengunduh Microsoft Quantum Development Kit melalui dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"atau situs web Microsoft, ia mengunduh bahasa dan emulator Microsoft bersama-sama.

Membuat proyek Q # baru ( dotnet new console -lang Q#) akan secara otomatis mengkonfigurasinya untuk menggunakan emulator, jadi ketika Anda mengetikkan beberapa Q # dan menjalankan proyek itu "hanya berfungsi".

Pavel
sumber
3

Iya. Jika Anda membuatnya sendiri, temukan komputer pihak ketiga dengan spesifikasi yang sama dengan seri BullSequana M9600, atau dapatkan € 100K + dan beli sistem dari Atos.

Perhatikan kesamaan antara seri BullSequana M9600 dan Atos QLM . Atis QLM vs M9600

Kotak yang sama (dan mungkin komponen internal) dengan perangkat lunak yang berbeda (tetapi Anda ingin menggunakan sendiri, Q #). Atos mengklaim: "Simulator kuantum berperforma tertinggi di dunia". Saya tidak yakin tentang itu tetapi spesifikasi untuk versi 30 qubit dapat dijangkau, hanya dua CPU Intel dan memori 1TB.

Atos QLM .PDF Brosur .

Apakah ada cara untuk meniru komputer kuantum di komputer normal saya , sehingga saya dapat menguji dan mencoba bahasa pemrograman kuantum (seperti Q #)?

Jika Anda hanya menggunakan 256GB memori dan 1-24TB dari Swap Drive itu akan lambat tetapi akan berfungsi.

Maksud saya sesuatu yang dapat benar-benar menguji hipotesis saya dan mendapatkan hasil yang paling akurat .

Kutipan dari brosur:

"The Atos Quantum Learning Machine menghitung eksekusi yang tepat dari program kuantum, dengan presisi dua digit. Ini mensimulasikan hukum fisika , yang merupakan inti dari komputasi kuantum. Ini sangat berbeda dengan prosesor kuantum yang ada, yang menderita kuantum kebisingan, dekoherensi kuantum, dan bias pembuatan, serta hambatan kinerja. Simulasi pada Mesin Pembelajaran Quantum Atos memungkinkan pengembang untuk fokus pada aplikasi dan algoritma mereka, tanpa harus menunggu mesin kuantum tersedia ".

Mereka mengklaim akurasi tinggi, karena ini adalah simulator yang tidak berisik - juga tidak akan secepat atau semahal itu. Secara teori Anda dapat menambahkan beberapa memori, drive, dan perangkat lunak ke komputer Anda ...

rampok
sumber
3

Saya pikir "gambaran umum" yang bagus tentang subjek dapat ditemukan di: Quantiki

Mereka memiliki daftar simulator komputer kuantum dalam beberapa bahasa, beberapa simulator telah dikutip di sini sebelumnya. Namun, mereka menyimpan daftar yang mereka perbarui untuk menginformasikan (atau mencoba menginformasikan) tentang status proyek. Ada beberapa "perpustakaan" seperti:

Haskell

qchas (qchas: Perpustakaan untuk menerapkan Algoritma Quantum) - Perpustakaan yang berguna untuk menerapkan Algoritma Quantum. Ini berisi definisi Quantum Gates, Qubits.

Python

qubiter : Proyek Qubiter bertujuan untuk pada akhirnya menyediakan seperangkat alat lengkap, sebagian besar ditulis dalam Python, untuk merancang dan mensimulasikan sirkuit kuantum pada komputer klasik.

Javascript

jsqis : jsqis, pada intinya, adalah simulator komputer kuantum yang ditulis dalam Javascript. Ini memungkinkan inisialisasi register kuantum dan manipulasinya melalui gerbang kuantum.

Gustavo Banegas
sumber