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.
algorithm
grovers-algorithm
Sanchayan Dutta
sumber
sumber
Jawaban:
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 ⟩ ↦ 1USebuah Penting 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.
Mendefinisikan kesatuan .G=Ua(I−2|0⟩⟨0|⊗|0⟩⟨0|)U†aI⊗Z
Mulai dari keadaan , menggunakan G banyak seperti Anda akan menggunakan Grover iterator untuk memperkirakan jumlah solusi untuk masalah pencarian.Ua|0⟩|0⟩ G
Tentu saja, saya melewatkan beberapa detail waktu berjalan yang tepat, perkiraan kesalahan dll.
sumber