Skip to main content
IBM Quantum Platform

FourierChecking

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

GitHub

Basen: QuantumCircuit

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

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.

Veraltet seit Version 2.1

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:

Diagramm zur Veranschaulichung der zuvor beschriebenen Schaltung.

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
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.