FourierChecking
class qiskit.circuit.library.FourierChecking(f, g)
Basi: QuantumCircuit
Circuito di controllo di Fourier.
Il circuito per l'algoritmo di controllo di Fourier, introdotto in [1], prevede uno strato di Hadamard, la funzione , un altro strato di Hadamard, la funzione , seguito da un ultimo strato di Hadamard. Le funzioni e sono funzioni classiche realizzate come oracoli di fase (operatori diagonali con {-1, 1} sulla diagonale).
La probabilità di osservare la stringa all-zeros è . L'algoritmo risolve il problema della verifica della promessa di Fourier, che decide se f è correlata alla trasformata di Fourier di g, verificando se o , promettendo che l'uno o l'altro sia vero.
Le funzioni e 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 -fold per la relazione [2].
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
Creare un circuito di controllo di Fourier.
La classe qiskit.circuit.library.fourier_checking.FourierChecking è deprecata a partire da Qiskit 2.1. Verrà rimosso in Qiskit 3.0. Utilizzare invece qiskit.circuit.library.fourier_checking.
Parametri
- f (Sequence[int]) – tabella di verità per f, lunghezza 2**n elenco di {1,-1}.
- g (Sequence[int]) – tabella di verità per g, lunghezza 2**n elenco di {1,-1}.
Aumenti
CircuitError – se gli input f e g non sono validi.
Circuito di riferimento:

Attributi
name
Tipo: str
Un nome leggibile per il circuito.
Esempio
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit