Bagaimana algoritma Grover digunakan untuk memperkirakan rata-rata dan median dari serangkaian angka?

10

Pada halaman Wikipedia untuk algoritma Grover , disebutkan bahwa:

"Algoritma Grover juga dapat digunakan untuk memperkirakan rata-rata dan median dari sekumpulan angka"

Sejauh ini saya hanya tahu bagaimana bisa digunakan untuk mencari basis data. Tetapi tidak yakin bagaimana menerapkan teknik itu untuk memperkirakan rata-rata dan median dari serangkaian angka. Selain itu, tidak ada kutipan (sejauh yang saya perhatikan) pada halaman itu yang menjelaskan tekniknya.

Sanchayan Dutta
sumber
Entah jika Anda memilih untuk menjawab pertanyaan Anda sendiri, atau untuk siapa lagi memilih mengambil tugas untuk diri mereka sendiri, link ini terlihat seperti tempat yang bagus untuk memulai Bagaimana Algoritma Gunakan Grover untuk menemukan rata-rata (alias Mean, Integral) dari Fungsi Weirdo
agaitaarino
@agaitaarino Terima kasih. Saya akan memeriksanya. Omong-omong, komentar Anda tidak dirender dengan benar sebagai tautan karena Anda meninggalkan ruang kosong setelah tanda kurung buka. :)
Sanchayan Dutta

Jawaban:

9

Gagasan untuk memperkirakan rata-rata kira-kira sebagai berikut:

  • Untuk setiap yang memberikan output dalam real, tentukan F yang diperbesar ulang ( x ) yang memberikan output dalam kisaran 0 hingga 1. Kami bertujuan untuk memperkirakan rata-rata F ( x ) .f(x)F(x)F(x)

  • Tentukan kesatuan yang operasi adalah U a : | 0 | 0 1UaPenting untuk dicatat bahwa kesatuan ini mudah diimplementasikan. Anda mulai dengan transformasi Hadamard pada register pertama, lakukan perhitunganf(x)pada register ancilla, gunakan ini untuk menerapkan rotasi terkontrol register kedua, dan kemudian hitung komputasi register ancilla.

    Ua:|0|012n/2x|x(1F(x)|0+F(x)|1).
    f(x)
  • Mendefinisikan kesatuan .G=Ua(I2|00||00|)UaIZ

  • Mulai dari keadaan , menggunakan G banyak seperti Anda akan menggunakan Grover iterator untuk memperkirakan jumlah solusi untuk masalah pencarian.Ua|0|0G

|ψ=1xF(x)xF(x)|x|1|ψ=1x1F(x)x1F(x)|x|0,
Ua|0|0=(xF(x)|ψ+x1F(x)|ψ)2n/2|ψF(x)|1|ψIZm2nm

UaI2n|00|


z

x|f(x)f(z)|.
Txf(x)TT

Tentu saja, saya melewatkan beberapa detail waktu berjalan yang tepat, perkiraan kesalahan dll.

DaftWullie
sumber
Apakah Anda harus terlebih dahulu menjalankan algoritme Grover beberapa kali logaritmik untuk menghitung nilai min dan maks fungsi sebelum Anda dapat melakukan penyetelan ulang pada langkah 1?
tparker
@parker Itu mungkin tergantung. Seringkali diasumsikan bahwa Anda cukup tahu tentang fungsi F untuk dapat mengikat nilai-nilai yang mungkin.
DaftWullie