Skip to main content
IBM Quantum Platform

qiskit.circuit.library.fourier_checking

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

GitHub

Fourier-Kontrollschaltung.

Die in [1] vorgestellte Schaltung für den Fourier-Prüfalgorithmus umfasst eine Hadamard-Schicht, die Funktion ff, eine weitere Hadamard-Schicht, die Funktion gg, gefolgt von einer letzten Hadamard-Schicht. Die Funktionen ff und gg 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 p(f,g)p(f,g). 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 p(f,g)<=0.01p(f,g) <= 0.01 oder p(f,g)>=0.05p(f,g) >= 0.05 wahr ist, und verspricht, dass das eine oder das andere wahr ist.

Die Funktionen ff und gg 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 kk -fold forrelation [2].

Referenzkreislauf:

from qiskit.circuit.library import fourier_checking
circuit = fourier_checking([1, -1, -1, -1], [1, 1, -1, -1])
circuit.draw('mpl')
Schaltplan, der durch den vorherigen Code ausgegeben wurde.

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

Parameter

Rückgabetyp

QuantumCircuit

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.