Skip to main content
IBM Quantum Platform

qiskit.circuit.library.fourier_checking

qiskit.circuit.library.fourier_checking(f, g)

GitHub

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 ff, une autre couche de Hadamards, la fonction gg, suivie d'une dernière couche de Hadamards. Les fonctions ff et gg 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 p(f,g)p(f,g). 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 p(f,g)<=0.01p(f,g) <= 0.01 ou p(f,g)>=0.05p(f,g) >= 0.05, en promettant que l'un ou l'autre est vrai.

Les fonctions ff et gg 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 kk -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')
Schéma de circuit produit par le code précédent.

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

QuantumCircuit

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.