Pouvons-nous accélérer l'algorithme de Grover en exécutant des processus parallèles?


10

En informatique classique, nous pouvons exécuter la recherche de clé (par exemple AES) en exécutant autant de nœuds de calcul parallèles que possible.

Il est clair que nous pouvons également exécuter de nombreux algorithmes de Grover.

Ma question est ; -il possible d'avoir une accélération en utilisant plus d'un algorithme de Grover comme en informatique classique?

Réponses:


6

Certainement! Imaginez que vous ayez K=2k copies de l'oracle de recherche US que vous pouvez utiliser. Normalement, vous chercheriez par itérer l'action

Hn(In2|00|n)HnUS,
à partir d'un état initial (H|0)n . Cela prend du temps Θ(N). (J'utiliseInpour désigner lamatrice d'identité2n×2n.)

Vous pouvez le remplacer par 2k copies parallèles, indexées chacune par un x{0,1}k , en utilisant

(IkH(nk))Ik(Ink2|00|(nk))(IkH(nk))US
et à partir d'un état|x(H|0)(nk) Le temps nécessaire pourexécutioncellesci serait réduite àO(N/K), au prix d'exigerKfois plus d'espace.

Dans un sens de mise à l'échelle, on pourrait considérer cela comme un résultat non pertinent. Si vous avez un nombre fixe d'oracles, K , alors vous obtenez un fixe ( K ) amélioration (tout comme si vous avezKcœurs classiques parallèles, la meilleure amélioration que vous pouvez obtenir est un facteur deK), et cela ne change pas l'échelle. Mais cela change le temps de fonctionnement fondamental. Nous savons que l'algorithme de Grover est exactement optimal. Cela prend le temps minimum absolu possible avec un seul oracle. Donc, sachant que vous obtenez unK amélioration du temps est utile en ce qui concerne ce pointréférence d'une durée spécifique à une valeur spécifique deN.


mais si vous faites cela, la comparaison avec la performance classique perd une partie de son sens, n'est-ce pas? Après tout, vous pouvez également accélérer la recherche classique en exécutant l'opération qui vérifie si un donné est la cible en parallèle sur toutes les entrées. Cela nécessite clairement des hypothèses supplémentaires sur les ressources disponibles, mais le même type d'hypothèses que celles avancées dans votre argumentx
glS

1
va àinfinimais K nepas. Votre problème s'aggrave mais vos ressources restent peu nombreuses. NK
AHusain

1
Cette réponse est correcte (bien qu'elle ne soit pas optimale, comme DaftWullie le met en garde). C'est la même attitude envers la parallélisation que l'on prend dans la complexité d'un circuit classique. Si vous voulez une accélération en raison de la parallélisation, alors vous regardez la profondeur du circuit (car la coordination de plusieurs processus ne va pas réduire le travail total). Peu importe que soit constant --- soit vous êtes intéressé par l'amélioration de la profondeur de la parallélisation, soit vous ne l'êtes pas. Comme pour le calcul quantique lui-même, le simple fait de lancer plus d'ordinateurs à un problème ne rend pas tout magique comme par magie! K
Niel de Beaudrap

3

Dans un sens, si nous le faisions en parallèle sur différents nœuds, vous gagneriez du temps pour l'exécution. Mais si nous parlons de complexité (c'est ce que nous appelons l'accélération en général), nous avons besoin d'un peu d'analyse.

Vous convenez que nous avons besoin d'environ N opérations pour le cas non parallèle. Disons que nous avons deux nœuds, et nous séparons la liste des N éléments en deux listes de tailleN1,N2. La recherche dans les sous-listes dure environN1,N2 .

Cependant, nous avons cela

N=N1+N2N1+N2

O

Cependant, cela serait toujours intéressant, surtout si nous devons regrouper le matériel car nous sommes limités en nombre de qubits ou autres limitations.


2
Pour N1 = N2, c'est toujours une inégalité: sqrt (2) * sqrt (N1) <2 * sqrt (N1)
Mariia Mykhailova

Oh en effet. Dans ma tête $ \ sqrt {a b} = \ sqrt {a} \ sqrt {b} $ je pensais. Je devrais arrêter de répondre aux réponses ici à minuit et lorsque je suis fatigué. Merci d'avoir fait remarquer cela.
cnada

3
@cnada: Il existe au moins deux notions différentes de complexité, toutes deux pertinentes pour l'accélération. L'un est la complexité de la taille et l'autre la complexité de la profondeur. Sauf indication contraire, nous préférons souvent considérer la complexité de la taille, mais la complexité de la profondeur est toujours quelque chose qui intéresse beaucoup la complexité de calcul quantique, par exemple dans MBQC [arXiv: quant-ph / 0301052 , arXiv: 0704.1736 ] et les résultats récents sur séparations de profondeur inconditionnelles [arXiv: 1704.00690 ].
Niel de Beaudrap

@NieldeBeaudrap Je pensais que les gens regardaient davantage la complexité en profondeur. Mais pour Grover, la complexité de la taille et de la profondeur sont à peu près du même ordre. C'est quadratique dans la taille du problème (généralement considéré comme la taille d'une liste de N éléments). Pensez-vous que mon approche ici n'est pas correcte?
cnada

2
kO(1)Nlog(k)N/kk(N)Ω(1)k/log(k)
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.