qiskit.circuit.library.fourier_checking
qiskit.circuit.library.fourier_checking(f, g)
Circuit de vérification de Fourier.
Le circuit de l'algorithme de vérification de Fourier, présenté au point [1], comprend une couche de Hadamards, la fonction , une autre couche de Hadamards, la fonction , suivie d'une dernière couche de Hadamards. Les fonctions et sont des fonctions classiques réalisées comme des oracles de phase (opérateurs diagonaux avec {-1, 1} sur la diagonale).
La probabilité d'observer la chaîne de tous les zéros est de . L'algorithme résout le problème de vérification de la promesse de Fourier, qui détermine si f est corrélé avec la transformée de Fourier de g, en testant si ou , en promettant que l'un ou l'autre est vrai.
Les fonctions et sont actuellement mises en œuvre à partir de leurs tables de vérité, mais elles pourraient être représentées de manière concise et mises en œuvre efficacement pour des classes spéciales de fonctions.
La vérification de Fourier est un cas particulier de -fold pour la relation [2.]
Circuit de référence :
from qiskit.circuit.library import fourier_checking
circuit = fourier_checking([1, -1, -1, -1], [1, 1, -1, -1])
circuit.draw('mpl')
Références :
[1] S. Aaronson, BQP and the Polynomial Hierarchy, 2009 (Section 3.2 ). arXiv:0910.4698
[2] S. Aaronson, A. Ambainis, Forrelation : a problem that optimally separates quantum from classical computing, 2014. arXiv:1411.5729
Paramètres
Type de retour