Dalam "Quantum Computation and Quantum Information" Mike dan Ike, algoritma Grover dijelaskan dengan sangat terperinci. Namun, dalam buku ini, dan dalam semua penjelasan yang saya temukan online untuk algoritma Grover, tampaknya tidak disebutkan tentang bagaimana Oracle dibangun, kecuali kita sudah tahu negara bagian mana yang sedang kita cari, mengalahkan tujuan dari Grover. algoritma. Secara khusus, pertanyaan saya adalah ini: diberikan beberapa f (x) sedemikian rupa sehingga untuk beberapa nilai x, f (x) = 1, tetapi untuk semua yang lain, f (x) = 0, bagaimana seseorang membangun oracle yang akan membawa kita dari awal, keadaan arbitrer | x> | y> ke | x> | y + f (x)> kami? Detail eksplisit sebanyak mungkin (mungkin contoh?) Akan sangat dihargai. Jika konstruksi untuk fungsi sewenang-wenang semacam itu dimungkinkan dengan Hadamard, Pauli, atau gerbang kuantum standar lainnya,
16
Jawaban:
Peramalan ini pada dasarnya hanyalah implementasi dari predikat yang Anda inginkan untuk mencari solusi yang memuaskan.
Misalnya, misalkan Anda memiliki masalah 3-sat:
Atau, dalam bentuk tabel dengan setiap baris menjadi 3-klausa, x berarti "variabel ini salah", o berarti "variabel ini benar", dan ruang yang berarti "tidak dalam klausa":
Sekarang buat sirkuit yang menghitung apakah input adalah solusi, seperti ini:
Sekarang, untuk mengubah sirkuit Anda menjadi oracle, tekan bit output dengan gerbang Z dan hitung sampah yang Anda buat (mis. Jalankan sirkuit komputasi dalam urutan terbalik):
Hanya itu yang ada untuk itu. Hitung predikatnya, tekan hasilnya dengan Z, hitung predikatnya. Itu oracle.
Ulangi langkah-langkah difusi dengan langkah-langkah oracle, dan Anda sendiri sudah mencari :
... walaupun Anda mungkin harus memilih contoh dengan lebih sedikit solusi, jadi progresnya bertahap (alih-alih berputar di sepanjang bidang start-state-solution-state lebih dari 90 derajat per langkah seperti contoh saya).
sumber