Mengenal pemproses kuantum anda

Komputer kuantum dibina daripada qubit. Tetapi hanya mempunyai banyak qubit tidak mencukupi.

Satu bilion qubit yang bekerja dalam pengasingan sepenuhnya tidak akan pernah mencapai apa-apa. Mereka perlu bercakap antara satu sama lain. Ini bermaksud bahawa keperluan untuk dihubungkan dengan operasi terkawal yang disebut. Setiap peranti mempunyai peraturan tersendiri yang mana pasangan qubit dapat dihubungkan dengan cara ini. Semakin baik penyambungan peranti, semakin cepat dan mudah bagi kita untuk menerapkan algoritma kuantum yang kuat.

Sifat kesilapan juga merupakan faktor penting. Dalam era pengkomputeran kuantum dalam jangka masa terdekat, tidak akan ada yang sempurna. Oleh itu, kita perlu mengetahui jenis kesalahan apa yang akan terjadi, seberapa besar kemungkinan kesalahan tersebut, dan apakah kemungkinan untuk mengurangkan kesannya dalam aplikasi yang kita sayangi.

Ini adalah tiga aspek terpenting dari peranti kuantum: nombor qubit, tahap penyambungan dan kebisingan. Untuk mengetahui apa yang dapat dilakukan oleh komputer kuantum, anda harus mengetahui semuanya.

Oleh itu, mari kita buat permainan yang berjalan pada peranti kuantum dan menunjukkan semua perkara ini secara langsung. Dengan hanya bermain permainan, pemain akan melihat dengan tepat berapa besar dan menghubungkan peranti itu. Dengan membandingkan larian pada peranti sebenar dengan yang ada di simulator, mereka akan melihat betapa kuatnya bunyi itu. Kemudian dengan bermain lagi dengan beberapa pengurangan ralat, mereka akan mendapat idea tentang seberapa banyak maklumat berguna dapat diselamatkan walaupun di era komputer kuantum yang sedikit bising. Kami akan memanggil permainan ini Quantum Awesomeness, dan kami akan memainkannya pada peranti IBM yang dikenali sebagai 'ibmq_16_melbourne'.

Gambar di atas memberikan panduan ringkas mengenai apa yang berlaku di peranti Melbourne. Terdapat 14 qubit, bernombor 0 hingga 13, ditunjukkan oleh bulatan berwarna. Qubit yang boleh bercakap antara satu sama lain melalui operasi terkawal ditunjukkan dihubungkan oleh garis, yang masing-masing telah diberi surat untuk nama.

Perkara paling berguna yang boleh anda lakukan dengan operasi terkawal adalah membuat dan memanipulasi keterlibatan. Hanya dengan ini kita dapat meneroka banyak kemungkinan yang terbuka untuk qubit kita, dan berharap dapat melakukan perkara-perkara yang hampir mustahil untuk komputer klasik.

Jenis ikatan yang paling sederhana hanya melibatkan dua qubit. Ini akan menyebabkan masing-masing menghasilkan output yang secara rawak, tetapi dengan korelasi antara keduanya. Sebagai contoh, pertimbangkan untuk mengikuti program pada beberapa qubit.

Ini adalah gambarajah litar: sejarah qubit dalam program kami diceritakan dari kiri ke kanan.

Di sini kita melakukan operasi rx untuk sudut π / 2, yang menghasilkan apa yang pada dasarnya adalah setengah gerbang x. Ini adalah contoh dari apa yang kita panggil sebagai 'TIDAK separa' dalam kapal perang dengan permainan gerbang BUKAN separa. Daripada membalikkan qubit dari | 0⟩ hingga | 1⟩, ia meletakkannya dalam keadaan superposisi kuantum di antara.

Operasi yang bertindak pada kedua qubit adalah NOT-terkawal, yang menerapkan NOT untuk qubit bawah hanya ketika yang teratas berada dalam keadaan | 1⟩. Oleh kerana yang teratas berada dalam superposisi kedua kemungkinan, kesan dari NOT-terkawal adalah menyebarkan superposisi ke qubit bawah juga: superposisi gabungan kedua | 0⟩ dan keduanya | 1⟩.

Bahagian terakhir litar adalah mengekstrak bit mudah dari setiap qubit: | 0⟩ menjadi 0, | 0⟩ menjadi 1, dan superposisi menjadi pilihan rawak satu atau yang lain. Tetapi walaupun kedua-dua qubit akan memberikan hasil yang rawak dalam kes ini, mereka pasti selalu setuju.

Untuk mengesahkan ini, mari jalankan. Hasil yang saya dapat ialah,

{'11': 503, '00': 521}

Dari 1024 sampel yang dijalankan program ini, semua hasilnya keluar sama ada `` 00 'atau `11'. Dan kami mempunyai bilangan sampel yang hampir sama untuk setiap sampel. Semua seperti yang diramalkan.

Dengan menggantikan nilai π / 2 kita dapat mengubah sifat superposisi. Nilai yang lebih rendah akan menghasilkan hasil yang lebih berat sebelah dengan output 0, dan nilai yang lebih dekat dengan π akan menghasilkan bias terhadap 1s. Ini bermaksud kita boleh mengubah kebarangkalian dengan mana setiap output akan memberikan 1. Tetapi apa pun nilai yang kita pilih, bentuk litar ini memastikan bahawa hasil untuk kedua qubit akan selalu setuju.

Dalam permainan ini kita akan membuat banyak pasangan qubit yang terjerat di seluruh peranti. Untuk melakukan ini, pertama-tama kita mesti memilih cara untuk memasangkan qubit secara monogami (mungkin meninggalkan beberapa ganti yang tersisa). Pasangan ini akan dipilih secara rawak, dan inti permainan adalah untuk pemain meneka apakah pasangan itu.

Sebaik sahaja kita mempunyai pasangan rawak, pada dasarnya kita akan menjalankan program kuantum di atas pada setiap pasangan bebas. Walaupun kami akan memperkenalkan satu perbezaan: untuk setiap pasangan, kami secara rawak akan memilih nilai yang berbeda untuk operasi rx, jadi tahap keacakan yang dikongsi oleh qubit berpasangan akan berbeza dari pasangan ke pasangan.

Semasa kita menjalankan litar, hasilnya akan menjadi rentetan 14 bit: dengan setiap bit menggambarkan output setiap qubit. Oleh kerana kami menjalankannya untuk mengambil banyak sampel untuk mengambil statistik, hasil penuh akan menjadi senarai semua rentetan bit yang keluar, bersama dengan berapa kali masing-masing berlaku.

Oleh kerana tujuan permainan adalah untuk pemain menyimpulkan pasangan dari output, kita hanya dapat membuang semua data ini pada mereka. Tetapi itu mungkin tidak akan menyenangkan. Sebagai gantinya, kita hanya boleh memberi tumpuan kepada perkara penting:

  • Berapakah kebarangkalian setiap qubit memberikan output 1 dan bukannya 0?
  • Apakah kebarangkalian setiap pasangan qubit yang dihubungkan memberikan nilai yang sama?

Kami kemudian boleh meletakkan maklumat tersebut pada gambar peranti kami. Sebagai contoh, berikut adalah satu set larian tertentu.

Nombor yang ditunjukkan pada setiap qubit adalah peratusan sampel yang hasilnya adalah 1. Nombor pada setiap sambungan adalah peratusan sampel yang mana sepasang qubit yang sesuai mempunyai hasil yang tidak setuju. Dengan maklumat ini, kita dapat dengan mudah menemukan pasangan qubit yang terjerat: sama ada dengan mencari qubit yang mempunyai kebarangkalian yang sama untuk menghasilkan 1, atau mencari pasangan yang tidak pernah setuju.

Data di atas diambil dari simulator. Sekarang mari kita mencubanya pada peranti kuantum sebenar.

Di sini hasilnya tidak begitu jelas untuk simulator. Kesan bunyi lebih kuat, menjadikannya lebih sukar untuk mengenal pasti pasangan.

Tetapi semua tidak hilang! Kami boleh melakukan beberapa pengurangan ralat. Kami tahu bahawa output harus mempunyai struktur tertentu, jadi kami dapat mencari struktur itu dan menggunakannya untuk membersihkan hasilnya.

Inilah kaedah yang sangat mudah untuk melakukannya. Pertama, setiap qubit akan melihat semua jirannya dan melihat mana yang paling disetujui olehnya. Ia kemudian akan menganggap bahawa qubit yang paling menyenangkan ini adalah pasangannya. Untuk mencuba dan mengimbangi kesilapan dalam hasilnya, kami kemudian akan mengganti kebarangkalian untuk mendapatkan output 1 untuk qubit itu dengan rata-rata dari keduanya.

Walaupun semuanya telah bertambah baik, semuanya tidak sempurna. Ini kerana skema mitigasi ralat kami cukup mudah, dan hanya dihentikan pada akhir proses. Pengurangan ralat boleh memberi kesan yang kuat, tetapi ia paling berkesan apabila dimasukkan ke dalam program kuantum itu sendiri (sesuatu yang boleh anda cuba percubaan sekiranya anda ingin mengembangkan projek ini).

Buat masa ini, mari kita bermain permainan menggunakan hasil yang dikurangkan ini.

Tugas kita adalah melihat nombor di qubit, dan berusaha mencari pasangan yang mempunyai nombor yang sama, atau sekurang-kurangnya mempunyai nombor yang sedekat mungkin. Kedua-dua 48-an di sebelah kiri kelihatan seperti permulaan yang baik. Oleh itu, mari kita gandingkan pasangan A yang kita anggap terjerat.

Kedua-dua pasangan H berusia 46-an itu sama antara satu sama lain, dan juga sangat berbeza dengan jiran mereka. Oleh itu, kita juga akan memilihnya.

Kemudian pasangan E nampaknya cukup pasti.

Dan sepasang C.

Sekarang kita telah mencapai tahap di mana bunyi bising menjadikannya sedikit sukar bagi kita. Perlukah 42 dipasangkan dengan 55, atau 56? Oleh kerana nilai 55 lebih dekat, kami akan memilih pasangan O.

Akhirnya kita ditinggalkan dengan dua qubit yang mesti dipasangkan dengan apa-apa. Itu akan selalu berlaku pada peranti ini kerana cara grafik penyambungannya disusun. Oleh itu, kita telah mencapai penyelesaian! Tetapi adakah itu betul?

Mari kita lihat lagi simulasi tanpa suara, di mana pasangan yang betul lebih mudah dilihat.

Pasangan yang menunjukkan kesepakatan yang sempurna di sini adalah pasangan yang baru kami pilih. Oleh itu, kami memang betul. Kami bermain permainan di komputer kuantum, dan kami menang!

Apa selepas ini?

Sekiranya anda ingin memulakan dengan pengaturcaraan kuantum, mengapa tidak melihat kod sumber untuk permainan ini, tersedia di tutorial Qiskit.

Kami bahkan telah mengumpulkan beberapa idea untuk cara anda memperluasnya

  • Tulis algoritma untuk bermain permainan. Ini akan menebak pasangan yang betul mungkin dengan menganalisis analisis data dengan bijak.
  • Teka-teki ini sangat mudah diselesaikan apabila tidak ada suara. Anda boleh memperkenalkan tahap kesukaran yang berbeza.
  • Pengurangan ralat yang digunakan di sini sangat sederhana. Anda boleh cuba melaksanakan sesuatu yang lebih canggih, seperti 'perkiraan fasa mantap' yang dijelaskan dalam ceramah ini.
  • Mungkinkah keadaan terjerat yang lebih kompleks, seperti yang mempunyai tiga qubit, digunakan untuk memastikan bahawa tidak ada qubit pada peranti yang tersisa dari keseronokan?

Selamat bergembira, dengan ini dan permainan kuantum kami yang lain!