Ідея оцінки середнього значення приблизно така:
Для будь-якого який дає виходи в реалах, визначте масштабований F ( x ), який дає виходи в діапазоні від 0 до 1. Ми прагнемо оцінити середнє значення F ( x ) .f(x)F(x)F(x)
Визначимо унітарний , чия операція U : | 0 ⟩ | 0 ⟩ ↦ 1UaВажливо зазначити, що цей унітар легко реалізується. Ви починаєте з перетворення Хадамара на першому регістрі, виконуєте обчисленняf(x)на регістрі ацилла, використовуєте це для здійснення керованого обертання другого регістра, а потім не обчислюєте регістр ancilla.
Ua:|0⟩|0⟩↦12n/2∑x|x⟩(1−F(x)−−−−−−−√|0⟩+F(x)−−−−√|1⟩).
f(x)
Визначимо унітарний .G=Ua(I−2|0⟩⟨0|⊗|0⟩⟨0|)U†aI⊗Z
Починаючи зі стану , використовуйте G так само, як ви б використовувати Гровер итератор для оцінки числа рішень задачі пошуку.Ua|0⟩|0⟩G
|ψ⟩=1∑xF(x)−−−−−−−√∑xF(x)−−−−√|x⟩|1⟩|ψ⊥⟩=1∑x1−F(x)−−−−−−−−−−√∑x1−F(x)−−−−−−−√|x⟩|0⟩,
Ua|0⟩|0⟩=(∑xF(x)−−−−−−−√|ψ⟩+∑x1−F(x)−−−−−−−−−−√|ψ⊥⟩)2−n/2|ψ⟩F(x)|1⟩|ψ⟩I⊗Zm2n−−√m
UaI2n⊗|0⟩⟨0|
z
∑x|f(x)−f(z)|.
Txf(x)≤TT
Звичайно, я пропускаю деякі деталі точного часу роботи, оцінки помилок тощо.