Skip to main content
IBM Quantum Platform

qiskit.circuit.library.fourier_checking

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

GitHub

Circuito di controllo di Fourier.

Il circuito per l'algoritmo di controllo di Fourier, introdotto in [1], prevede uno strato di Hadamard, la funzione ff, un altro strato di Hadamard, la funzione gg, seguito da un ultimo strato di Hadamard. Le funzioni ff e gg sono funzioni classiche realizzate come oracoli di fase (operatori diagonali con {-1, 1} sulla diagonale).

La probabilità di osservare la stringa all-zeros è p(f,g)p(f,g). L'algoritmo risolve il problema della verifica della promessa di Fourier, che decide se f è correlata alla trasformata di Fourier di g, verificando se p(f,g)<=0.01p(f,g) <= 0.01 o p(f,g)>=0.05p(f,g) >= 0.05, promettendo che l'uno o l'altro sia vero.

Le funzioni ff e gg sono attualmente implementate a partire dalle loro tabelle di verità, ma potrebbero essere rappresentate in modo conciso e implementate in modo efficiente per classi speciali di funzioni.

Il controllo di Fourier è un caso speciale di kk -fold per la relazione [2].

Circuito di riferimento:

from qiskit.circuit.library import fourier_checking
circuit = fourier_checking([1, -1, -1, -1], [1, 1, -1, -1])
circuit.draw('mpl')
Schema del circuito prodotto dal codice precedente.

Riferimenti:

[1] S. Aaronson, BQP and the Polynomial Hierarchy, 2009 (Sezione 3.2 ). arXiv:0910.4698

[2] S. Aaronson, A. Ambainis, Forrelation: a problem that optimally separates quantum from classical computing, 2014. arXiv:1411.5729

Parametri

Tipo di restituzione

QuantumCircuit

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.