L'idée d'estimer la moyenne est à peu près la suivante:
Pour tout qui donne des sorties dans les réels, définissez un redimensionné qui donne des sorties dans la plage de 0 à 1. Nous visons à estimer la moyenne de .f(x)F(x)F(x)
Définissez un unitaire dont l'opération estIl est important de noter que cet unitaire est facilement implémenté. Vous commencez avec une transformation de Hadamard sur le premier registre, effectuez un calcul de sur un registre ancilla, utilisez-le pour implémenter une rotation contrôlée du deuxième registre, puis calculez le registre ancilla.Ua
Ua:|0⟩|0⟩↦12n/2∑x|x⟩(1−F(x)−−−−−−−√|0⟩+F(x)−−−−√|1⟩).
f(x)
Définir le unitaire .G=Ua(I−2|0⟩⟨0|⊗|0⟩⟨0|)U†aI⊗Z
En partant d'un état , utilisez peu comme vous utiliseriez l'itérateur Grover pour estimer le nombre de solutions à un problème de recherche.Ua|0⟩|0⟩G
La majeure partie de cet algorithme est l'amplification d'amplitude, comme décrit ici . L'idée principale est que vous pouvez définir deux états
et cela définit un sous-espace pour l'évolution. L'état initial est . L'amplitude du terme contient clairement les informations sur la moyenne de , si nous pouvions simplement l'estimer. Vous pouvez simplement préparer cet état à plusieurs reprises et mesurer la probabilité d'obtenir un
|ψ⟩=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⟩sur le deuxième registre, mais la recherche de Grover vous donne une amélioration quadratique. Si vous comparez à la façon dont Grover est généralement configuré, l'amplitude de ce que vous pouvez «marquer» (dans ce cas en appliquant ) serait où est le nombre de solutions.
|ψ⟩I⊗Zm2n−−√m
Soit dit en passant, cela est intéressant à comparer à la «puissance d'un qubit propre», également connue sous le nom de DQC1. Là, si vous appliquez à, la probabilité d'obtenir la réponse 1 est identique à celle de la version non accélérée et vous donne une estimation de la moyenne.UaI2n⊗|0⟩⟨0|
Pour la médiane, elle peut apparemment être définie comme la valeur qui minimise
Il y a deux étapes ici. La première consiste à réaliser que la fonction que nous essayons de minimiser n'est fondamentalement qu'un moyen. Ensuite, la deuxième étape consiste à utiliser un algorithme de minimisation qui peut également être accéléré par une recherche Grover. L'idée ici est d'utiliser la recherche d'un Grover et marquer tous les éléments pour lesquels l'évaluation de la fonction donne une valeur inférieure à un seuil . Vous pouvez estimer le nombre d'entrées qui donnent , puis répéter pour un différent jusqu'à ce que vous localisiez suffisamment la valeur minimale.∑ x | f ( x ) - f ( z ) | . T x f ( x ) ≤ T Tz
∑x|f(x)−f(z)|.
Txf(x)≤TT
Bien sûr, je saute quelques détails sur les durées de fonctionnement précises, les estimations d'erreur, etc.