FourierChecking
class qiskit.circuit.library.FourierChecking(f, g)
Bases: QuantumCircuit
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].
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
Crear circuito de comprobación de Fourier.
La clase qiskit.circuit.library.fourier_checking.FourierChecking está obsoleta a partir de Qiskit 2.1. Se eliminará en Qiskit 3.0. Utilice qiskit.circuit.library.fourier_checking en su lugar.
Parámetros
- f (Sequence[int]) – tabla de verdad para f, longitud 2**n lista de {1,-1}.
- g (Sequence[int]) – tabla de verdad para g, longitud 2**n lista de {1,-1}.
Eleva
CircuitError - si las entradas f y g no son válidas.
Circuito de referencia:

Atributos
name
Tipo: str
Un nombre legible para el circuito.
Ejemplo
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit