Sur la page Wikipedia de l'algorithme de Grover , il est mentionné que:
"L'algorithme de Grover peut également être utilisé pour estimer la moyenne et la médiane d'un ensemble de nombres"
Jusqu'à présent, je savais seulement comment il pouvait être utilisé pour rechercher une base de données. Mais je ne sais pas comment mettre en œuvre cette technique pour estimer la moyenne et la médiane d'un ensemble de nombres. De plus, il n'y a aucune citation (pour autant que je l'ai remarqué) sur cette page qui explique la technique.
algorithm
grovers-algorithm
Sanchayan Dutta
la source
la source
Réponses:
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
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
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.Ua I2n⊗|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
Bien sûr, je saute quelques détails sur les durées de fonctionnement précises, les estimations d'erreur, etc.
la source