Bagaimana cara menambahkan 1 + 1 menggunakan komputer kuantum?

29

Ini dapat dilihat sebagai pelengkap perangkat lunak untuk Bagaimana komputer kuantum melakukan matematika dasar di tingkat perangkat keras?

Pertanyaan itu diajukan oleh seorang anggota audiensi di jaringan ke - 4 dari Jaringan Spanyol tentang Informasi Quantum dan Teknologi Quantum . Konteks yang diberikan orang itu adalah: " Saya seorang ilmuwan materi. Anda memperkenalkan konsep-konsep teoretis canggih canggih, tapi saya kesulitan membayangkan operasi praktis komputer kuantum untuk tugas sederhana. Jika saya menggunakan dioda, transistor, dll. Saya bisa dengan mudah mencari tahu sendiri operasi klasik yang perlu saya jalankan untuk menambahkan 1 + 1. Bagaimana Anda melakukannya, secara rinci, pada komputer kuantum? "

agaitaarino
sumber

Jawaban:

21

Sesuai pertanyaan terkait, solusi paling sederhana adalah dengan membuat prosesor klasik untuk melakukan operasi seperti itu jika memungkinkan . Tentu saja, itu tidak mungkin, jadi kami ingin membuat penambah .

Ada dua jenis penambah bit tunggal - penambah setengah dan penambah penuh . Setengah-penambah mengambil input dan B dan output 'sum' (XOR operasi) S = A B dan 'carry' (operasi AND) C = A B . Sebuah penambah penuh juga memiliki 'carry di' C i n input dan 'melakukan' keluaran C o u t , menggantikan C . Ini mengembalikan S = A B C i nSEBUAHBS=SEBUAHBC=SEBUAHBCsayanCHaikamutCS=SEBUAHBCsayandan .CHaikamut=Csayan(SEBUAH+B)+SEBUAHB


Versi setengah kuantum dari penambah

Melihat pintu gerbang CNOT pada qubit mendaftar mengendalikan mendaftar B : CNOT A B | 0 A | 0 BSEBUAHB yang segera memberikan output dariBmendaftar sebagaiAB=S. Namun, kami belum menghitung carry dan statusregisterBtelah berubah sehingga kami juga perlu melakukan operasi DAN. Ini dapat dilakukan menggunakan gerbang Toffoli 3-qubit (controlled-CNOT / CCNOT). Ini dapat dilakukan dengan menggunakan registerAdanBsebagai register kontrol dan menginisialisasi register ketiga(C)dalam keadaan| 0

CNOTSEBUAHB|0SEBUAH|0B=|0SEBUAH|0BCNOTSEBUAHB|0SEBUAH|1B=|0SEBUAH|1BCNOTSEBUAHB|1SEBUAH|0B=|1SEBUAH|1BCNOTSEBUAHB|1SEBUAH|1B=|1SEBUAH|0B,
BSEBUAHB=SBSEBUAHB(C)|0, Memberikan output dari register ketiga sebagai . Menerapkan Toffoli pada register A dan B mengendalikan register C diikuti oleh CNOT dengan A mengendalikan B memberikan output register B sebagai jumlah dan output register C sebagai carry. Diagram sirkuit kuantum half-adder ditunjukkan pada Gambar 1.SEBUAHB=CSEBUAHBCSEBUAHBBC

Diagram sirkuit setengah penambah

Gambar 1: Diagram Sirkuit setengah adder, terdiri dari Toffoli diikuti oleh CNOT. Bit input dan B , memberikan jumlah S dengan membawa keluar C .SEBUAHBSC


Versi lengkap dari penambah penuh

Ditunjukkan pada gambar 2, cara sederhana untuk melakukan ini untuk bit tunggal adalah dengan menggunakan register qubit, di sini berlabel A ,4SEBUAH , C i n dan 1 , di mana 1 dimulai dalam keadaan | 0 , sehingga keadaan awal adalah | Sebuah | B | C i n | 0 :BCsayan11|0|SEBUAH|B|Csayan|0

  1. Terapkan Toffoli menggunakan dan B untuk mengontrol 1 : | Sebuah | B | C i n | A B SEBUAHB1|SEBUAH|B|Csayan|SEBUAHB
  2. CNOT dengan mengendalikan B : | Sebuah | A B | C i n | A B SEBUAHB|SEBUAH|SEBUAHB|Csayan|SEBUAHB
  3. Toffoli dengan dan C i n mengendalikan 1 : | Sebuah | A B | C i n| A B ( A B )C i n = C o u tBCsayan1|SEBUAH|SEBUAHB|Csayan|SEBUAHB(SEBUAHB)Csayan=CHaikamut
  4. CNOT dengan mengendalikan C i n : | Sebuah | A B | A B C i n = S | C o u tBCsayan|SEBUAH|SEBUAHB|SEBUAHBCsayan=S|CHaikamut

Langkah terakhir untuk mendapatkan kembali input dan B adalah menerapkan CNOT dengan register A, register pengendali B , memberikan status keluaran akhir sebagai | ψ o u t = | Sebuah | B | S | C o u tSEBUAHBSEBUAHB

|ψHaikamut=|SEBUAH|B|S|CHaikamut

Ini memberikan output register sebagai jumlah dan output register 2 sebagai dijalankan.Csayan2

Versi lengkap dari penambah penuh

SEBUAHBCsayanSCHaikamut


Versi quantum dari adder carry ripple

Perpanjangan sederhana dari penambah lengkap adalah penambah riak riak, dinamakan sebagai 'riak' alat untuk menjadi alat penambah dari penambah berikutnya dalam serangkaian adders, memungkinkan untuk jumlah yang sewenang-wenang (jika lambat) jumlah. Versi kuantum dari penambah tersebut dapat ditemukan misalnya di sini


Implementasi sebenarnya dari setengah penambah

Untuk banyak sistem, menerapkan gerbang Toffoli jauh dari sesederhana menerapkan gerbang qubit tunggal (atau bahkan dua qubit). Jawaban ini memberikan cara menguraikan Toffoli menjadi beberapa gerbang yang lebih kecil. Namun, dalam sistem nyata, seperti IBMQX , ada juga masalah di mana qubit dapat digunakan sebagai target. Dengan demikian, implementasi kehidupan nyata di IBMQX2 terlihat seperti ini: Penambah setengah qubit tunggal pada IBMQX2

Gambar 3: Implementasi setengah penambah pada IBMQX2. Selain mendekomposisi gerbang Toffoli menjadi beberapa gerbang yang lebih kecil, gerbang tambahan diperlukan karena tidak semua register qubit dapat digunakan sebagai target. Register q [0] dan q [1] ditambahkan untuk mendapatkan jumlah dalam q [1] dan carry in q [2]. Dalam hal ini, hasil q [2] q [1] harus 10. Menjalankan ini pada prosesor memberikan hasil yang benar dengan probabilitas 42,8% (meskipun itu masih merupakan hasil yang paling mungkin).

Mithrandir24601
sumber
Apakah ada tambahan komputer kuantum?
John Duffield
@ JohnDuffield Saya tidak yakin apakah maksud Anda kira - kira adders (state) adders (state adders sebenarnya dilarang) atau implementasi 'klasik' adders pada komputer kuantum - Saya belum mencoba kode khusus ini - atau sesuatu yang berbeda ?
Mithrandir24601
Bagaimana angka-angka diwakili? Apakah itu di Binary?
user3483902
@ user3483902 Dalam hal ini, bit tunggal dan 1 menggunakan status | | 0 dan | 1 - yaitu, 'nomor' A dapat berupa01|0|1SEBUAH01B
@ Mithrandir24601: apakah itu penting? Bukankah jawabannya tidak dalam kedua kasus? Saya sebenarnya telah membangun penambah paralel sendiri. Saya memiliki gelar Ilmu Komputer.
John Duffield
6

`` Jika saya menggunakan dioda, transistor, dll, saya dapat dengan mudah mengetahui sendiri operasi klasik yang perlu saya jalankan untuk menambahkan 1 + 1. Bagaimana Anda melakukannya, secara terperinci, pada komputer kuantum? ''

Impresif! Saya menduga bahwa kebanyakan orang tidak dapat dengan mudah mengetahui sendiri bagaimana menggabungkan dioda dan transistor untuk mengimplementasikan adde dua bit klasik (meskipun saya tidak ragu ilmuwan materi ini mungkin dapat melakukannya). ;)

Secara teoritis, cara Anda menerapkan penambah klasik cukup mirip di komputer klasik dan kuantum: Anda dapat melakukannya dalam kedua kasus dengan menerapkan gerbang Toffoli ! (Lihat jawaban @ Mithrandir24601.)

Tetapi ilmuwan material mungkin ingin memahami bagaimana menerapkan gerbang semacam itu (atau urutan ekuivalen dari gerbang kuantum lainnya) pada perangkat fisik. Mungkin ada cara tak terbatas untuk melakukan itu menggunakan teknologi kuantum yang berbeda, tetapi di sini ada dua realisasi langsung gerbang ini menggunakan ion yang terperangkap dan qubit superkonduktor:

  1. Realisasi Gerbang Toffoli Quantum dengan Ion yang Terjebak, T. Monz, K. Kim, W. Hänsel, M. Riebe, AS Villar, P. Schindler, M. Chwalla, M. Hennrich, dan R. Blatt, Phys. Pdt. Lett. 102 , 040501, arXiv: 0804.0082 .
  2. Implementasi gerbang Toffoli dengan sirkuit superkonduktor A. Fedorov, L. Steffen, M. Baur, MP da Silva & A. Wallraff Nature 481 , 170–172, arXiv: 1108.3966 .

Anda juga dapat menguraikan gerbang Toffoli sebagai urutan gerbang qubit-tunggal dan CNOT. https://media.nature.com/lw926/nature-assets/srep/2016/160802/srep30600/images/srep30600-f5.jpgmasukkan deskripsi gambar di sini Anda dapat membaca tentang cara mengimplementasikannya dengan fotonics, Q-rongga-QED, dan ion yang terjebak di Nielsen dan Chuang .

Juan Bermejo Vega
sumber
Untuk pengungkapan, saya bukan ilmuwan material, tetapi karena diskusi tanpa akhir masih tidak memuaskan dan secara abstrak, saya adalah orang yang mengerti apa yang dia minta, mencari di Google untuk itu dan menunjukkan kepadanya jawaban yang minimal tapi memuaskan (a half-adder on quantiki) dalam istilah gerbang kuantum.
agaitaarino
5

Metode baru untuk menghitung jumlah pada komputer kuantum diperkenalkan. Teknik ini menggunakan transformasi kuantum Fourier dan mengurangi jumlah qubit yang diperlukan untuk penambahan dengan menghilangkan kebutuhan bit carry sementara.

Tautan PDF untuk 'penambahan pada komputer kuantum' , ditulis oleh Thomas G. Draper, ditulis 1 September 1998, direvisi: 15 Juni 2000.

Untuk meringkas tautan di atas, penambahan dilakukan sesuai dengan diagram sirkuit berikut (diambil dari halaman 6):

masukkan deskripsi gambar di sini

Mengutip makalah (sekali lagi, halaman 6):

n

Arshdeep Singh
sumber
1

Perhitungan paralel dari jumlah dua qubit

Saya ingin mengalami perhitungan paralel dari jumlah dua qubit, sebuah superposisi 0 dan "1 dengan fase -1 " ditambahkan ke 1; dan saya terinspirasi oleh jawaban Mithrandir24601. Hasilnya di bawah ini. Saya harap jawaban saya berada dalam konteks apa yang ditanyakan. Ini menunjukkan bagaimana 1 ditambahkan 1, dan ke 0, pada saat yang sama, tetapi sementara kedua jawaban dihitung, kita dapat membacakan jawaban untuk hanya satu dari perhitungan setiap kali perhitungan dijalankan. Anda dapat melihat bahwa dari 1000 proses, 417 kali kami membaca jawaban "1" (1 = 0 +1), dan 380 kali dan kami membacakan jawaban "2" (2 = 1 + 1).

(34 kali kami mendapatkan nol ketika 1 bit dibalik menjadi sia-sia, 54 kali kami mendapat 0 = 0 + 1, 29 kali kami mendapat 1 = 1 + 1, 28 kali kami mendapat 2 = 0 + 1, 42 kali kami mendapat 3 = 0 +1, dan 16 kali kami mendapat 3 = 1 +1, masing-masing kesalahan ini timbul tidak diragukan dari bit flips, phase flips, atau keduanya). masukkan deskripsi gambar di sini

π

Superposisi 0 dan "1 dengan fase -1 " dalam register satu qubit ditambahkan ke 1 dalam register dua-qubit. Dengan tiga qubit, dua qubit pertama dari kiri ke kanan adalah jumlah (atau ke-3 dan ke-4 dari 5) dan qubit paling kanan menunjukkan apakah keadaan dasar (diperlakukan sebagai 0) ditambahkan atau keadaan tereksitasi (1 dengan inisial fase -1) telah ditambahkan.

Brendan M
sumber