Skip to main content
IBM Quantum Platform

CommutationChecker

class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)

GitHub

Basen: object

Prüfen Sie die Kommutationen zweier Operationen.

Zwei Unitarien AA und BB auf nn Qubits pendeln, wenn

2nFprocess(AB,BA)+12n+1>1−ε,\frac{2^n F_{\text{process}}(AB, BA) + 1}{2^n + 1} > 1 - \varepsilon,

wo

Fprocess(U1,U2)=∣Tr(U1U2†)2n∣2,F_{\text{process}}(U_1, U_2) = \left|\frac{\mathrm{Tr}(U_1 U_2^\dagger)}{2^n} \right|^2,

und wir setzen ε\varepsilon auf 10−1210^{-12}, um Rundungsfehler bei Systemen mit wenigen Qubits zu berücksichtigen. Diese Metrik wurde aus Gründen der Kohärenz mit anderen Ähnlichkeitsprüfungen in Qiskit gewählt.

Wenn möglich, werden die Kommutationsbeziehungen aus einer Nachschlagetabelle abgerufen. Dies gilt für Standardgatter ohne Parameter (wie beispielsweise XGate oder HGate) oder für Gatter mit freien Parametern (wie beispielsweise RXGate mit einem ParameterExpression als Winkel). Andernfalls wird eine matrixbasierte Prüfung durchgeführt, bei der zwei Operationen als kommutativ gelten, wenn die durchschnittliche Gattertreue bei der Durchführung der Kommutation über einem bestimmten Schwellenwert liegt (siehe approximation_degree).

Seit Version 2.5.0 veraltet

qiskit.circuit.commutation_checker.CommutationChecker.__init__()Das Argument cache_max_entries ist seit Qiskit 2.5.0 veraltet. Es wird in Qiskit 3.0 entfernt.


Methoden

Parameter

  • standard_gate_commutations (dict | None)
  • cache_max_entries (int)
  • gates (set[str] | None)

check_commutation_entries

check_commutation_entries(first_op, first_qargs, second_op, second_qargs)

GitHub

Gibt gespeicherte Kommutationsbeziehung zurück, falls vorhanden

Parameter

  • first_op (Operation) – erste Operation.
  • first_qargs (list) – die Qubits der ersten Operation.
  • second_op (Operation) – zweite Operation.
  • second_qargs (list) – die Qubits der zweiten Operation.

Rückgabe

True, wenn die Gates pendeln und false, wenn dies nicht der Fall ist.

Rückgabetyp

bool

clear_cached_commutations

clear_cached_commutations()

GitHub

Löscht das Wörterbuch mit den zwischengespeicherten Kommutationen

Diese Methode hat keine Auswirkung, da kein interner Cache mehr vorhanden ist

Seit Version 2.5 veraltet

Die Methode qiskit.circuit.commutation_checker.CommutationChecker.clear_cached_commutations() ist ab Qiskit 2.5 veraltet. Es wird in Qiskit 3.0 entfernt.

commute

commute(op1, qargs1, cargs1, op2, qargs2, cargs2, max_num_qubits=None, approximation_degree=1.0, matrix_max_num_qubits=3)

GitHub

Prüft, ob zwei Operationen kommutativ sind. Der Rückgabewert von True bedeutet, dass die Operationen tatsächlich kommutativ sind, und der Rückgabewert von False bedeutet, dass die Operationen entweder nicht kommutativ sind oder dass die Kommutativitätsprüfung übersprungen wurde (z. B. wenn die Operationen Bedingungen enthalten oder zu viele Qubits haben).

Parameter

  • op1 (Operation) – erste Operation.
  • qargs1 (Sequence[Qubit |int]) – die Qubits der ersten Operation.
  • cargs1 (Sequence[Qubit |int]) – clbits der ersten Operation.
  • op2 (Operation) – zweite Operation.
  • qargs2 (Sequence[Qubit |int]) – die Qubits der zweiten Operation.
  • cargs2 (Sequence[Qubit |int]) – clbits der zweiten Operation.
  • max_num_qubits (int | None) – Die maximale Anzahl der zu berücksichtigenden Qubits. Die Überprüfung kann übersprungen werden, wenn die Anzahl der Qubits für eine der beiden Operationen diesen Wert überschreitet. Standardwert ist None, was keine Begrenzung bedeutet. Siehe auch matrix_max_num_qubits zur Begrenzung der Dimension berechneter Matrizen.
  • approximation_degree (float) – Liegt die durchschnittliche Gattertreue zwischen den beiden Operationen über dieser Zahl (bis zu 1e-12), wird davon ausgegangen, dass sie sich annähern.
  • matrix_max_num_qubits (int) – die maximale Anzahl von Qubits, für die die Matrixdarstellung berechnet werden darf. Dies ist erforderlich, wenn keine effiziente Überprüfung zur Verfügung steht, z. B. bei benutzerdefinierten Gatterfunktionen.

Rückgabe

Ob zwei Operationen kommutativ sind.

Rückgabetyp

bool

commute_nodes

commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)

GitHub

Prüft, ob zwei DAGOpNode Objekte kommutieren.

Dies entspricht, commute() wobei jedoch die Operation, die Qubits und die Clbits im DAGOpNode -Objekt gebündelt sind. Weitere Informationen finden commute() Sie hier.

Parameter

Rückgabetyp

bool

num_cached_entries

num_cached_entries()

GitHub

Gibt die Anzahl der zwischengespeicherten Einträge zurück

Diese Methode gibt immer 0 zurück, da kein interner Cache mehr vorhanden ist.

Seit Version 2.5 veraltet

Die Methode qiskit.circuit.commutation_checker.CommutationChecker.num_cached_entries() ist ab Qiskit 2.5 veraltet. Es wird in Qiskit 3.0 entfernt.

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