Skip to main content
IBM Quantum Platform

SynthesizeRZRotations

class qiskit.transpiler.passes.SynthesizeRZRotations(*args, **kwargs)

GitHub

Grundlagen: TransformationPass

Ersetze RZ-Gatter durch Clifford-T-Zerlegungen.

Dieser Pass ersetzt alle RZ-Rotationsgatter für einzelne Qubits mit Gleitkommawinkeln durch äquivalente Clifford+T-Sequenzen.

Intern synthetisiert die Stufe RZ(theta) für ein allgemeines theta, indem sie den Winkel modulo pi/2: reduziert; die Schaltung für RZ(theta) lässt sich aus einer Schaltung für RZ(theta mod pi/2 ) konstruieren, indem man entsprechende Clifford-Gatter anfügt. Wichtig ist, dass der Durchlauf die Syntheseresultate zwischenspeichert und sie für Winkel wiederverwendet, die innerhalb einer vorgegebenen Toleranz zueinander liegen.

Zum Beispiel:

from qiskit.circuit import QuantumCircuit
from qiskit.transpiler.passes import SynthesizeRZRotations
from qiskit.quantum_info import Operator
from numpy import pi

# The following quantum circuit consists of 5 Clifford gates
# and three single-qubit RZ rotations gates

qc = QuantumCircuit(4)
qc.cx(0, 1)
qc.rz(9*pi/4, 0)
qc.cz(0, 1)
qc.rz(3*pi/8, 1)
qc.h(1)
qc.s(2)
qc.rz(13*pi/2, 2)
qc.cz(2, 0)
qc.rz(5*pi/3, 3)

qct = SynthesizeRZRotations()(qc)

# The transformed circuit consists of Clifford, T and Tdg gates
clifford_t_names = get_clifford_gate_names() + ["t"] + ["tdg"]
assert(set(qct.count_ops().keys()).issubset(set(clifford_t_names)))

# The circuits before and after the transformation are equivalent
# (with the default value of approximation_degree used by SynthesizeRZRotations)
assert Operator(qc) == Operator(qct)

Wenn sowohl synthesis_error als auch cache_error angegeben werden, legen sie das Fehlerbudget für die approximative Synthese bzw. für das Caching fest. Wenn einer der beiden Werte nicht angegeben wird, wird der zulässige Gesamtfehler aus approximation_degreeabgeleitet, und geeignete Werte für synthesis_error und cache_error werden automatisch berechnet.

Parameter

  • approximation_degree – Steuert den allgemeinen Grad der Annäherung. Standardmäßig ist 1 - 1e-10.
  • (0, 1]synthesis_error – Maximal zulässiger Fehler für die approximative Synthese von RZ(θ)RZ(\theta). Falls angegeben, muss der Wert im Bereich liegen.
  • cache_error – Maximal zulässiger Fehler bei der Wiederverwendung eines zwischengespeicherten Syntheseergebnisses für Winkel nahe θ\theta. Falls angegeben, muss der Wert im Bereich [0, 1]. liegen.

Attribute

is_analysis_pass

Prüfen Sie, ob es sich um einen Analyse-Durchlauf handelt.

Wenn es sich bei dem Pass um einen „ AnalysisPass, “ handelt, bedeutet dies, dass der Pass den DAG analysieren und die Ergebnisse dieser Analyse in den Eigenschaftssatz schreiben kann. Änderungen am DAG sind bei dieser Art von Durchlauf nicht zulässig.

is_transformation_pass

Prüfe, ob es sich bei dem Pass um einen Transformationspass handelt.

Wenn es sich bei dem Pass um einen „ TransformationPass, “ handelt, bedeutet dies, dass der Pass den DAG bearbeiten kann, jedoch die Eigenschaften nicht ändern darf (sie können jedoch gelesen werden).


Methoden

execute

execute(passmanager_ir, state, callback=None)

GitHub

Optimierungsaufgabe für die Qiskit-IR-Eingabe ausführen.

Parameter

  • passmanager_ir (DAGCircuit) – Qiskit IR zur Optimierung.
  • state (DAGCircuit) – Zustand, der mit der Ausführung des Workflows durch den Pass-Manager selbst verbunden ist.
  • callback (Callable[[Task, DAGCircuit, PropertySet, float, int], None] | None) – Eine Callback-Funktion, die bei jeder Ausführung einer Optimierungsaufgabe aufgerufen wird.

Rückgabe

Optimiertes Qiskit-IR und Status des Workflows.

Rückgabetyp

Tupel [ DAGCircuit, PassManagerState ]

name

name()

GitHub

Name des Passes.

Rückgabetyp

str

run

run(dag)

GitHub

Führen Sie den Befehl „ SynthesizeRZRotations “ auf „dag“ aus.

Parameter

dag (DAGCircuit)

Rückgabetyp

DAGCircuit

update_status

update_status(state, run_state)

GitHub

Status des Workflows aktualisieren.

Parameter

  • state (PassManagerState) – Den Status des Pass-Managers zur Aktualisierung übergeben.
  • run_state (RunState) – Fertigstellungsstatus der aktuellen Aufgabe.

Rückgabe

Status des Pass-Managers aktualisiert.

Rückgabetyp

PassManagerState

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