CommutationChecker
class qiskit.circuit.CommutationChecker(standard_gate_commutations=None, cache_max_entries=1000000, *, gates=None)
Basen: object
Prüfen Sie die Kommutationen zweier Operationen.
Zwei Unitarien und auf Qubits pendeln, wenn
wo
und wir setzen auf , 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).
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
check_commutation_entries
check_commutation_entries(first_op, first_qargs, second_op, second_qargs)
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
clear_cached_commutations
clear_cached_commutations()
Löscht das Wörterbuch mit den zwischengespeicherten Kommutationen
Diese Methode hat keine Auswirkung, da kein interner Cache mehr vorhanden ist
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)
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 auchmatrix_max_num_qubitszur 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
commute_nodes
commute_nodes(op1, op2, max_num_qubits=3, approximation_degree=1.0)
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
num_cached_entries
num_cached_entries()
Gibt die Anzahl der zwischengespeicherten Einträge zurück
Diese Methode gibt immer 0 zurück, da kein interner Cache mehr vorhanden ist.
Die Methode qiskit.circuit.commutation_checker.CommutationChecker.num_cached_entries() ist ab Qiskit 2.5 veraltet. Es wird in Qiskit 3.0 entfernt.