Skip to main content
IBM Quantum Platform

FourierChecking

class qiskit.circuit.library.FourierChecking(f, g)

GitHub

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 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].

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.

Obsoleto desde la versión 2.1

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:

Diagrama que ilustra el circuito descrito anteriormente.

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
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.