Bisakah kita mempercepat Algoritma Grover dengan menjalankan proses paralel?


10

Dalam komputasi klasik, kita dapat menjalankan pencarian kunci (misalnya AES) dengan menjalankan node komputasi paralel sebanyak mungkin.

Jelas bahwa kita dapat menjalankan banyak algoritma Grover juga.

Pertanyaan saya adalah ; mungkin untuk memiliki kecepatan menggunakan lebih dari satu algoritma Grover seperti pada komputasi klasik?

Jawaban:


6

Pasti! Bayangkan Anda memiliki K=2k salinan dari oracle pencarian US yang dapat Anda gunakan. Biasanya, Anda akan mencari dengan iterasi aksi

Hn(In2|00|n)HnUS,
mulai dari keadaan awal (H|0)n . Ini membutuhkan waktu Θ(N). (Saya menggunakanInuntuk menunjukkanmatriks identitas2n×2n.)

Anda bisa mengganti ini dengan 2k salinan paralel, masing-masing diindeks oleh x{0,1}k , menggunakan

(IkH(nk))Ik(Ink2|00|(nk))(IkH(nk))US
dan mulai dari keadaan|x(H|0)(nk) Waktu yang diperlukan untuk menjalankan ini akan berkurang menjadiO(N/K), dengan biaya membutuhkanKkali lebih banyak ruang.

Dalam pengertian skala, orang mungkin menganggap ini sebagai hasil yang tidak relevan. Jika Anda memiliki jumlah oracle yang tetap, K , maka Anda mendapatkan fix ( KPeningkatan K ) (seperti halnya jika Anda memilikiinti klasikKparalel, peningkatan terbaik yang bisa Anda dapatkan adalah faktorK), dan itu tidak mengubah penskalaan. Tapi itu mengubah waktu berjalan yang mendasar. Kita tahu bahwa algoritma Grover tepat optimal. Dibutuhkan waktu minimum absolut yang mungkin dengan satu oracle. Jadi, mengetahui bahwa Anda mendapatkanKPeningkatan waktu K berguna sehubungan dengan tolok ukur waktu berjalan tertentu pada nilaiN.


x

1
NK

1
K

3

Dalam arti tertentu, jika kami melakukannya secara paralel pada node yang berbeda, Anda akan menghemat waktu untuk berjalan. Tetapi jika kita berbicara tentang kompleksitas (itulah yang kita sebut speedup secara umum), kita perlu sedikit analisis.

NN1,N2N1,N2

N=N1+N2N1+N2

O

Namun, itu akan tetap menarik terutama jika kita harus mengelompokkan perangkat keras karena kita terbatas dalam jumlah qubit atau batasan lainnya.


2
Untuk N1 = N2 itu masih merupakan ketimpangan: sqrt (2) * sqrt (N1) <2 * sqrt (N1)
Mariia Mykhailova

Oh memang. Di kepala saya $ \ sqrt {a b} = \ sqrt {a} \ sqrt {b} $ saya pikir. Saya harus berhenti menjawab jawaban di sini pada tengah malam dan ketika lelah. Terima kasih telah menunjukkannya.
cnada

3
@cnada: Setidaknya ada dua konsep kompleksitas yang berbeda, keduanya relevan untuk mempercepat. Salah satunya adalah kompleksitas ukuran, dan satu adalah kompleksitas kedalaman. Kecuali ditentukan lain, kita sering lebih suka mempertimbangkan kompleksitas ukuran, tetapi kompleksitas kedalaman masih merupakan sesuatu yang sangat menarik dalam kompleksitas komputasi kuantum, misalnya dalam MBQC [arXiv: quant-ph / 0301052 , arXiv: 0704.1736 ] dan hasil terbaru pada pemisahan kedalaman tanpa syarat [arXiv: 1704.00690 ].
Niel de Beaudrap

@NieldeBeaudrap Saya pikir orang lebih melihat kompleksitas kedalaman. Tapi untuk Grover, ukuran dan kompleksitasnya kira-kira sama. Itu kuadratik dalam ukuran masalah (umumnya dilihat sebagai ukuran daftar elemen N). Apakah Anda pikir pendekatan saya di sini tidak benar?
cnada

2
kO(1)Nlog(k)N/kk(N)Ω(1)k/log(k)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.