Comment l'algorithme de Grover est-il utilisé pour estimer la moyenne et la médiane d'un ensemble de nombres?


10

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.


Soit si vous choisissez de répondre à votre propre question, soit pour quiconque choisit de prendre la tâche en main, ce lien semble être un excellent endroit pour commencer Comment utiliser l'algorithme de Grover pour trouver la moyenne (aka moyenne, intégrale) d'une fonction Weirdo
agaitaarino

@agaitaarino Merci. Je vais le regarder. Soit dit en passant, votre commentaire ne s'affiche pas correctement sous forme de lien, car vous avez laissé un espace vide après la parenthèse d'ouverture. :)
Sanchayan Dutta

Réponses:


9

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|012n/2x|x(1F(x)|0+F(x)|1).
    f(x)
  • Définir le unitaire .G=Ua(I2|00||00|)UaIZ

  • 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|0G

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

|ψ=1xF(x)xF(x)|x|1|ψ=1x1F(x)x1F(x)|x|0,
Ua|0|0=(xF(x)|ψ+x1F(x)|ψ)2n/2|ψF(x)|1sur 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.|ψIZm2nm

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|00|


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.


Devez-vous d'abord exécuter l'algorithme de Grover un nombre logarithmique de fois pour calculer les valeurs min et max de la fonction avant de pouvoir effectuer le redimensionnement à l'étape 1?
tparker

@tparker Cela dépend probablement. Souvent, on suppose que vous en savez suffisamment sur la fonction F pour pouvoir lier ses valeurs possibles.
DaftWullie
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.