Algorithme de Bernstein-Vazirani

L'algorithme de Bernstein–Vazirani, qui résout le problème de Bernstein–Vazirani est un algorithme quantique inventé par Ethan Bernstein et Umesh Vazirani en 1992[1].
C'est une version restreinte de l'algorithme de Deutsch-Jozsa dans laquelle, au lieu de distinguer deux classes de fonctions, on essaie de retrouver une chaîne secrète encodée dans une fonction[2]. Il a été conçu pour prouver la distinction entre les classes de complexité BQP et BPP[1].
Enoncé du problème
Soit un oracle qui implémente une fonction dans laquelle est un produit scalaire entre et une chaîne secrète modulo 2, . Quelle est la valeur de ?
Algorithme
En informatique "classique", la méthode la plus efficace pour retrouver la chaîne secrète consiste à évaluer la fonction fois avec comme valeurs d'entrée pour tout [2] :
Avec un calculateur quantique, une seule requête sera suffisante[2] :
Appliquer une transformée de Hadamard aux qubits pour obtenir :
Ensuite, appliquer l'oracle qui transforme . Cela peut être simulé au moyen de l'oracle standard qui transforme en appliquant l'oracle à ( représente une addition modulo 2).
Cela transforme la superposition en :
Une nouvelle transformée de Hadamard est appliquée à chaque qubit, de telle sorte que :
- pour les qubits où , l'état est converti de à
- pour les qubits où , l'état est converti de à
Pour obtenir , une mesure selon la base standard () est effectuée sur les qubits.
L'algorithme peut donc être représenté ainsi, où représente la transformée de Hadamard sur qubits :
La raison pour laquelle l'état final est est que, pour un donné :
Puisque est vrai seulement quand , cela signifie que la seule amplitude non nulle correspond à .
Références
Modèle:TradRef Modèle:Références
- ↑ 1,0 et 1,1 Modèle:Article
- ↑ 2,0 2,1 et 2,2 Modèle:Article