qiskit.circuit.library.fourier_checking
qiskit.circuit.library.fourier_checking(f, g)
Circuito de comprobación de Fourier.
El circuito para el algoritmo de comprobación de Fourier, introducido en [1], implica una capa de Hadamards, la función , otra capa de Hadamards, la función , seguida de una última capa de Hadamards. Las funciones y son funciones clásicas realizadas como oráculos de fase (operadores diagonales con {-1, 1} en la diagonal).
La probabilidad de observar la cadena de todos los ceros es . El algoritmo resuelve el problema de comprobación de la promesa de Fourier, que decide si f está correlacionada con la transformada de Fourier de g, comprobando si o , prometió que una u otra de ellas es cierta.
Las funciones y se implementan actualmente a partir de sus tablas de verdad, pero podrían representarse de forma concisa e implementarse eficientemente para clases especiales de funciones.
La comprobación de Fourier es un caso especial de -fold para la relación [2].
Circuito de referencia:
from qiskit.circuit.library import fourier_checking
circuit = fourier_checking([1, -1, -1, -1], [1, 1, -1, -1])
circuit.draw('mpl')
Referencias:
[1] S. Aaronson, BQP and the Polynomial Hierarchy, 2009 (Sección 3.2 ). arXiv:0910.4698
[2] S. Aaronson, A. Ambainis, Forrelation: a problem that optimally separates quantum from classical computing, 2014. arXiv:1411.5729
Parámetros
Tipo de retorno