Algorithme de Deutsch-Jozsa

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

L'Algorithme de Deutsch-Jozsa est un algorithme quantique, proposé par David Deutsch et Richard Jozsa (en) en 1992 avec des améliorations de R. Cleve, A. Ekert, C. Macchiavello, et M. Mosca en 1998[1],[2]. Bien qu'il ne soit pas d'un grand intérêt pratique, il s'agit d'un des premiers algorithmes quantiques qui est plus efficace qu'un algorithme classique.

Le problème et les solutions classiques[modifier | modifier le code]

Dans le cas du problème de Deutsch-Jozsa, nous disposons d'une boîte noire quantique, connu sous le nom d'oracle qui implémente une fonction mathématique f:\{0,1\}^n\rightarrow \{0,1\}. Nous savons que cette fonction est soit constante (0 ou 1 sur toutes les entrées) soit équilibrée (0 dans la moitié des cas, 1 dans les autres). Le but du problème est de savoir si la fonction est constante ou équilibrée à l'aide de l'oracle.

La solution déterministe[modifier | modifier le code]

Si un algorithme classique et déterministe est utilisé, il faut 2^{n-1} + 1 évaluations de la fonction mathématique f dans le pire des cas pour trouver la solution.

La solution probabiliste[modifier | modifier le code]

Dans le cas de l'utilisation d'un algorithme probabiliste, un nombre constant d'évaluation est suffisant pour trouver la bonne réponse avec une forte probabilité, néanmoins 2^{n-1} + 1 évaluation sont toujours nécessaire pour que la réponse soit correcte avec probabilité 1. L'algorithme quantique de Deutsch-Jozsa permet de trouver une réponse toujours correcte avec une seule évaluation de f.

L'algorithme de Deutsch-Jozsa[modifier | modifier le code]

Algorithme de Deutsch pour un cas particulier[modifier | modifier le code]

Le but est de tester la condition f(0)=f(1) ; Cela est équivalent à vérifier f(0)\oplus f(1). Si cela vaut zéro alors f est constante, sinon f est équilibrée.

L'algorithme commence avec deux qubit dans l'état |0\rangle |1\rangle. Une transformation d'Hadamard est d'abord appliquée à chaque qubit. Cela donne

\frac{1}{2}(|0\rangle + |1\rangle)(|0\rangle - |1\rangle).

Une implémentation quantique (oracle) de la fonction f permet de passer de |x\rangle |y\rangle à |x\rangle |f(x)\oplus y\rangle. En appliquant cette fonction à notre état, nous obtenons

\frac{1}{2}(|0\rangle(|f(0)\oplus 0\rangle - |f(0)\oplus 1\rangle) + |1\rangle(|f(1)\oplus 0\rangle - |f(1)\oplus 1\rangle))
=\frac{1}{2}((-1)^{f(0)}|0\rangle(|0\rangle - |1\rangle) + (-1)^{f(1)}|1\rangle(|0\rangle - |1\rangle))
=(-1)^{f(0)}\frac{1}{2}(|0\rangle + (-1)^{f(0)\oplus f(1)}|1\rangle)(|0\rangle - |1\rangle).

Nous ignorons le dernier bit et la phase globale, nous avons alors l'état

\frac{1}{\sqrt{2}}(|0\rangle + (-1)^{f(0)\oplus f(1)}|1\rangle).

En appliquant une transformation d'hadamard à cet état, nous obtenons

\frac{1}{2}(|0\rangle + |1\rangle + (-1)^{f(0)\oplus f(1)}|0\rangle - (-1)^{f(0)\oplus f(1)}|1\rangle)
=\frac{1}{2}((1 +(-1)^{f(0)\oplus f(1)})|0\rangle + (1-(-1)^{f(0)\oplus f(1)})|1\rangle).

f(0)\oplus f(1)=0 si et seulement si nous observons un zéro. Donc, la fonction est constante si et seulement si nous mesurons un zéro.

L'algorithme de Deutsch-Jozsa[modifier | modifier le code]

Le circut quantique de l'algorithme de Deutsch-Jozsa

Nous commençons avec l'état à n+1 qubit |0\rangle^{\otimes n} |1\rangle . Les premiers  n qubits sont tous dans l'état |0\rangle et le dernier qubit dans l'état |1\rangle . Nous appliquons ensuite la transformation d'Hadamard à chaque qubit, pour obtenir

\frac{1}{\sqrt{2^{n+1}}}\sum_{x=0}^{2^n-1} |x\rangle (|0\rangle - |1\rangle ).

Nous avons la fonction f implementée sous forme d'oracle quantique. L'oracle transforme l'état  |x\rangle|y\rangle en  |x\rangle|y\oplus f(x) \rangle . L'application de l'oracle quantique donne donc

\frac{1}{\sqrt{2^{n+1}}}\sum_{x=0}^{2^n-1} |x\rangle (|f(x)\rangle - |1\oplus f(x)\rangle ).

Pour chaque x, f(x) vaut 0 ou 1. Une rapide vérification de ce deux possibilitées nous laisse

\frac{1}{\sqrt{2^{n+1}}}\sum_{x=0}^{2^n-1} (-1)^{f(x)} |x\rangle (|0\rangle - |1\rangle ).

À ce point, le dernier qubit peut être ignoré. Nous appliquons alors à nouveau une transformation d'Hadamard à chacun des qubits restants afin d'obtenir

\frac{1}{2^n}\sum_{x=0}^{2^n-1} (-1)^{f(x)} \sum_{y=0}^{2^n-1}(-1)^{x\cdot y} |y\rangle=
\frac{1}{2^n}\sum_{y=0}^{2^n-1} \left[\sum_{x=0}^{2^n-1}(-1)^{f(x)} (-1)^{x\cdot y}\right] |y\rangle

x\cdot y=x_0 y_0\oplus x_1 y_1\oplus\cdots\oplus x_{n-1} y_{n-1} est la somme du produit bit-à-bit.

Finalement nous examinons la probabilité de mesurer |0\rangle^{\otimes n},

\bigg|\frac{1}{2^n}\sum_{x=0}^{2^n-1}(-1)^{f(x)}\bigg|^2

qui vaut 1 si f(x) est constant (interférence constructive) et 0 si f(x) est équilibrée (interférence destructive).

Histoire[modifier | modifier le code]

L'algorithme est basé sur des travaux de David Deutsch, datant de 1985, concernant le cas n=1. La question était de savoir si une fonction booléenne, f :  \{0,1\} \rightarrow \{0,1\}, était constante[3].

En 1992, l'idée a été généralisée pour pouvoir être appliquée sur un nombre n bits en entrée et savoir si la fonction était constante ou équilibrée[1].

L'algorithme de Deutsch n'était pas, à l'origine, déterministe. L'algorithme retournait une réponse juste avec une probabilité de 50 %. L'algorithme original de Deutsch-Jozsa était déterministe, mais, à la différence de l'algorithme de Deutsch, il nécessitait deux évaluations de la fonction.

Plusieurs améliorations ont été apportées à l'algorithme de Deutsch-Jozsa par Cleve et al qui ont résulté en un algorithme qui est déterministe et ne nécessite qu'une seule évaluation de la fonction f. Cet algorithme est appelé l'algorithme de Deutsch-Josza en l'honneur de l'importance des techniques qui ont été utilisées[2].

L'algorithme de Deutsch-Jozsa a servi d'inspiration pour les algorithme de Shor[4] et de Grover[5], deux des algorithmes quantiques les plus importants.

Références[modifier | modifier le code]

  1. a et b (en) David Deutsch et Richard Jozsa, « Rapid solutions of problems by quantum computation », Proceedings of the Royal Society of London A, vol. 439,‎ 1992, p. 553
  2. a et b (en) R. Cleve, A. Ekert, C. Macchiavello, et M. Mosca, « Quantum algorithms revisited », Proceedings of the Royal Society of London A, vol. 454,‎ 1998, p. 339-354 (lire en ligne [PDF])
  3. (en) David Deutsch, « The Church-Turing principle and the universal quantum computer », Proceedings of the Royal Society of London A, vol. 400,‎ 1985, p. 97 (lire en ligne [PDF])
  4. (en) Peter W. Shor, « Algorithms for Quantum Computation: Discrete Logarithms and Factoring », IEEE Symposium on Foundations of Computer Science,‎ 1994, p. 124-134 (lire en ligne [PDF])
  5. (en) Lov K. Grover, « A fast quantum mechanical algorithm for database search », Proceedings of the Twenty-Eighth Annual ACM Symposium on Theory of Computing,‎ 1996, p. 212-219 (lire en ligne [PDF])