FourierChecking
class qiskit.circuit.library.FourierChecking(f, g)
Basen: QuantumCircuit
Fourier-Kontrollschaltung.
Die in [1] vorgestellte Schaltung für den Fourier-Prüfalgorithmus umfasst eine Hadamard-Schicht, die Funktion , eine weitere Hadamard-Schicht, die Funktion , gefolgt von einer letzten Hadamard-Schicht. Die Funktionen und sind klassische Funktionen, die als Phasenorakel realisiert sind (Diagonaloperatoren mit {-1, 1} auf der Diagonalen).
Die Wahrscheinlichkeit für die Beobachtung der All-Zero-Kette ist . Der Algorithmus löst das Versprechungs-Fourier-Prüfungsproblem, das entscheidet, ob f mit der Fourier-Transformation von g korreliert ist, indem er prüft, ob oder wahr ist, und verspricht, dass das eine oder das andere wahr ist.
Die Funktionen und werden derzeit anhand ihrer Wahrheitstabellen implementiert, könnten aber für spezielle Klassen von Funktionen prägnant dargestellt und effizient implementiert werden.
Die Fourier-Prüfung ist ein Spezialfall von -fold forrelation [2].
Quellenangaben:
[1] S. Aaronson, BQP and the Polynomial Hierarchy, 2009 (Abschnitt 3.2 ). arXiv:0910.4698
[2] S. Aaronson, A. Ambainis, Forrelation: ein Problem, das Quanten- und klassisches Rechnen optimal trennt, 2014. arXiv:1411.5729
Erstellen Sie eine Fourier-Prüfschaltung.
Die Klasse qiskit.circuit.library.fourier_checking.FourierChecking ist ab Qiskit 2.1 veraltet. Sie wird in Qiskit 3.0 entfernt. Verwenden Sie stattdessen qiskit.circuit.library.fourier_checking.
Parameter
- f (Sequence[int]) – wahrheitstabelle für f, Länge 2**n Liste von {1,-1}.
- g (Sequence[int]) – wahrheitstabelle für g, Länge 2**n Liste von {1,-1}.
Erhöht
CircuitError – wenn die Eingaben f und g ungültig sind.
Referenzkreislauf:

Attribute
name
Typ: str
Ein von Menschen lesbarer Name für den Stromkreis.
Beispiel
from qiskit import QuantumCircuit
qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)my_circuit