Bagaimana mencegah loop di masa depan menggunakan qubit kontrol?

8

Saya mencoba membangun pengganda kuantum menggunakan metode yang dijelaskan di sini: https://arxiv.org/abs/quant-ph/0403048 . Namun, tampaknya qubit kontrol hanya akan menonaktifkan gerbang berikut untuk satu iterasi. Setelah itu, akan tetap berada di fundamental, jadi akan membalik lagi dan memungkinkan iterasi gerbang berikutnya. Bagaimana cara mencegah semua iterasi di masa mendatang (pada dasarnya keluar dari loop) menggunakan qubit kontrol?|yD

nikojpapa
sumber

Jawaban:

8

Anda benar, ada bug dalam algoritma yang dijelaskan oleh kertas. D harus dikurangi tanpa syarat di setiap iterasi, dan kontrol (yang saya lebih suka sebut akumulator ... kecuali sepertinya itu sebenarnya dimaksudkan untuk mengendalikannya?) Harus diaktifkan jika D = 0. Penulis telah membuat kesalahan dengan mengkondisikan pengurangan pada akumulator, yang akan mencegah menjadi dalam iterasi yang relevan dan menghasilkan akumulator yang kembali berganti pada iterasi berikutnya.D=0D=2N-1

gambar dari kertas

Bagaimanapun, ini adalah pengganda yang sangat tidak efisien. Biayanya bukan Anda dapatkan dari penggandaan buku sekolah yang naif. Lakukan saja ini sebagai gantinya:HAI(N2N)HAI(N2)

for index, qubit in enumerate(input1):
  if qubit:
    output += input2 << index

perkalian

Craig Gidney
sumber