Skip to main content
IBM Quantum Platform

qiskit.circuit.library.fourier_checking

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

GitHub

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 ff, otra capa de Hadamards, la función gg, seguida de una última capa de Hadamards. Las funciones ff y gg 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 p(f,g)p(f,g). 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 p(f,g)<=0.01p(f,g) <= 0.01 o p(f,g)>=0.05p(f,g) >= 0.05, prometió que una u otra de ellas es cierta.

Las funciones ff y gg 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 kk -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')
Diagrama del circuito generado por el código anterior.

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

QuantumCircuit

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.